public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Unify new_symbol and new_symbol_full
@ 2018-01-17 19:20 sergiodj+buildbot
2018-01-17 19:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
` (10 more replies)
0 siblings, 11 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5e2db402c8e665b0c6ac81047a10cbf4e26329f2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Unify new_symbol and new_symbol_full
This patch unifies new_symbol with new_symbol_full, replacing a
wrapper function with a default parameter.
2018-01-17 Tom Tromey <tom@tromey.com>
* dwarf2read.c (dwarf2_compute_name): Update comment.
(read_func_scope, read_variable): Update.
(new_symbol): Remove.
(new_symbol_full): Rename to new_symbol.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
@ 2018-01-17 19:20 ` sergiodj+buildbot
2018-01-17 19:33 ` Failures on Debian-s390x-m64, " sergiodj+buildbot
` (9 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:20 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/6179>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Debian-s390x-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
2018-01-17 19:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
@ 2018-01-17 19:33 ` sergiodj+buildbot
2018-01-17 19:39 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
` (8 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:33 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-m64/builds/4382>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Debian-s390x-m64/xfails/master/xfail;hb=b6e60fb>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Debian-s390x-m64/xfails/master/xfail.table;hb=b6e60fb>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-x86_64-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
2018-01-17 19:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-01-17 19:33 ` Failures on Debian-s390x-m64, " sergiodj+buildbot
@ 2018-01-17 19:39 ` sergiodj+buildbot
2018-01-17 19:46 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
` (7 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:39 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-4
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-m64/builds/8610>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/non-ldr-exit.exp: program exits normally
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-m64/xfails/master/xfail;hb=293ab64>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-m64/xfails/master/xfail.table;hb=293ab64>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-x86_64-native-gdbserver-m32, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (2 preceding siblings ...)
2018-01-17 19:39 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
@ 2018-01-17 19:46 ` sergiodj+buildbot
2018-01-17 19:49 ` Failures on Debian-s390x-native-extended-gdbserver-m64, " sergiodj+buildbot
` (6 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:46 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-gdbserver-m32/builds/8553>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-gdbserver-m32/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
new FAIL: gdb.base/corefile.exp: core-file warning-free
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-gdbserver-m32/xfails/master/xfail;hb=5d2ac30>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-gdbserver-m32/xfails/master/xfail.table;hb=5d2ac30>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Debian-s390x-native-extended-gdbserver-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (3 preceding siblings ...)
2018-01-17 19:46 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
@ 2018-01-17 19:49 ` sergiodj+buildbot
2018-01-17 20:14 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
` (5 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 19:49 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-extended-gdbserver-m64/builds/4573>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-extended-gdbserver-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.multi/multi-attach.exp: attach to program 2
PASS -> FAIL: gdb.multi/multi-attach.exp: backtrace 2
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Debian-s390x-native-extended-gdbserver-m64/xfails/master/xfail;hb=b69e445>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Debian-s390x-native-extended-gdbserver-m64/xfails/master/xfail.table;hb=b69e445>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-x86_64-native-extended-gdbserver-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (4 preceding siblings ...)
2018-01-17 19:49 ` Failures on Debian-s390x-native-extended-gdbserver-m64, " sergiodj+buildbot
@ 2018-01-17 20:14 ` sergiodj+buildbot
2018-01-17 20:18 ` Failures on Fedora-i686, " sergiodj+buildbot
` (4 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 20:14 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-4
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-extended-gdbserver-m64/builds/8596>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-extended-gdbserver-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-extended-gdbserver-m64/xfails/master/xfail;hb=f51a767>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-extended-gdbserver-m64/xfails/master/xfail.table;hb=f51a767>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-i686, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (5 preceding siblings ...)
2018-01-17 20:14 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
@ 2018-01-17 20:18 ` sergiodj+buildbot
2018-01-17 20:19 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
` (3 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 20:18 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-2
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-i686/builds/8592>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-i686/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-i686/xfails/master/xfail;hb=63356b9>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-i686/xfails/master/xfail.table;hb=63356b9>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-x86_64-native-gdbserver-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (6 preceding siblings ...)
2018-01-17 20:18 ` Failures on Fedora-i686, " sergiodj+buildbot
@ 2018-01-17 20:19 ` sergiodj+buildbot
2018-01-17 20:37 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
` (2 subsequent siblings)
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 20:19 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-gdbserver-m64/builds/8551>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-gdbserver-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-gdbserver-m64/xfails/master/xfail;hb=d5466a1>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-x86_64-native-gdbserver-m64/xfails/master/xfail.table;hb=d5466a1>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Fedora-s390x-m64, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (7 preceding siblings ...)
2018-01-17 20:19 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
@ 2018-01-17 20:37 ` sergiodj+buildbot
2018-01-18 12:33 ` Failures on Ubuntu-AArch32-native-extended-gdbserver-m32, " sergiodj+buildbot
2018-01-18 13:50 ` Failures on Ubuntu-AArch32-m32, " sergiodj+buildbot
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-17 20:37 UTC (permalink / raw)
To: gdb-testers
Buildslave:
marist-fedora-s390x
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-s390x-m64/builds/7517>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-s390x-m64/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-s390x-m64/xfails/master/xfail;hb=eaf2514>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Fedora-s390x-m64/xfails/master/xfail.table;hb=eaf2514>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Ubuntu-AArch32-native-extended-gdbserver-m32, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (8 preceding siblings ...)
2018-01-17 20:37 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
@ 2018-01-18 12:33 ` sergiodj+buildbot
2018-01-18 13:50 ` Failures on Ubuntu-AArch32-m32, " sergiodj+buildbot
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-18 12:33 UTC (permalink / raw)
To: gdb-testers
Buildslave:
ubuntu-trusty-aarch32-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Ubuntu-AArch32-native-extended-gdbserver-m32/builds/2583>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Ubuntu-AArch32-native-extended-gdbserver-m32/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.base/longjmp.exp: next over patt3
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=8: wait for stops
PASS -> KFAIL: gdb.threads/non-ldr-exit.exp: program exits normally
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/pthreads.exp: check backtrace from thread 1
============================
*** Complete list of XFAILs for this builder ***
FAILURE TO OBTAIN THE COMMIT FOR THE XFAIL LIST. PLEASE CONTACT THE BUILDBOT ADMIN.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on Ubuntu-AArch32-m32, branch master
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
` (9 preceding siblings ...)
2018-01-18 12:33 ` Failures on Ubuntu-AArch32-native-extended-gdbserver-m32, " sergiodj+buildbot
@ 2018-01-18 13:50 ` sergiodj+buildbot
10 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-01-18 13:50 UTC (permalink / raw)
To: gdb-testers
Buildslave:
ubuntu-trusty-aarch32-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Ubuntu-AArch32-m32/builds/2584>
Commit(s) tested:
5e2db402c8e665b0c6ac81047a10cbf4e26329f2
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Unify new_symbol and new_symbol_full
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Ubuntu-AArch32-m32/5e/5e2db402c8e665b0c6ac81047a10cbf4e26329f2/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Ubuntu-AArch32-m32/xfails/master/xfail;hb=>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<http://git.sergiodj.net/?p=gdb-xfails.git;a=blob;f=xfails/Ubuntu-AArch32-m32/xfails/master/xfail.table;hb=>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Factorize killing the children in linux-ptrace.c, and fix a 'process leak'.
@ 2018-12-16 21:34 sergiodj+buildbot
2018-12-16 21:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-16 21:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a65f68357f644cae11536bbb8a1699936ccf1368 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: a65f68357f644cae11536bbb8a1699936ccf1368
Factorize killing the children in linux-ptrace.c, and fix a 'process leak'.
Running the gdb testsuite under Valgrind started to fail after 100+ tests,
due to out of memory caused by lingering processes.
The lingering processes are caused by the combination
of a limitation in Valgrind signal handling when using PTRACE_TRACEME
and a (minor) bug in GDB.
The Valgrind limitation is : when a process is ptraced and raises
a signal, Valgrind will replace the raised signal by SIGSTOP as other
signals are masked by Valgrind when executing a system call.
Removing this limitation seems far to be trivial, valgrind signal
handling is very complex.
Due to this valgrind limitation, GDB linux_ptrace_test_ret_to_nx gets
a SIGSTOP signal instead of the expected SIGTRAP or SIGSEGV.
In such a case, linux_ptrace_test_ret_to_nx does an early return, but
does not kill the child (running under valgrind), child stays in a STOP-ped
state.
These lingering processes then eat the available system memory,
till launching a new process starts to fail.
This patch fixes the GDB minor bug by killing the child in case
linux_ptrace_test_ret_to_nx does an early return.
nat/linux-ptrace.c has 3 different logics to kill a child process.
So, this patch factorizes killing a child in the function kill_child.
The 3 different logics are:
* linux_ptrace_test_ret_to_nx is calling both kill (child, SIGKILL)
and ptrace (PTRACE_KILL, child, ...), and then is calling once
waitpid.
* linux_check_ptrace_features is calling ptrace (PTRACE_KILL, child, ...)
+ my_waitpid in a loop, as long as the waitpid status was WIFSTOPPED.
* linux_test_for_tracefork is calling once ptrace (PTRACE_KILL, child, ...)
+ my_waitpid.
The linux ptrace documentation indicates that PTRACE_KILL is deprecated,
and tells to not use it, as it might return success but not kill the tracee.
The documentation indicates to send SIGKILL directly.
I suspect that linux_ptrace_test_ret_to_nx calls both kill and ptrace just
to be sure ...
I suspect that linux_check_ptrace_features calls ptrace in a loop
to bypass the PTRACE_KILL limitation.
And it looks like linux_test_for_tracefork does not handle the PTRACE_KILL
limitation.
Also, 2 of the 3 logics are calling my_waitpid, which seems better,
as this is protecting the waitpid syscall against EINTR.
So, the logic in kill_child is just using kill (child, SIGKILL)
+ my_waitpid, and then does a few verifications to see everything worked
accordingly to the plan.
Tested on Debian/x86_64.
2018-12-16 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* nat/linux-ptrace.c (kill_child): New function.
(linux_ptrace_test_ret_to_nx): Use kill_child instead of local code.
Add a call to kill_child in case of early return after fork.
(linux_check_ptrace_features): Use kill_child instead of local code.
(linux_test_for_tracefork): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR23994, libbfd integer overflow
@ 2018-12-17 3:31 sergiodj+buildbot
2018-12-17 3:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 3:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a551c7a1b80fca579461774860574eabfd7f18f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3a551c7a1b80fca579461774860574eabfd7f18f
PR23994, libbfd integer overflow
PR 23994
* aoutx.h: Include limits.h.
(get_reloc_upper_bound): Detect long overflow and return a file
too big error if it occurs.
* elf.c: Include limits.h.
(_bfd_elf_get_symtab_upper_bound): Detect long overflow and return
a file too big error if it occurs.
(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.
(_bfd_elf_get_dynamic_reloc_upper_bound): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] OBVIOUS: Fix ARI warning by removing warning trailing new line
@ 2018-12-17 7:20 sergiodj+buildbot
2018-12-17 7:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 7:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ef5dbe493310e3632354d4937727a755c13c291 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 4ef5dbe493310e3632354d4937727a755c13c291
OBVIOUS: Fix ARI warning by removing warning trailing new line
2018-12-17 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* nat/linux-ptrace.c (kill_child): Fix ARI warning by removing
warning trailing new line.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Fix the gdb build with musl libc
@ 2018-12-17 11:40 sergiodj+buildbot
2018-12-17 11:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 11:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 51b4f73a37c2e7eec31e932fc3c8dae879735f63 ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 51b4f73a37c2e7eec31e932fc3c8dae879735f63
AArch64: Fix the gdb build with musl libc
Including asm/sigcontext.h together with libc headers is not valid. In
general linux headers may not work with libc headers, so mixing them
should be avoided, especially when the linux header defines types that
are also exposed in libc headers.
In case of asm/sigcontext.h glibc happens to work because glibc signal.h
directly includes it, but e.g. in musl libc signal.h replicates the
sigcontext.h definitions in an abi compatible way which are in conflict
with the linux definitions when both headers are included.
Since old linux headers or old libc headers may not have the necessary
definitions, gdb has to replicate the definitions it relies on anyway.
Which is fine since all definitions must be ABI stable. For linux apis
that are not available via libc headers, replicating the definitions in
gdb is the most reliable way to use them.
Note: asm/ptrace.h includes asm/sigcontext.h in some versions of linux
headers, which is just as problematic and should be fixed in linux.
gdb/ChangeLog:
* nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
asm/sigcontext.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR23980, powerpc64 ld segfault
@ 2018-12-17 23:32 sergiodj+buildbot
2018-12-17 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-17 23:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 87469ba2d2fc953796c7bb64e535d3f283756048 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 87469ba2d2fc953796c7bb64e535d3f283756048
PR23980, powerpc64 ld segfault
PR 23980
* elf64-ppc.c (ppc64_elf_hide_symbol): Check hash table type
before referencing ppc64-only fields of hash entries.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/dwarf: Convert some predicates from int to bool
@ 2018-12-18 0:51 sergiodj+buildbot
2018-12-18 1:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-18 0:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9068261f1c254a8051d1098b87ab1ff99d525b7b ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 9068261f1c254a8051d1098b87ab1ff99d525b7b
gdb/dwarf: Convert some predicates from int to bool
In the dwarf reader we have a set of predicates, these include the
different producer predicates and also some control predicates. The
older ones are declared as integers, while newer ones (added since the
C++ conversion) are bool.
This commit makes them all bool for consistency. There should be no
user visible change after this commit.
gdb/ChangeLog:
* dwarf2read.c (struct dwarf2_cu): Convert the fields 'mark',
'has_loclist', 'checked_producer', 'producer_is_gxx_lt_4_6',
'producer_is_gcc_lt_4_3', 'producer_is_icc_lt_14',
'processing_has_namespace_info' from unsigned int to bool. Update
comments.
(producer_is_icc_lt_14): Update return type.
(producer_is_gcc_lt_4_3): Likewise.
(producer_is_gxx_lt_4_6): Likewise.
(process_die): Write true instead of 1 into predicate fields.
(dwarf2_start_symtab): Likewise.
(var_decode_location): Likewise.
(dwarf2_mark_helper): Likewise.
(dwarf2_mark): Likewise.
(dwarf2_clear_marks): Write false instead of 0 into predicate
field.
(dwarf2_cu::dwarf2_cu): Initialise predicate fields to false, not
0.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim: Don't overwrite stored errno in sim_syscall_multi
@ 2018-12-18 1:21 sergiodj+buildbot
2018-12-18 1:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-18 1:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c5ebe0ff706521b4a5fb66a5e764031825276ad5 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c5ebe0ff706521b4a5fb66a5e764031825276ad5
sim: Don't overwrite stored errno in sim_syscall_multi
The host syscall callback mechanism should take care of updating the
errcode within the CB_SYSCALL struct, and we should not be adjusting
the error code once the syscall has completed. We especially, should
not be rewriting the syscall errcode based on the value of errno some
time after running the host syscall, as there is no guarantee that
errno has not be overwritten.
To perform a syscall we call cb_syscall (in syscall.c). To return
from cb_syscall control passes through one of two exit paths these are
labeled FinishSyscall and ErrorFinish and are reached using goto
statements scattered throughout the cb_syscall function.
In FinishSyscall we store the syscall result in 'sc->result', and the
error code is transated to target encoding, and stored in
'sc->errcode'.
In ErrorFinish, we again store the syscall result in 'sc->result', and
fill in 'sc->errcode' by fetching the actual errno from the host with
the 'cb->get_errno' callback.
In both cases 'sc->errcode' will have been filled in with an
appropriate value.
Further, if we look at a specific syscall example, CB_SYS_open, in
this case the first thing we do is fetch the path to open from the
target with 'get_path', if this fails then the errcode is returned,
and we jump to FinishSyscall. Notice that in this case, no host
syscall may have been performed, for example a failure to read the
path to open out of simulated memory can return EINVAL without
performing any host syscall. Given that no host syscall has been
performed, reading the host errno makes absolutely no sense.
This commit removes from sim_syscall_multi the rewriting of
sc->errcode based on the value of errno, and instead relies on the
value stored in the cb_syscall.
sim/common/ChangeLog:
* sim-syscall.c (sim_syscall_multi): Don't update sc->errcode at
this point, it should have already been set in cb_syscall.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Include bfd_stdint.h in bfd.h
@ 2018-12-18 14:28 sergiodj+buildbot
2018-12-18 14:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-18 14:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2d5d5a8f0a8b5a03454bf168b7fa7024bb1ebbd8 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 2d5d5a8f0a8b5a03454bf168b7fa7024bb1ebbd8
Include bfd_stdint.h in bfd.h
This patch adds bfd_stdint.h to bfd.h, so that BFD can use size_t
where appropriate in function parameters and return values. I also
tidy a few other cases where headers are included twice.
bfd/
* Makefile.am (bfdinclude_HEADERS): Add bfd_stdint.h.
(BFD_H_DEPS): Add include/diagnostics.h.
(LOCAL_H_DEPS): Add bfd_stdint.h.
* bfd-in.h: Include bfd_stdint.h.
* arc-plt.h: Don't include stdint.h.
* coff-rs6000.c: Likewise.
* coff64-rs6000.c: Likewise.
* elfxx-riscv.c: Likewise.
* cache.c: Don't include bfd_stdint.h.
* elf32-arm.c: Likewise.
* elf32-avr.c: Likewise.
* elf32-nds32.c: Likewise.
* elf32-rl78.c: Likewise.
* elf32-rx.c: Likewise.
* elf32-wasm32.c: Likewise.
* elf64-nfp.c: Likewise.
* elflink.c: Likewise.
* elfnn-aarch64.c: Likewise.
* elfnn-ia64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-x86.h: Likewise.
* wasm-module.c: Likewise, and don't include sysdep.h twice.
* elf-nacl.h: Don't include bfd.h.
* mach-o.h: Likewise.
* elfxx-aarch64.c: Include bfd.h and elf-bfd.h.
* elfxx-aarch64.h: Don't include bfd.h, elf-bfd.h or stdint.h.
* mach-o-aarch64.c: Include mach-o.h later.
* mach-o-arm.c: Likewise.
* mach-o-i386.c: Likewise.
* mach-o-x86-64.c: Likewise.
* mach-o.c: Likewise.
* sysdep.h: Don't include ansidecl.h or sys/stat.h.
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
opcodes/
* arm-dis.c: Include bfd.h.
* aarch64-opc.c: Include bfd_stdint.h rather than stdint.h.
* csky-dis.c: Likewise.
* nds32-asm.c: Likewise.
* riscv-dis.c: Likewise.
* s12z-dis.c: Likewise.
* wasm32-dis.c: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix build with latest GCC 9.0 tree
@ 2018-12-19 16:51 sergiodj+buildbot
2018-12-19 16:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-19 16:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7406a50077773e78282a495cb32ef5b8179f6a33 ***
Author: Dimitar Dimitrov <dimitar@dinux.eu>
Branch: master
Commit: 7406a50077773e78282a495cb32ef5b8179f6a33
Fix build with latest GCC 9.0 tree
A recent patch [1] to fix a GCC PR [2] actually broke the GDB build.
To fix, remove the stack pointer clobber. GCC will ignore the clobber
marker, and will not save or restore the stack pointer.
I ran "make check-gdb" on x86_64 to ensure there are no regressions.
gdb/ChangeLog:
2018-12-17 Dimitar Dimitrov <dimitar@dinux.eu>
* nat/linux-ptrace.c (linux_ptrace_test_ret_to_nx): Remove sp clobbers.
[1] https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00532.html
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Add default frame methods to gdbarch
@ 2018-12-19 22:20 sergiodj+buildbot
2018-12-19 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-19 22:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8bcb5208976448aab20df7dd50e9286ef1f7e22c ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8bcb5208976448aab20df7dd50e9286ef1f7e22c
gdb: Add default frame methods to gdbarch
Supply default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp. This patch doesn't actually
convert any targets to use these methods, and so, there will be no
user visible changes after this commit.
The implementations for default_dummy_id and default_unwind_sp are
fairly straight forward, these just take on the pattern used by most
targets. Once these default methods are in place then most targets
will be able to switch over.
The implementation for default_unwind_pc is also fairly straight
forward, but maybe needs some explanation.
This patch has gone through a number of iterations:
https://sourceware.org/ml/gdb-patches/2018-03/msg00165.html
https://sourceware.org/ml/gdb-patches/2018-03/msg00306.html
https://sourceware.org/ml/gdb-patches/2018-06/msg00090.html
https://sourceware.org/ml/gdb-patches/2018-09/msg00127.html
and the implementation of default_unwind_pc has changed over this
time. Originally, I took an implementation like this:
CORE_ADDR
default_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
int pc_regnum = gdbarch_pc_regnum (gdbarch);
return frame_unwind_register_unsigned (next_frame, pc_regnum);
}
This is basically a clone of default_unwind_sp, but using $pc. It was
pointed out that we could potentially do better, and in version 2 the
implementation became:
CORE_ADDR
default_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
struct type *type;
int pc_regnum;
CORE_ADDR addr;
struct value *value;
pc_regnum = gdbarch_pc_regnum (gdbarch);
value = frame_unwind_register_value (next_frame, pc_regnum);
type = builtin_type (gdbarch)->builtin_func_ptr;
addr = extract_typed_address (value_contents_all (value), type);
addr = gdbarch_addr_bits_remove (gdbarch, addr);
release_value (value);
value_free (value);
return addr;
}
The idea was to try split out some of the steps of unwinding the $pc,
steps that are on some (or many) targets no-ops, and so allow targets
that do override these methods, to make use of default_unwind_pc.
This implementation remained in place for version 2, 3, and 4.
However, I realised that I'd made a mistake, most targets simply use
frame_unwind_register_unsigned to unwind the $pc, and this throws an
error if the register value is optimized out or unavailable. My new
proposed implementation doesn't do this, I was going to end up
breaking many targets.
I considered duplicating the code from frame_unwind_register_unsigned
that throws the errors into my new default_unwind_pc, however, this
felt really overly complex. So, what I instead went with was to
simply revert back to using frame_unwind_register_unsigned. Almost
all existing targets already use this. Some of the ones that don't can
be converted to, which means almost all targets could end up using the
default.
One addition I have made over the version 1 implementation is to add a
call to gdbarch_addr_bits_remove. For most targets this is a no-op,
but for a handful, having this call in place will mean that they can
use the default method. After all this, the new default_unwind_pc now
looks like this:
CORE_ADDR
default_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
int pc_regnum = gdbarch_pc_regnum (gdbarch);
CORE_ADDR pc = frame_unwind_register_unsigned (next_frame, pc_regnum);
pc = gdbarch_addr_bits_remove (gdbarch, pc);
return pc;
}
gdb/ChangeLog:
* gdb/dummy-frame.c (default_dummy_id): Defined new function.
* gdb/dummy-frame.h (default_dummy_id): Declare new function.
* gdb/frame-unwind.c (default_unwind_pc): Define new function.
(default_unwind_sp): Define new function.
* gdb/frame-unwind.h (default_unwind_pc): Declare new function.
(default_unwind_sp): Declare new function.
* gdb/frame.c (frame_unwind_pc): Assume gdbarch_unwind_pc is
available.
(get_frame_sp): Assume that gdbarch_unwind_sp is available.
* gdb/gdbarch.c: Regenerate.
* gdb/gdbarch.h: Regenerate.
* gdb/gdbarch.sh: Update definition of dummy_id, unwind_pc, and
unwind_sp. Add additional header files to be included in
generated file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Ensure deterministic result order in gdb.ada/info_auto_lang.exp
@ 2018-12-20 21:43 sergiodj+buildbot
2018-12-20 21:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-20 21:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 161d081c56f12e7a00d8a07ccac445855d5d357b ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 161d081c56f12e7a00d8a07ccac445855d5d357b
Ensure deterministic result order in gdb.ada/info_auto_lang.exp
standard_ada_testfile, standard_test_file and the explicit
csrcfile assignment in info_auto_lang.exp all gives similar pathnames
prefix for a source, such as
/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.<something>.
Note that the above pathnames contain ../ which appears when a relative
pathname is used to call configure.
In any case, the gnat compiler normalizes Ada sources path when compiling.
So, the 'Ada' .o object are referencing a pathname such as
/home/philippe/gdb/git/binutils-gdb/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb,
while the 'C' .o object still references the not normalized pathname.
As the results of 'info functions | ...' are sorted by pathname first,
the order of the results depends on the comparison between different directories,
leading to results that can change depending on these directories.
=> Ensure the result order is always the same, by normalising the C source file,
which makes the results independent of the way configure is launched.
Tested by running the testcase in 2 different builds, that without normalize
were giving different results.
Note: such 'set csrcfile' is used in 4 other tests mixing Ada and C.
After discussion, it was deemed sufficient to just normalize the pathname
for this test.
gdb/testsuite/ChangeLog
2018-12-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/info_auto_lang.exp: Normalize some_c source file.
Update order of results accordingly.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Call rtype_to_howto to get reloc_howto_type pointer
@ 2018-12-20 22:08 sergiodj+buildbot
2018-12-20 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-20 22:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 76268e027479f587b46b70b69760f1b96204bc28 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 76268e027479f587b46b70b69760f1b96204bc28
x86: Call rtype_to_howto to get reloc_howto_type pointer
* elf32-i386.c (elf_i386_relocate_section): Call
elf_i386_rtype_to_howto to get reloc_howto_type pointer.
* elf64-x86-64.c (elf_x86_64_relocate_section): Call
elf_x86_64_rtype_to_howto to get reloc_howto_type pointer.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix compile error with clang 3.8
@ 2018-12-21 17:28 sergiodj+buildbot
2018-12-21 17:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 17:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3dcfdc58656caa4a38e1fde73a07a19114347226 ***
Author: Dave Murphy <davem@devkitpro.org>
Branch: master
Commit: 3dcfdc58656caa4a38e1fde73a07a19114347226
Fix compile error with clang 3.8
When compiling with clang 3.8 (default clang version on Debian
Stretch, the current stable), we get errors like this:
CXX dtrace-probe.o
../../binutils-gdb/gdb/dtrace-probe.c:103:31: error: default initialization of an object of const type 'const dtrace_static_probe_ops' without a user-provided default constructor
const dtrace_static_probe_ops dtrace_static_probe_ops;
^
Silence them by value-initializing those objects. It's not necessary
with other compilers (later clang versions, gcc), but it shouldn't
hurt either.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Format CORE_ADDR as a string for printing
@ 2018-12-21 17:51 sergiodj+buildbot
2018-12-21 18:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 17:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a96bd1ccc0dca2d260e0e30de462f37066973ceb ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a96bd1ccc0dca2d260e0e30de462f37066973ceb
gdb/riscv: Format CORE_ADDR as a string for printing
Avoid compiler errors caused by trying to print CORE_ADDR using '%ld'
format, instead convert to a string and print that instead.
gdb/ChangeLog:
* riscv-tdep.c (riscv_scan_prologue): Use plongest to format
a signed offset as a string.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] when printing the GDB config, explicitly say if configured without python
@ 2018-12-21 18:24 sergiodj+buildbot
2018-12-21 18:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 18:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 50c7c5b8df15aad66a9d2f6759e85689a2a74271 ***
Author: <dilyan.palauzov@aegee.org>
Branch: master
Commit: 50c7c5b8df15aad66a9d2f6759e85689a2a74271
when printing the GDB config, explicitly say if configured without python
When using the --configuration command line switch, or using
the "show configuration" command with a version of GDB which
was configured without Python supoprt, this patch changes
the resulting output to include...
--without-python
... instead of not printing anything about Python support.
gdb/ChangeLog:
* top.c (print_gdb_configuration): Print "--without-python"
if GDB was configured without Python.
Tested on x86_64-linux by rebuilding GDB with and without Python,
and checking the output of "gdb --configuration" in both cases.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Fix "info os <unknown>" command
@ 2018-12-21 18:37 sergiodj+buildbot
2018-12-21 18:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 18:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d00a27c5addfb6b7350a39215b48f4aaffa5960c ***
Author: Paul Marechal <paul.marechal@ericsson.com>
Branch: master
Commit: d00a27c5addfb6b7350a39215b48f4aaffa5960c
gdb: Fix "info os <unknown>" command
Running `info os someUnknownOsType` is crashing when gdb is built with
-D_GLIBCXX_DEBUG:
/usr/include/c++/5/debug/vector:439:error: attempt to
access an element in an empty container.
In target_read_stralloc from target.c, the call to
target_read_alloc_1 can return an empty vector, we then call vector::back on
this vector, which is invalid.
This commit adds a check for emptiness before trying to call
vector::back on it. It also adds test to check for `info os <unknown>`
to return the proper error message.
This is a regression in gdb 8.2 and this patch restores the behavior of
previous versions.
gdb/ChangeLog:
PR gdb/23974
* target.c (target_read_stralloc): Check for empty vector.
gdb/testsuite/ChangeLog:
PR gdb/23974
* gdb.base/info-os.exp: Check return for unknown "info os" type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events.
@ 2018-12-21 18:54 sergiodj+buildbot
2018-12-21 18:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 18:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6d78332e7748754d4a77a31e692fb8760c8c12ff ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 6d78332e7748754d4a77a31e692fb8760c8c12ff
Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events.
The ptrace command PT_LWPINFO to request detailed information about a
stopped thread can return stale signal information from an earlier
stop. Events which are reporting an intercepted signal will always
report the correct information, but signal stops for some other events
such as system call enter/exit events might include stale siginfo from
an earlier signal. In particular, if a thread reports a system call
entry or exit event after previously reporting a single-step or
breakpoint event via SIGTRAP, fbsd_handle_debug_trap believed the
system call event was the previous event and claimed it resulting in a
spurious SIGTRAP event.
True breakpoint and single-step events will never report another event
in the pl_flags member of struct ptrace_lwpinfo. Use this to detect
stale siginfo by requiring pl_flags to have only the PL_FLAG_SI flag
and no other flags before treating a SIGTRAP as a single-step or
breakpoint trap.
gdb/ChangeLog:
* fbsd-nat.c (fbsd_handle_debug_trap): Require pl.pl_flags to
equal PL_FLAG_SI.
(fbsd_nat_target::stopped_by_sw_breakpoint): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix various tests to use -no-pie linker flag when needed
@ 2018-12-21 21:16 sergiodj+buildbot
2018-12-21 21:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-21 21:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6e8b1ab2fd4c692146eb14295866920f83dc5403 ***
Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 6e8b1ab2fd4c692146eb14295866920f83dc5403
Fix various tests to use -no-pie linker flag when needed
Various tests use test code written in i386 / x86_64 assembly that cannot
be used to create PIE executables. Therefore compilation of test programs
failed on systems where the compiler default is to create PIE executable.
The solution is to use -no-pie linker flag, however, such flag may not
(is not) supported by all compilers GDB needs to support (e.g. gcc 4.8).
To handle this, introduce a new flag to gdb_compile - nopie - which
inserts -no-pie linker flag where supported and is no-op where it is
not. By default, -no-pie flag is inserted since most modern compiler do
support it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add debug output for recorded minsyms
@ 2018-12-22 3:08 sergiodj+buildbot
2018-12-22 3:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 3:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e08b849efa7af6cb13d7d3d02dc366b9d7f4208c ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: e08b849efa7af6cb13d7d3d02dc366b9d7f4208c
Add debug output for recorded minsyms
While discussing this issue:
https://sourceware.org/ml/gdb-patches/2018-12/threads.html#00082
I added a printf gated by "set debug symtab-create" to be able to
quickly see all minimal symbols recorded by GDB. I thought it would be
useful to have it built-in, for the future. Here's how the output
looks:
Recording minsym: mst_data 0x400780 15 _IO_stdin_used
Recording minsym: mst_text 0x400700 13 __libc_csu_init
Recording minsym: mst_bss 0x601058 25 _end
gdb/ChangeLog:
* minsyms.c (mst_str): New.
(minimal_symbol_reader::record_full): Add debug output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Add gdb to dwarf register number mapping
@ 2018-12-22 10:50 sergiodj+buildbot
2018-12-22 10:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 10:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fb44d95af64dd0609760c1400b9ce4da09296cd1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: fb44d95af64dd0609760c1400b9ce4da09296cd1
gdb/riscv: Add gdb to dwarf register number mapping
Provide a mapping between GDB's register numbers and DWARF's register
numbers. This resolves some failures that I was seeing on
gdb.base/store.exp when running on an rv64imfdc target.
gdb/ChangeLog:
* riscv-tdep.c (riscv_dwarf_reg_to_regnum): New function.
(riscv_gdbarch_init): Register new function with gdbarch.
* riscv-tdep.h: New enum to define RISC-V DWARF register numbers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Add float status registers to save and restore reggroups
@ 2018-12-22 11:11 sergiodj+buildbot
2018-12-22 11:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 11:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ecc82c059059cfa21a8a099779253686f9637f9f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ecc82c059059cfa21a8a099779253686f9637f9f
gdb/riscv: Add float status registers to save and restore reggroups
We should save and restore the floating point status registers. This
became an issue when testing 32-bit float on a target with 64-bit with
the gdb.base/callfuncs.exp test.
gdb/ChangeLog:
* riscv-tdep.c (riscv_register_reggroup_p): Save and restore fcsr,
fflags, and frm registers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Prevent buffer overflow in riscv_return_value
@ 2018-12-22 11:59 sergiodj+buildbot
2018-12-22 12:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-22 11:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 74e3300d8aecbc6973f61c8cbbecd7bdac4f05d0 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 74e3300d8aecbc6973f61c8cbbecd7bdac4f05d0
gdb/riscv: Prevent buffer overflow in riscv_return_value
The existing code for reading and writing the return value can
overflow the passed in buffers in a couple of situations. This commit
aims to resolve these issues.
The problems were detected using valgrind, here are two examples,
first from gdb.base/structs.exp:
(gdb) p/x fun9()
==31353== Invalid write of size 8
==31353== at 0x4C34153: memmove (vg_replace_strmem.c:1270)
==31353== by 0x632EBB: memcpy (string_fortified.h:34)
==31353== by 0x632EBB: readable_regcache::raw_read(int, unsigned char*) (regcache.c:538)
==31353== by 0x659D3F: riscv_return_value(gdbarch*, value*, type*, regcache*, unsigned char*, unsigned char const*) (riscv-tdep.c:2593)
==31353== by 0x583641: get_call_return_value (infcall.c:448)
==31353== by 0x583641: call_thread_fsm_should_stop(thread_fsm*, thread_info*) (infcall.c:546)
==31353== by 0x59BBEC: fetch_inferior_event(void*) (infrun.c:3883)
==31353== by 0x53890B: check_async_event_handlers (event-loop.c:1064)
==31353== by 0x53890B: gdb_do_one_event() [clone .part.4] (event-loop.c:326)
==31353== by 0x6CA34B: wait_sync_command_done() (top.c:503)
==31353== by 0x584653: run_inferior_call (infcall.c:621)
...
And from gdb.base/call-sc.exp:
(gdb) advance fun
fun () at /gdb/gdb/testsuite/gdb.base/call-sc.c:41
41 return foo;
(gdb) finish
==1968== Invalid write of size 8
==1968== at 0x4C34153: memmove (vg_replace_strmem.c:1270)
==1968== by 0x632EBB: memcpy (string_fortified.h:34)
==1968== by 0x632EBB: readable_regcache::raw_read(int, unsigned char*) (regcache.c:538)
==1968== by 0x659D01: riscv_return_value(gdbarch*, value*, type*, regcache*, unsigned char*, unsigned char const*) (riscv-tdep.c:2576)
==1968== by 0x5891E4: get_return_value(value*, type*) (infcmd.c:1640)
==1968== by 0x5892C4: finish_command_fsm_should_stop(thread_fsm*, thread_info*) (infcmd.c:1808)
==1968== by 0x59BBEC: fetch_inferior_event(void*) (infrun.c:3883)
==1968== by 0x53890B: check_async_event_handlers (event-loop.c:1064)
==1968== by 0x53890B: gdb_do_one_event() [clone .part.4] (event-loop.c:326)
==1968== by 0x6CA34B: wait_sync_command_done() (top.c:503)
...
There are a couple of problems with the existing code, that are all
related.
In riscv_call_arg_struct we incorrectly rounded up the size of a
structure argument. This is unnecessary, and caused GDB to read too
much data into the output buffer when extracting a struct return
value.
In fixing this it became clear that we were incorrectly assuming that
any value being placed in a register (or read from a register) would
always access the entire register. This is not true, for example a
9-byte struct on a 64-bit target places 8-bytes in one registers and
1-byte in a second register (assuming available registers). To handle
this I switch from using cooked_read to cooked_read_part.
Finally, when processing basic integer return value types these are
extended to xlen sized types and then passed in registers. We
currently don't handle this type expansion in riscv_return_value, but
we do in riscv_push_dummy_call. The result is that small integer
types (like char) result in a full xlen sized register being written
into the output buffer, which results in buffer overflow. To address
this issue we now create a value of the expanded type and use this
values contents buffer to hold the return value before casting the
value down to the smaller expected type.
This patch resolves all of the valgrind issues I have found so far,
and causes no regressions. Tested against RV32/64 with and without
floating point support.
gdb/ChangeLog:
* riscv-tdep.c (riscv_call_arg_struct): Don't adjust size before
assigning locations.
(riscv_return_value): Take more care not to read/write outside of
argument buffer. Cast return value between the declared type and
the abi type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] i386: Remove the unused bfd pointer argument
@ 2018-12-23 18:40 sergiodj+buildbot
2018-12-23 18:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-23 18:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b366503e45a2b28271dd12a7ca923964154c2716 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: b366503e45a2b28271dd12a7ca923964154c2716
i386: Remove the unused bfd pointer argument
Remove the unused bfd pointer argument of elf_i386_rtype_to_howto.
* elf32-i386.c (elf_i386_rtype_to_howto): Remove the unused bfd
pointer argument.
(elf_i386_info_to_howto_rel): Updated.
(elf_i386_tls_transition): Likewise.
(elf_i386_relocate_section): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A'.
@ 2018-12-24 13:18 sergiodj+buildbot
2018-12-24 13:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 13:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b5a1e55720f294fd0d5e1ebc21ccc01083751acd ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b5a1e55720f294fd0d5e1ebc21ccc01083751acd
Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A'.
The test fails (timeout) due to:
(gdb) PASS: gdb.ada/bp_fun_addr.exp: break *a'address
run
Starting program: /bd/home/philippe/gdb/git/build_info_t/gdb/testsuite/outputs/gdb.ada/bp_fun_addr/a
Multiple matches for a
[0] cancel
[1] a at /bd/home/philippe/gdb/git/info_t/gdb/testsuite/gdb.ada/bp_fun_addr/a.adb:18
[2] system.dim.mks.a at s-dimmks.ads:115
> FAIL: gdb.ada/bp_fun_addr.exp: run until breakpoint at a'address (timeout)
testcase /home/philippe/gdb/git/build_info_t/gdb/testsuite/../../../info_t/gdb/testsuite/gdb.ada/bp_fun_addr.exp completed in 10 seconds
Fix this by using a fun name that has more chances to be unique.
2018-12-24 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/bp_fun_addr/a.adb (a): Rename to bp_fun_addr.
Filename a.adb changed to bp_fun_addr.adb.
gdb.ada/bp_fun_addr.exp: Update test accordingly.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify dwarf2_find_containing_comp_unit
@ 2018-12-24 17:54 sergiodj+buildbot
2018-12-24 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 17:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 45b8ae0c3348a6e6aa64ad5d114adabdc399c5ef ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 45b8ae0c3348a6e6aa64ad5d114adabdc399c5ef
Simplify dwarf2_find_containing_comp_unit
In an earlier patch discussion we noticed that
dwarf2_find_containing_comp_unit takes the address of sect_off, but
doesn't actually need to. This is a leftover from before
C++-ification. This patch simplifies the function.
Tested using gdb.dwarf2 on x86-64 Fedora 28.
gdb/ChangeLog
2018-12-18 Tom Tromey <tom@tromey.com>
* dwarf2read.c (dwarf2_find_containing_comp_unit): Don't take
address of sect_off.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Add new parser rule for structure field names
@ 2018-12-24 18:21 sergiodj+buildbot
2018-12-24 18:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 18:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0f5d3f636a606e307d8d8634415cc1e313a38273 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0f5d3f636a606e307d8d8634415cc1e313a38273
gdb: Add new parser rule for structure field names
Introduces a new rule in c-exp.y for matching structure field names.
This is a restructure in preparation for the next commit, this commit
shouldn't result in any user visible changes.
gdb/ChangeLog:
* c-exp.y (field_name): New %token, and new rule.
(exp): Replace uses of 'name' with 'field_name' where appropriate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Allow struct fields named double
@ 2018-12-24 19:09 sergiodj+buildbot
2018-12-24 18:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 19:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6f0ffe50c8f395ccb45ba9e801906b49d18c1af9 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6f0ffe50c8f395ccb45ba9e801906b49d18c1af9
gdb: Allow struct fields named double
The 64-bit RISC-V target currently models the floating point registers
as having the following type:
union riscv_double
{
builtin_type_ieee_single float;
builtin_type_ieee_double double;
}
Notice the choice of names for the fields of this struct, possibly not
ideal choices, as these are not valid field names in C. However, this
type is only ever defined within GDB (or in the target description),
and no restriction seems to exist on the field names in that case.
The problem though is that currently:
(gdb) info registers $ft0
ft0 {float = 0, double = 0} (raw 0x0000000000000000)
(gdb) p $ft0.float
$1 = 0
(gdb) p $ft0.double
A syntax error in expression, near `double'.
We can access the 'float' field, but not the 'double' field. This is
because the string 'double' is handled differently to the string
'float' in c-exp.y.
In both cases the string '$ft0' is parsed as a VARIABLE expression.
In the 'float' case, the string 'float' becomes a generic NAME token
in 'lex_one_token', which then allows the rule "exp '.' name" to match
and the field name lookup to occur.
The 'double' case is different. In order to allow parsing of the type
string 'long double', the 'double' string becomes the token
DOUBLE_KEYWORD. At this point there's no rule to match "exp '.'
DOUBLE_KEYWORD", so we can never lookup the field named 'double'.
We could rename the fields for RISC-V, and maybe that would be the
best solution. However, its not hard to allow for fields named
'double', which is what this patch does.
A new case is added to the 'field_name' rule to match the
DOUBLE_KEYWORD, and create a suitable 'struct stoken'. With this done
the "exp '.' field_name" pattern can now match, and we can lookup the
double field.
With this patch in place I now see this behaviour:
(gdb) info registers $ft0
ft0 {float = 0, double = 0} (raw 0x0000000000000000)
(gdb) p $ft0.float
$1 = 0
(gdb) p $ft0.double
$2 = 0
I've gone ahead and handled INT_KEYWORD, LONG, SHORT, SIGNED_KEYWORD,
and UNSIGNED as well within field_name.
I've added a new test for this functionality.
This change was tested on x86-64 GNU/Linux with no regressions.
gdb/ChangeLog:
* c-exp.y (field_name): Allow DOUBLE_KEYWORD, INT_KEYWORD, LONG,
SHORT, SIGNED_KEYWORD, and UNSIGNED tokens to act as a field
names.
(typename_stoken): New function.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/dw2-unusual-field-names.c: New file.
* gdb.dwarf2/dw2-unusual-field-names.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] target.c: Remove struct keyword in range-based for
@ 2018-12-27 2:10 sergiodj+buildbot
2018-12-27 2:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 2:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 84b68c77e7f1c8c883ff94aaa2fce0df2eab0877 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 84b68c77e7f1c8c883ff94aaa2fce0df2eab0877
target.c: Remove struct keyword in range-based for
I get this when compiling with a gcc 6.3.0-based cross-compiler:
CXX target.o
/home/simark/src/binutils-gdb/gdb/target.c: In static member function 'static void target_terminal::restore_inferior()':
/home/simark/src/binutils-gdb/gdb/target.c:396:10: error: types may not be defined in a for-range-declaration [-Werror]
for (struct inferior *inf : all_inferiors ())
^~~~~~
Accomodate it by dropping the unnecessary struct keyword. Actually, I used
"::inferior", otherwise it resolves to the inferior method of the
target_terminal class.
gdb/ChangeLog:
* target.c (target_terminal::restore_inferior): Remove struct keyword.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.ada/packed_array_assign.exp by using more unique names.
@ 2018-12-27 10:51 sergiodj+buildbot
2018-12-27 10:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 10:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2ab54467f89763c96e2e9bda876eee1f9c8561b1 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 2ab54467f89763c96e2e9bda876eee1f9c8561b1
Fix gdb.ada/packed_array_assign.exp by using more unique names.
The test gdb.ada/packed_array_assign fails due to conflict between component 'w'
and system.dim.mks.w:
(gdb) print pra := ((x => 2, y => 0, w => 17), pr, (x => 7, y => 1, w => 23))
Unknown component name: system.dim.mks.w.
(gdb) FAIL: gdb.ada/packed_array_assign.exp: print pra := ((x => 2, y => 0, w => 17), pr, (x => 7, y => 1, w => 23))
Also, depending on the compiler version, the component w might be reordered
and placed before components x and y.
So, change the component order in the source, so that both an old
compiler (GNATMAKE 6.3.0, gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516)
and a new compiler (GNATMAKE Pro 20.0w (20181210-82), based on gcc 8.2.1)
produce the same component order (checked by using -gnatR3s).
So, update to test the new (more unique) names in the source order.
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/packed_array_assign/aggregates.ads (Packed_Rec):
Rename components to Packed_Array_Assign_[X|Y|W]. Place
component Packed_Array_Assign_W as first component, to ensure
old and new compilers have the same representation.
All users updated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.ada/assign_arr.exp by using more unique names.
@ 2018-12-27 11:07 sergiodj+buildbot
2018-12-27 11:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 11:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3cf139964eb2e2d3008174aa3d446797fce31240 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 3cf139964eb2e2d3008174aa3d446797fce31240
Fix gdb.ada/assign_arr.exp by using more unique names.
The test fails (timeout) due to conflict between var 'input' and s-ststop.adb 'input':
(gdb) print input.u2 := (0.25,0.5,0.75)
Multiple matches for input
[0] cancel
[1] system.strings.stream_ops.storage_array_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return system.storage_elements.storage_array at s-ststop.adb:127
[2] system.strings.stream_ops.stream_element_array_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return ada.streams.stream_element_array at s-ststop.adb:127
[3] system.strings.stream_ops.string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return string at s-ststop.adb:127
[4] system.strings.stream_ops.wide_string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return wide_string at s-ststop.adb:127
[5] system.strings.stream_ops.wide_wide_string_ops.input (access ada.streams.root_stream_type; system.strings.stream_ops.io_kind; natural) return wide_wide_string at s-ststop.adb:127
[6] target_wrapper.input at /bd/home/philippe/gdb/git/info_t/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads:24
> FAIL: gdb.ada/assign_arr.exp: print input.u2 := (0.25,0.5,0.75) (timeout)
gdb/testsuite/ChangeLog
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/assign_arr/target_wrapper.ads (Input): Rename to
Assign_Arr_Input.
main_p324_051.adb: Update accordingly.
gdb.ada/assign_arr.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.ada/fun_renaming.exp by using more unique names.
@ 2018-12-27 11:24 sergiodj+buildbot
2018-12-27 11:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 11:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 293bf1a719e88e063e75ae467c5aec101b59fbf6 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 293bf1a719e88e063e75ae467c5aec101b59fbf6
Fix gdb.ada/fun_renaming.exp by using more unique names.
The test fails due to conflict between var 'next' and s-pooloc.adb next:
(gdb) print next(1)
Multiple matches for next
[0] cancel
[1] pack.next (integer) return integer at /bd/home/philippe/gdb/git/binutils-gdb/gdb/testsuite/gdb.ada/fun_renaming/pack.adb:19
[2] system.pool_local.next (system.address) return system.pool_local.acc_address at s-pooloc.adb:151
> FAIL: gdb.ada/fun_renaming.exp: print next(1) (timeout)
Fix by making the names and renamings more unique.
gdb/testsuite/ChangeLog
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/fun_renaming/pack.ads (Next): Rename to Fun_Rename_Test_Next.
(Renamed_Next): Rename to Renamed_Fun_Rename_Test_Next.
gdb.ada/fun_renaming/pack.adb (Next): Rename to Fun_Rename_Test_Next.
gdb.ada/fun_renaming/fun_renaming.adb (N): Rename to Fun_Rename_Test_N.
gdb.ada/fun_renaming.exp: Update accordingly.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove more calls to xfree from Python
@ 2018-12-27 19:04 sergiodj+buildbot
2018-12-27 19:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 19:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 075c55e0cc0a68eeab777027213c2f545618e844 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 075c55e0cc0a68eeab777027213c2f545618e844
Remove more calls to xfree from Python
This changes the Python code to remove some more calls to xfree, in
favor of self-managing data structures.
Tested on x86-64 Fedora 28.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* python/python.c (python_interactive_command): Use std::string.
(gdbpy_parameter): Likewise.
* python/py-utils.c (unicode_to_encoded_string): Update comment.
* python/py-symtab.c (salpy_str): Use PyString_FromFormat.
* python/py-record-btrace.c (recpy_bt_insn_data): Use
byte_vector.
* python/py-objfile.c (objfpy_get_build_id): Use
unique_xmalloc_ptr.
* python/py-inferior.c (infpy_read_memory): Use
unique_xmalloc_ptr.
* python/py-cmd.c (gdbpy_parse_command_name): Use std::string.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader
@ 2018-12-27 20:08 sergiodj+buildbot
2018-12-27 20:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 20:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af9a216102c27e308e338f77b6f9ad78dd0d2c09 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af9a216102c27e308e338f77b6f9ad78dd0d2c09
Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader
This changes minimal_symbol_reader to use DISABLE_COPY_AND_ASSIGN,
rather than the manual approach it currently uses.
Tested by rebuilding.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* minsyms.h (class minimal_symbol_reader): Use
DISABLE_COPY_AND_ASSIGN.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove empty nm-fbsd.h header for FreeBSD/i386 native target.
@ 2018-12-27 20:47 sergiodj+buildbot
2018-12-27 20:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 20:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47db57fd4ea9379c356c326458691f5cdc64c72b ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 47db57fd4ea9379c356c326458691f5cdc64c72b
Remove empty nm-fbsd.h header for FreeBSD/i386 native target.
gdb/ChangeLog:
* config/i386/nm-fbsd.h: Remove file.
* Makefile.in (HFILES_NO_SRCDIR): Remove config/i386/nm-fbsd.h.
* configure.nat: Remove NAT_FILE for FreeBSD/i386.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove gdbtypes special case from init.c rule
@ 2018-12-27 20:58 sergiodj+buildbot
2018-12-27 21:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c88c222e3c01e3f936455dca59f486e310d12f69 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c88c222e3c01e3f936455dca59f486e310d12f69
Remove gdbtypes special case from init.c rule
The rule to make init.c has a special case for gdbtypes, with a long
explanatory comment. All of this is obsolete, as the globals referred
to by the comment no longer exist. This patch simplifies the rule.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* Makefile.in (stamp-init): Remove gdbtypes special case.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make init.c depend on source files
@ 2018-12-27 21:10 sergiodj+buildbot
2018-12-27 21:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b180d0a254034c14fd540c1b57391bb413f788f7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b180d0a254034c14fd540c1b57391bb413f788f7
Make init.c depend on source files
I noticed that init.c depends on the object files that go into gdb.
Because init.c actually only requires the contents of the
corresponding source files, this unnecessarily serializes the step
that builds init.c.
This patch changes gdb's Makefile to make init.c depend on the source
files. This also simplifies the rule to build init.c.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* Makefile.in (INIT_FILES): Redefine.
(stamp-init): Remove sed, tr invocations. Use for loop. Don't
set LANG or LC_ALL.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2018-12-27 21:10 [binutils-gdb] Make init.c depend on source files sergiodj+buildbot
@ 2018-12-27 21:11 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:11 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/8968>
Commit(s) tested:
b180d0a254034c14fd540c1b57391bb413f788f7
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Make init.c depend on source files
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/b1/b180d0a254034c14fd540c1b57391bb413f788f7/>
*** Diff to previous build ***
============================
new FAIL: gdb.arch/disp-step-insn-reloc.exp: can't run to main
new FAIL: gdb.arch/ftrace-insn-reloc.exp: can't run to main to check for trace support
PASS -> FAIL: gdb.arch/s390-stackless.exp: info registers
PASS -> FAIL: gdb.arch/s390-stackless.exp: run until SIGSEGV
new FAIL: gdb.arch/s390-tdbregs.exp: can't run to main
new FAIL: gdb.asm/asm-source.exp: can't run to main
PASS -> FAIL: gdb.base/a2-run.exp: run "a2-run" again after setting args
PASS -> FAIL: gdb.base/a2-run.exp: run "a2-run" again with same args
PASS -> FAIL: gdb.base/a2-run.exp: run "a2-run" with arg
PASS -> FAIL: gdb.base/a2-run.exp: run "a2-run" with no args
PASS -> FAIL: gdb.base/a2-run.exp: run "a2-run" with shell
PASS -> FAIL: gdb.base/a2-run.exp: run after setting args to nil
new FAIL: gdb.base/advance.exp: can't run to main
new FAIL: gdb.base/annota-input-while-running.exp: can't run to main
PASS -> FAIL: gdb.base/annota1.exp: annotate ignore count change
PASS -> FAIL: gdb.base/annota1.exp: backtrace @ signal handler
PASS -> FAIL: gdb.base/annota1.exp: backtrace from shlibrary
PASS -> FAIL: gdb.base/annota1.exp: breakpoint ignore count
PASS -> FAIL: gdb.base/annota1.exp: continue to printf
PASS -> FAIL: gdb.base/annota1.exp: get inferior pid
PASS -> FAIL: gdb.base/annota1.exp: go after array init line
new FAIL: gdb.base/annota1.exp: next to exit loop
PASS -> FAIL: gdb.base/annota1.exp: print array
PASS -> FAIL: gdb.base/annota1.exp: re-run
new FAIL: gdb.base/annota1.exp: run to main
PASS -> FAIL: gdb.base/annota1.exp: send SIGUSR1
PASS -> FAIL: gdb.base/annota1.exp: set up display
PASS -> FAIL: gdb.base/annota1.exp: signal sent
PASS -> FAIL: gdb.base/annota1.exp: thread switch
PASS -> FAIL: gdb.base/annota3.exp: annotate ignore count change
PASS -> FAIL: gdb.base/annota3.exp: backtrace @ signal handler
PASS -> FAIL: gdb.base/annota3.exp: backtrace from shlibrary
PASS -> FAIL: gdb.base/annota3.exp: breakpoint ignore count
PASS -> FAIL: gdb.base/annota3.exp: continue to printf
PASS -> FAIL: gdb.base/annota3.exp: get inferior pid
PASS -> FAIL: gdb.base/annota3.exp: go after array init line
PASS -> FAIL: gdb.base/annota3.exp: next to exit loop
PASS -> FAIL: gdb.base/annota3.exp: print array
PASS -> FAIL: gdb.base/annota3.exp: re-run
PASS -> FAIL: gdb.base/annota3.exp: run until main breakpoint
PASS -> FAIL: gdb.base/annota3.exp: send SIGUSR1
PASS -> FAIL: gdb.base/annota3.exp: set up display
PASS -> FAIL: gdb.base/annota3.exp: signal sent
new FAIL: gdb.base/anon.exp: run to main
PASS -> FAIL: gdb.base/args.exp: argc for basic
PASS -> FAIL: gdb.base/args.exp: argc for one empty
PASS -> FAIL: gdb.base/args.exp: argc for one newline
PASS -> FAIL: gdb.base/args.exp: argc for two empty
PASS -> FAIL: gdb.base/args.exp: argc for two newlines
PASS -> FAIL: gdb.base/args.exp: argv[1] for basic
PASS -> FAIL: gdb.base/args.exp: argv[1] for one empty
PASS -> FAIL: gdb.base/args.exp: argv[1] for one newline
PASS -> FAIL: gdb.base/args.exp: argv[1] for two empty
PASS -> FAIL: gdb.base/args.exp: argv[1] for two newlines
PASS -> FAIL: gdb.base/args.exp: argv[2] for basic
PASS -> FAIL: gdb.base/args.exp: argv[2] for one empty
PASS -> FAIL: gdb.base/args.exp: argv[2] for one newline
PASS -> FAIL: gdb.base/args.exp: argv[2] for two empty
PASS -> FAIL: gdb.base/args.exp: argv[2] for two newlines
PASS -> FAIL: gdb.base/args.exp: argv[3] for one empty
PASS -> FAIL: gdb.base/args.exp: argv[3] for one newline
PASS -> FAIL: gdb.base/args.exp: argv[3] for two empty
PASS -> FAIL: gdb.base/args.exp: argv[3] for two newlines
PASS -> FAIL: gdb.base/args.exp: argv[4] for two empty
PASS -> FAIL: gdb.base/args.exp: argv[4] for two newlines
PASS -> FAIL: gdb.base/args.exp: continue to breakpoint: breakpoint for basic
PASS -> FAIL: gdb.base/args.exp: continue to breakpoint: breakpoint for one empty
PASS -> FAIL: gdb.base/args.exp: continue to breakpoint: breakpoint for one newline
PASS -> FAIL: gdb.base/args.exp: continue to breakpoint: breakpoint for two empty
PASS -> FAIL: gdb.base/args.exp: continue to breakpoint: breakpoint for two newlines
new FAIL: gdb.base/argv0-symlink.exp: argv[0] should be available on this target
new FAIL: gdb.base/asmlabel.exp: can't run to main
PASS -> FAIL: gdb.base/async-shell.exp: process stopped
PASS -> FAIL: gdb.base/async-shell.exp: run &
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: child: attach
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: child: continue to breakpoint: marker
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: child: detach
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: parent: attach
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: parent: continue to breakpoint: marker
PASS -> FAIL: gdb.base/attach-non-pgrp-leader.exp: parent: detach
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-1: attach
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-1: detach
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-1: error on Cannot access memory at address
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-2: attach
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-2: detach
PASS -> FAIL: gdb.base/attach-pie-misread.exp: shift-by-2: error on Cannot access memory at address
PASS -> FAIL: gdb.base/attach-wait-input.exp: editing off: attach and print
new FAIL: gdb.base/attach-wait-input.exp: editing off: can't run to setup_done
PASS -> FAIL: gdb.base/attach-wait-input.exp: editing on: attach and print
new FAIL: gdb.base/attach-wait-input.exp: editing on: can't run to setup_done
PASS -> FAIL: gdb.base/attach.exp: after attach2, set should_exit
PASS -> FAIL: gdb.base/attach.exp: attach call
PASS -> FAIL: gdb.base/attach.exp: attach to digits-starting nonsense is prohibited
PASS -> FAIL: gdb.base/attach.exp: attach to nonexistent process is prohibited
PASS -> FAIL: gdb.base/attach.exp: attach to nonsense is prohibited
PASS -> FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd
PASS -> FAIL: gdb.base/attach.exp: attach1 detach
PASS -> FAIL: gdb.base/attach.exp: attach1, after setting file
PASS -> FAIL: gdb.base/attach.exp: attach2, with no file
PASS -> UNRESOLVED: gdb.base/attach.exp: cmdline attach run: run to main
PASS -> FAIL: gdb.base/attach.exp: cmdline attach run: run to prompt
PASS -> FAIL: gdb.base/attach.exp: continue to breakpoint: postloop
PASS -> FAIL: gdb.base/attach.exp: continue until exit
PASS -> FAIL: gdb.base/attach.exp: continue until exit at after attach2, exit
PASS -> FAIL: gdb.base/attach.exp: starting with --pid
new FAIL: gdb.base/auxv.exp: can't run to main
PASS -> FAIL: gdb.base/bang.exp: continue until exit
new FAIL: gdb.base/bigcore.exp: can't run to main
PASS -> FAIL: gdb.base/bitfields.exp: bitfield containment #1
PASS -> FAIL: gdb.base/bitfields.exp: bitfield containment #2
PASS -> FAIL: gdb.base/bitfields.exp: bitfield uniqueness
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #1
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #2
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #3
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #4
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #5
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #6
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #7
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #8
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break1 #9
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break2
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break4 #1
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break4 #2
PASS -> FAIL: gdb.base/bitfields.exp: continuing to break5
PASS -> FAIL: gdb.base/bitfields.exp: determining signed-ness of bitfields
PASS -> FAIL: gdb.base/bitfields.exp: print flags
PASS -> FAIL: gdb.base/bitfields.exp: signed bitfields with -1
PASS -> FAIL: gdb.base/bitfields.exp: signed bitfields, max negative values
PASS -> FAIL: gdb.base/bitfields.exp: signed bitfields, max positive values
PASS -> FAIL: gdb.base/bitfields.exp: unsigned bitfield ranges
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield containment; flags.u1, flags.u3, and flags.s3 to all 1s
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield containment; flags.u2, flags.s1, flags.s2 to all 1s
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s1 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s2 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.s3 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u1 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u2 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: bitfield uniqueness; flags.u3 = 1
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #0
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #1
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #2
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #3
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #4
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break1 #5
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break2 #0
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break2 #1
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break3 #0
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break4 #0
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break4 #1
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break4 #2
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to break5 #0
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to tester prior to break1
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to tester prior to break2
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to tester prior to break3
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to tester prior to break4
PASS -> FAIL: gdb.base/bitfields2.exp: continuing to tester prior to break5
PASS -> FAIL: gdb.base/bitfields2.exp: determining signed-ness of bitfields
PASS -> FAIL: gdb.base/bitfields2.exp: long long bitfield values after set
PASS -> FAIL: gdb.base/bitfields2.exp: maximum signed bitfield values
PASS -> FAIL: gdb.base/bitfields2.exp: maximum unsigned bitfield values
PASS -> FAIL: gdb.base/bitfields2.exp: set long long signed bitfield positive
PASS -> FAIL: gdb.base/bitfields2.exp: set long long unsigned bitfield
PASS -> FAIL: gdb.base/break-fun-addr.exp: break-fun-addr1: p $pc == main
PASS -> FAIL: gdb.base/break-fun-addr.exp: break-fun-addr1: run to breakpoint at *main
PASS -> FAIL: gdb.base/break-fun-addr.exp: break-fun-addr2: p $pc == main
PASS -> FAIL: gdb.base/break-fun-addr.exp: break-fun-addr2: run to breakpoint at *main
new FAIL: gdb.base/break-idempotent.exp: can't run to main
PASS -> FAIL: gdb.base/break-inline.exp: break
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkYESdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkYESdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: symbol-less: ld.so exit
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: symbol-less: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieNO: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkNOdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: BINprelinkYESdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugIN: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieNO: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieNO: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: attach: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkNOdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugINpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugNOpieYES: symbol-less: entry point reached
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkNO: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieATTACH: attach-relinkYES: seen displacement message as NONZERO
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach final prompt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: attach: attach main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: attach: seen displacement message as PRESENT
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: main bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: reach-libfunc: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: BINprelinkYESdebugSEPpieYES: reach-main: reach
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: dl bt
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: symbol-less: ld.so exit
PASS -> FAIL: gdb.base/break-interp.exp: LDprelinkYESdebugNO: symbol-less: seen displacement message as PRESENT
new FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: can't run to start
new FAIL: gdb.base/break-main-file-remove-fail.exp: file: can't run to start
PASS -> FAIL: gdb.base/break-probes.exp: ensure using probes
new FAIL: gdb.base/break-unload-file.exp: cmdline: always-inserted off: break: can't run to main
new FAIL: gdb.base/break-unload-file.exp: cmdline: always-inserted off: hbreak: can't run to main
new FAIL: gdb.base/break-unload-file.exp: cmdline: always-inserted on: break: can't run to main
new FAIL: gdb.base/break-unload-file.exp: cmdline: always-inserted on: hbreak: can't run to main
new FAIL: gdb.base/break-unload-file.exp: file: always-inserted off: break: can't run to main
new FAIL: gdb.base/break-unload-file.exp: file: always-inserted off: hbreak: can't run to main
new FAIL: gdb.base/break-unload-file.exp: file: always-inserted on: break: can't run to main
new FAIL: gdb.base/break-unload-file.exp: file: always-inserted on: hbreak: can't run to main
PASS -> FAIL: gdb.base/break.exp: Temporary breakpoint info
PASS -> FAIL: gdb.base/break.exp: break on default location, 1st time
PASS -> FAIL: gdb.base/break.exp: break on default location, 2nd time
PASS -> FAIL: gdb.base/break.exp: break on default location, 3rd time
PASS -> FAIL: gdb.base/break.exp: break on default location, 4th time
new FAIL: gdb.base/break.exp: break tests suppressed
PASS -> FAIL: gdb.base/break.exp: breakpoint offset +1
PASS -> FAIL: gdb.base/break.exp: continue to breakpoint at }
PASS -> FAIL: gdb.base/break.exp: run until breakpoint set at a line number
PASS -> FAIL: gdb.base/break.exp: run until file:function
PASS -> FAIL: gdb.base/break.exp: run until file:linenum breakpoint
PASS -> FAIL: gdb.base/break.exp: run until function breakpoint
PASS -> FAIL: gdb.base/break.exp: run until quoted breakpoint
PASS -> FAIL: gdb.base/break.exp: set to-be-silent break bp_location1
PASS -> FAIL: gdb.base/break.exp: setting breakpoint at }
PASS -> FAIL: gdb.base/break.exp: step onto breakpoint
PASS -> FAIL: gdb.base/break.exp: temporary breakpoint line number #1
PASS -> FAIL: gdb.base/break.exp: temporary breakpoint line number #2
PASS -> FAIL: gdb.base/break.exp: until bp_location1
new FAIL: gdb.base/bt-selected-frame.exp: bt full: can't run to main
new FAIL: gdb.base/bt-selected-frame.exp: bt: can't run to main
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: call Fun
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: p/c fun
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-tc
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-td
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-te
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-tf
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-ti
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-tl
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-tld
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-tll
PASS -> UNRESOLVED: gdb.base/call-sc.exp: ptype; call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: return foo; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: return foo; synchronize pc to main
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-ts
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tc
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-td
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-te
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tf
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-ti
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tl
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tll
PASS -> FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-ts
new FAIL: gdb.base/call-signal-resume.exp: can't run to main
new FAIL: gdb.base/callexit.exp: can't run to main
PASS -> FAIL: gdb.base/callfuncs.exp: Finish from nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: Finish from nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: Finish from nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: Finish from nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace after finish from nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace after finish from nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace after finish from nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace after finish from nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace at nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace at nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace at nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: backtrace at nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: bt after continuing from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: bt after finishing from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: call function causing a breakpoint and then do a return
PASS -> FAIL: gdb.base/callfuncs.exp: call function causing a breakpoint then do a finish
PASS -> FAIL: gdb.base/callfuncs.exp: call function with many double arguments.
PASS -> FAIL: gdb.base/callfuncs.exp: call function with many float arguments.
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns char
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns char *
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns double
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns double _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns float
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns int
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns long
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns long double _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns short
PASS -> FAIL: gdb.base/callfuncs.exp: continue from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: finish from call dummy breakpoint returns correct value
PASS -> UNRESOLVED: gdb.base/callfuncs.exp: next to t_double_values
PASS -> FAIL: gdb.base/callfuncs.exp: next to t_structs_c
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: Finish from nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: Finish from nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: Finish from nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: Finish from nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: back at main after return from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace after finish from nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace after finish from nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace after finish from nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace after finish from nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace at nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace at nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace at nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: backtrace at nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: bt after continuing from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: bt after finishing from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call function causing a breakpoint and then do a return
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call function causing a breakpoint then do a finish
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call function with many double arguments.
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call function with many float arguments.
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns char
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns char *
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns double
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns double _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns float
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns float _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns int
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns long
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns long double _Complex
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: call inferior func with struct - returns short
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: continue from call dummy breakpoint
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: finish from call dummy breakpoint returns correct value
PASS -> UNRESOLVED: gdb.base/callfuncs.exp: noproto: next to t_double_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: next to t_structs_c
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p add
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p cmp10
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p doubleit
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p function_struct.func
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p function_struct_ptr->func
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p sum10
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p sum_args
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_call_add
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_char_array_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_char_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_double_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_double_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_double_int
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_double_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_enum_value1
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_enum_value2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_float_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_float_values2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_func_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_int_double
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_int_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_long_double_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_long_double_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_long_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_short_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_small_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: p t_string_values
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: print *
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: print callfunc
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: register contents after gdb function calls
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: register contents after nested call dummies
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: retrieve original register contents
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: stop at breakpoint in call dummy function
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: stop at nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: stop at nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: stop at nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: noproto: stop at nested call level 4
PASS -> FAIL: gdb.base/callfuncs.exp: p
PASS -> FAIL: gdb.base/callfuncs.exp: p add
PASS -> FAIL: gdb.base/callfuncs.exp: p cmp10
PASS -> FAIL: gdb.base/callfuncs.exp: p doubleit
PASS -> FAIL: gdb.base/callfuncs.exp: p function_struct.func
PASS -> FAIL: gdb.base/callfuncs.exp: p function_struct_ptr->func
PASS -> FAIL: gdb.base/callfuncs.exp: p sum10
PASS -> FAIL: gdb.base/callfuncs.exp: p sum_args
PASS -> FAIL: gdb.base/callfuncs.exp: p t_call_add
PASS -> FAIL: gdb.base/callfuncs.exp: p t_char_array_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_char_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_double_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: p t_double_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_double_int
PASS -> FAIL: gdb.base/callfuncs.exp: p t_double_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_enum_value1
PASS -> FAIL: gdb.base/callfuncs.exp: p t_enum_value2
PASS -> FAIL: gdb.base/callfuncs.exp: p t_float_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: p t_float_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_float_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_float_values2
PASS -> FAIL: gdb.base/callfuncs.exp: p t_func_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_int_double
PASS -> FAIL: gdb.base/callfuncs.exp: p t_int_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_many_args
PASS -> FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_long_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_short_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_small_values
PASS -> FAIL: gdb.base/callfuncs.exp: p t_string_values
PASS -> FAIL: gdb.base/callfuncs.exp: print *
PASS -> FAIL: gdb.base/callfuncs.exp: print callfunc
PASS -> FAIL: gdb.base/callfuncs.exp: register contents after gdb function calls
PASS -> FAIL: gdb.base/callfuncs.exp: register contents after nested call dummies
PASS -> FAIL: gdb.base/callfuncs.exp: retrieve original register contents
PASS -> FAIL: gdb.base/callfuncs.exp: stop at breakpoint in call dummy function
PASS -> FAIL: gdb.base/callfuncs.exp: stop at nested call level 1
PASS -> FAIL: gdb.base/callfuncs.exp: stop at nested call level 2
PASS -> FAIL: gdb.base/callfuncs.exp: stop at nested call level 3
PASS -> FAIL: gdb.base/callfuncs.exp: stop at nested call level 4
new FAIL: gdb.base/catch-gdb-caused-signals.exp: can't run to main to make the tests
new FAIL: gdb.base/catch-load.exp: non-matching load with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: non-matching load: can't run to main
new FAIL: gdb.base/catch-load.exp: non-matching unload with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: non-matching unload: can't run to main
new FAIL: gdb.base/catch-load.exp: plain load with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: plain load: can't run to main
new FAIL: gdb.base/catch-load.exp: plain unload with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: plain unload: can't run to main
new FAIL: gdb.base/catch-load.exp: rx load with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: rx load: can't run to main
new FAIL: gdb.base/catch-load.exp: rx unload with stop-on-solib-events: can't run to main
new FAIL: gdb.base/catch-load.exp: rx unload: can't run to main
new FAIL: gdb.base/catch-signal-siginfo-cond.exp: can't run to main
new FAIL: gdb.base/catch-syscall.exp: can't run to main
PASS -> FAIL: gdb.base/charset.exp: assign String16 with prefix u
PASS -> FAIL: gdb.base/charset.exp: assign String32 with prefix L
PASS -> FAIL: gdb.base/charset.exp: assign String32 with prefix U
PASS -> FAIL: gdb.base/charset.exp: assign string to int array
PASS -> FAIL: gdb.base/charset.exp: assign string to long array
PASS -> FAIL: gdb.base/charset.exp: assign string to short array
PASS -> FAIL: gdb.base/charset.exp: check value of "\a" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\a" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\a" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\a" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\a" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\b" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\b" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\b" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\b" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\b" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\f" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\f" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\f" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\f" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\f" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\n" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\n" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\n" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\n" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\n" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\r" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\r" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\r" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\r" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\r" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\t" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\t" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\t" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\t" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\t" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of "\v" in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of "\v" in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of "\v" in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of "\v" in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of "\v" in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\a' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\a' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\a' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\a' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\a' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\b' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\b' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\b' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\b' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\b' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\f' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\f' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\f' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\f' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\f' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\n' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\n' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\n' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\n' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\n' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\r' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\r' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\r' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\r' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\r' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\t' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\t' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\t' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\t' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\t' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of '\v' in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of '\v' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of '\v' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of '\v' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of '\v' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of parsed character literal in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of parsed character literal in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of parsed character literal in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of parsed character literal in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of parsed character literal in UTF-32
PASS -> FAIL: gdb.base/charset.exp: check value of parsed string literal in ASCII
PASS -> FAIL: gdb.base/charset.exp: check value of parsed string literal in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: check value of parsed string literal in IBM1047
PASS -> FAIL: gdb.base/charset.exp: check value of parsed string literal in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: check value of parsed string literal in UTF-32
PASS -> FAIL: gdb.base/charset.exp: display String String16 with x/hs
PASS -> FAIL: gdb.base/charset.exp: display String String32 with x/ws
PASS -> FAIL: gdb.base/charset.exp: print string in ASCII
PASS -> FAIL: gdb.base/charset.exp: print string in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: print string in IBM1047
PASS -> FAIL: gdb.base/charset.exp: print string in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: print string in UTF-32
PASS -> FAIL: gdb.base/charset.exp: run until all strings have been initialized
PASS -> FAIL: gdb.base/charset.exp: try printing '\a' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\a' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\a' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\a' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\a' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\b' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\b' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\b' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\b' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\b' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\f' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\f' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\f' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\f' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\f' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\n' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\n' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\n' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\n' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\n' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\r' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\r' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\r' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\r' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\r' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\t' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\t' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\t' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\t' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\t' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: try printing '\v' in ASCII
PASS -> FAIL: gdb.base/charset.exp: try printing '\v' in EBCDIC-US
PASS -> FAIL: gdb.base/charset.exp: try printing '\v' in IBM1047
PASS -> FAIL: gdb.base/charset.exp: try printing '\v' in ISO-8859-1
PASS -> FAIL: gdb.base/charset.exp: try printing '\v' in UTF-32
PASS -> FAIL: gdb.base/charset.exp: typedef to wchar_t
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 eight
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 five
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 four
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 nine
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 seven
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 six
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 start
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 ten
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 three
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break1 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 1 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 10 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 5 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 6 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 7 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 8 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 9 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break2 with many checkpoints
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: break4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 1 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 5 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 6 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: breakpoint 1 7 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: diff input and output one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: diff input and output two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork five
PASS -> FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork four
PASS -> FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork three
PASS -> FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: info checkpoints one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: info checkpoints two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: info checkpoints with at least 600 checkpoints
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 0
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 1
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 10
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 2
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 3
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 4
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 5
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 6
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 7
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 8
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: no more checkpoint 9
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 1
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 10
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 2
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 3
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 4
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 5
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 6
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 7
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 8
PASS -> FAIL: gdb.base/checkpoint-ns.exp: outfile still open 9
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 0 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 1 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 1 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 1 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 10 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 10 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 2 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 2 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 2 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 3 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 3 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 3 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 4 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 4 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 4 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 5 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 5 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 5 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 6 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 6 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 6 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 7 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 7 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 7 two
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 8 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 8 three
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 9 one
PASS -> UNRESOLVED: gdb.base/checkpoint-ns.exp: restart 9 three
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 1 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 1 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 10 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 2 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 3 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 4 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 5 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 5 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 6 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 6 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 7 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 7 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 8 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: step in 9 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 1 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 10 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 5 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 6 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 7 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 8 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify i 9 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 1 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 1 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 10 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 2 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 2 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 3 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 3 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 4 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 4 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 5 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 5 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 6 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 7 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 7 two
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 8 one
PASS -> FAIL: gdb.base/checkpoint-ns.exp: verify lines 9 one
PASS -> FAIL: gdb.base/checkpoint.exp: break1 eight
PASS -> FAIL: gdb.base/checkpoint.exp: break1 five
PASS -> FAIL: gdb.base/checkpoint.exp: break1 four
PASS -> FAIL: gdb.base/checkpoint.exp: break1 nine
PASS -> FAIL: gdb.base/checkpoint.exp: break1 seven
PASS -> FAIL: gdb.base/checkpoint.exp: break1 six
PASS -> FAIL: gdb.base/checkpoint.exp: break1 start
PASS -> FAIL: gdb.base/checkpoint.exp: break1 ten
PASS -> FAIL: gdb.base/checkpoint.exp: break1 three
PASS -> FAIL: gdb.base/checkpoint.exp: break1 two
PASS -> FAIL: gdb.base/checkpoint.exp: break2 1 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 10 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 2 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 3 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 4 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 5 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 6 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 7 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 8 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 9 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 one
PASS -> FAIL: gdb.base/checkpoint.exp: break2 with many checkpoints
PASS -> FAIL: gdb.base/checkpoint.exp: break3 one
PASS -> FAIL: gdb.base/checkpoint.exp: break4 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 1 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 2 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 3 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 4 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 5 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 6 one
PASS -> FAIL: gdb.base/checkpoint.exp: breakpoint 1 7 one
PASS -> FAIL: gdb.base/checkpoint.exp: diff input and output one
PASS -> FAIL: gdb.base/checkpoint.exp: diff input and output two
PASS -> FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork five
PASS -> FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork four
PASS -> FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork one
PASS -> FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork three
PASS -> FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork two
PASS -> FAIL: gdb.base/checkpoint.exp: info checkpoints one
PASS -> FAIL: gdb.base/checkpoint.exp: info checkpoints two
PASS -> FAIL: gdb.base/checkpoint.exp: info checkpoints with at least 600 checkpoints
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 0
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 1
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 10
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 2
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 3
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 4
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 5
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 6
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 7
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 8
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: no more checkpoint 9
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 1
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 10
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 2
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 3
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 4
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 5
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 6
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 7
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 8
PASS -> FAIL: gdb.base/checkpoint.exp: outfile still open 9
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 0 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 1 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 1 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 1 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 10 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 10 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 2 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 2 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 2 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 3 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 3 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 3 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 4 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 4 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 4 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 5 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 5 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 5 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 6 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 6 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 6 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 7 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 7 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 7 two
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 8 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 8 three
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 9 one
PASS -> UNRESOLVED: gdb.base/checkpoint.exp: restart 9 three
PASS -> FAIL: gdb.base/checkpoint.exp: step in 1 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 1 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 10 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 2 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 2 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 3 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 3 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 4 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 4 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 5 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 5 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 6 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 6 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 7 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 7 two
PASS -> FAIL: gdb.base/checkpoint.exp: step in 8 one
PASS -> FAIL: gdb.base/checkpoint.exp: step in 9 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 1 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 10 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 2 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 3 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 4 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 5 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 6 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 7 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 8 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify i 9 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 1 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 1 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 10 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 2 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 2 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 3 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 3 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 4 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 4 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 5 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 5 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 6 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 7 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 7 two
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 8 one
PASS -> FAIL: gdb.base/checkpoint.exp: verify lines 9 one
PASS -> FAIL: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through
PASS -> FAIL: gdb.base/chng-syms.exp: running to stop_here first time
PASS -> FAIL: gdb.base/chng-syms.exp: running with invalidated bpt condition after executable changes
PASS -> FAIL: gdb.base/commands.exp: bp_deleted_in_command_test: run factorial until breakpoint
new FAIL: gdb.base/commands.exp: breakpoint_clear_command_test: cannot run to factorial
new FAIL: gdb.base/commands.exp: breakpoint_command_test: cannot run to factorial
PASS -> FAIL: gdb.base/commands.exp: error_clears_commands_left: cmd1 error
new FAIL: gdb.base/commands.exp: if_while_breakpoint_command_test: cannot run to factorial
new FAIL: gdb.base/commands.exp: infrun_breakpoint_command_test: cannot run to factorial
new FAIL: gdb.base/commands.exp: progvar_complex_if_while_test: cannot run to factorial
new FAIL: gdb.base/commands.exp: progvar_simple_if_test: cannot run to factorial
new FAIL: gdb.base/commands.exp: progvar_simple_while_test: cannot run to factorial
PASS -> FAIL: gdb.base/commands.exp: temporary_breakpoint_commands: run factorial until temporary breakpoint
new FAIL: gdb.base/commands.exp: test_command_prompt_position: cannot run to factorial
new FAIL: gdb.base/commands.exp: watchpoint_command_test: cannot run to factorial
new FAIL: gdb.base/compare-sections.exp: can't run to main
PASS -> FAIL: gdb.base/completion.exp: complete 'handle keyword'
PASS -> FAIL: gdb.base/completion.exp: complete 'handle signal'
PASS -> FAIL: gdb.base/completion.exp: complete 'p &values[0] -> a'
PASS -> FAIL: gdb.base/completion.exp: complete 'p no_var_named_this-arg'
PASS -> FAIL: gdb.base/completion.exp: complete 'p values[0] . a'
PASS -> FAIL: gdb.base/completion.exp: complete 'p values[0].a'
PASS -> FAIL: gdb.base/completion.exp: complete
PASS -> FAIL: gdb.base/completion.exp: complete help aliases
PASS -> FAIL: gdb.base/completion.exp: completion of field in anonymous union
PASS -> UNRESOLVED: gdb.base/completion.exp: set max-completions unlimited
new FAIL: gdb.base/cond-eval-mode.exp: can't run to main
new FAIL: gdb.base/condbreak-call-false.exp: can't run to main
PASS -> FAIL: gdb.base/condbreak.exp: break *main task 999 if
PASS -> FAIL: gdb.base/condbreak.exp: rerun to main
PASS -> FAIL: gdb.base/condbreak.exp: run until breakpoint at marker1
PASS -> FAIL: gdb.base/condbreak.exp: run until breakpoint at marker2
PASS -> FAIL: gdb.base/condbreak.exp: run until breakpoint at marker3
PASS -> FAIL: gdb.base/condbreak.exp: run until breakpoint at marker4
PASS -> FAIL: gdb.base/condbreak.exp: run until breakpoint set at a line number
new FAIL: gdb.base/consecutive-step-over.exp: can't run to main
new FAIL: gdb.base/continue-after-aborted-step-over.exp: displaced-stepping=off: run to main
new FAIL: gdb.base/continue-after-aborted-step-over.exp: displaced-stepping=on: run to main
PASS -> FAIL: gdb.base/corefile.exp: attach: core file is cleared
PASS -> FAIL: gdb.base/corefile.exp: attach: with core
PASS -> UNRESOLVED: gdb.base/corefile.exp: no question: load core
PASS -> UNRESOLVED: gdb.base/corefile.exp: quit with a core file
PASS -> UNRESOLVED: gdb.base/corefile.exp: quit with a process
PASS -> FAIL: gdb.base/corefile.exp: run: core file is cleared
PASS -> FAIL: gdb.base/corefile.exp: run: with core
PASS -> FAIL: gdb.base/dbx.exp: assign first
PASS -> FAIL: gdb.base/dbx.exp: func print_average
PASS -> FAIL: gdb.base/dbx.exp: func sum
PASS -> FAIL: gdb.base/dbx.exp: print first
PASS -> FAIL: gdb.base/dbx.exp: running to main
new FAIL: gdb.base/debug-expr.exp: run to main
new FAIL: gdb.base/define.exp: define tests suppressed
PASS -> FAIL: gdb.base/define.exp: use hook-stop command
PASS -> FAIL: gdb.base/define.exp: use user command: nextwhere
PASS -> FAIL: gdb.base/detach.exp: detach, one
PASS -> FAIL: gdb.base/detach.exp: detach, two
PASS -> FAIL: gdb.base/detach.exp: set should_exit, one
PASS -> FAIL: gdb.base/detach.exp: set should_exit, two
new FAIL: gdb.base/disabled-location.exp: can't run to main
new FAIL: gdb.base/display.exp: could not run to main - other tests will fail.
PASS -> FAIL: gdb.base/dmsym.exp: continue
PASS -> FAIL: gdb.base/dmsym.exp: print val
PASS -> FAIL: gdb.base/dmsym.exp: run until breakpoint at BREAK
new FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: continue: can't run to main
new FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: wrapcont: can't run to main
new FAIL: gdb.base/dprintf-bp-same-addr.exp: agent: can't run to main
new FAIL: gdb.base/dprintf-bp-same-addr.exp: gdb: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=agent dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=agent dd=on: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=call dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=call dd=on: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=gdb dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=off ds=gdb dd=on: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=agent dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=agent dd=on: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=call dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=call dd=on: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=gdb dd=off: can't run to main
new FAIL: gdb.base/dprintf-detach.exp: bai=on ds=gdb dd=on: can't run to main
new FAIL: gdb.base/dprintf-next.exp: can't run to main
new FAIL: gdb.base/dprintf-non-stop.exp: can't run to main
PASS -> FAIL: gdb.base/dprintf-pending.exp: run to resolved dprintf
PASS -> FAIL: gdb.base/dprintf-pending.exp: without symbols: run to resolved dprintf
new FAIL: gdb.base/duplicate-bp.exp: del_1_stop_2: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: del_1_stop_2: delete #1, stop at #2
PASS -> FAIL: gdb.base/duplicate-bp.exp: del_1_stop_2: delete $bp_num_1
new FAIL: gdb.base/duplicate-bp.exp: del_2_stop_1: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: del_2_stop_1: delete #2, stop at #1
PASS -> FAIL: gdb.base/duplicate-bp.exp: del_2_stop_1: delete $bp_num_2
new FAIL: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: delete $bp_num_2
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable #1, delete #2, stop at #3
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_2_stop_3: disable $bp_num_1
new FAIL: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: delete $bp_num_3
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable #1, delete #3, stop at #2
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_1_del_3_stop_1: disable $bp_num_1
new FAIL: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: delete $bp_num_1
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable #2, delete #1, stop at #3
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_1_stop_3: disable $bp_num_2
new FAIL: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: delete $bp_num_3
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable #2, delete #3, stop at #1
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_2_del_3_stop_1: disable $bp_num_2
new FAIL: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: delete $bp_num_1
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable #3, delete #1, stop at #2
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_1_stop_2: disable $bp_num_3
new FAIL: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: can't run to main
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: delete $bp_num_2
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable #3, delete #2, stop at #1
PASS -> FAIL: gdb.base/duplicate-bp.exp: dis_3_del_2_stop_1: disable $bp_num_3
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue from enable count, first time
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue from enable count, second time
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue through enable count, now disabled
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue to auto-deleted break marker3
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue to break marker1
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue to ignored & auto-deleted break marker1
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue until exit at no stop
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue until exit at no stop at auto-disabled break marker2
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & auto-deleted break marker1
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored & disabled break marker1
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored break marker1
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue with ignore count
PASS -> FAIL: gdb.base/ena-dis-br.exp: continue with ignore count, not stopped at bpt
new FAIL: gdb.base/ena-dis-br.exp: enable/disable break tests suppressed
PASS -> FAIL: gdb.base/ena-dis-br.exp: info auto-deleted break marker3
PASS -> FAIL: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
PASS -> FAIL: gdb.base/ena-dis-br.exp: rerun to main
PASS -> FAIL: gdb.base/ena-dis-br.exp: step after continue with ignore count
PASS -> FAIL: gdb.base/ending-run.exp: Cleared 2 by line
PASS -> FAIL: gdb.base/ending-run.exp: Step to return
PASS -> FAIL: gdb.base/ending-run.exp: all set to continue
PASS -> FAIL: gdb.base/ending-run.exp: clear 2 by default
PASS -> FAIL: gdb.base/ending-run.exp: clear worked
PASS -> FAIL: gdb.base/ending-run.exp: cleared bp at line before routine
PASS -> FAIL: gdb.base/ending-run.exp: cont
PASS -> FAIL: gdb.base/ending-run.exp: run
PASS -> FAIL: gdb.base/ending-run.exp: step out of main
PASS -> FAIL: gdb.base/ending-run.exp: step to end of run
new FAIL: gdb.base/exec-invalid-sysroot.exp: couldn't run exec-invalid-sysroot
new FAIL: gdb.base/execl-update-breakpoints.exp: couldn't run to main
new FAIL: gdb.base/execution-termios.exp: continue: can't run to main
new FAIL: gdb.base/execution-termios.exp: finish: can't run to main
new FAIL: gdb.base/execution-termios.exp: infcall: can't run to main
new FAIL: gdb.base/execution-termios.exp: next: can't run to main
PASS -> FAIL: gdb.base/find.exp: $_
PASS -> FAIL: gdb.base/find.exp: $numfound
PASS -> FAIL: gdb.base/find.exp: find 16-bit pattern
PASS -> FAIL: gdb.base/find.exp: find 32-bit pattern
PASS -> FAIL: gdb.base/find.exp: find 64-bit pattern
PASS -> FAIL: gdb.base/find.exp: find byte pattern with end address
PASS -> FAIL: gdb.base/find.exp: find mixed-sized pattern
PASS -> FAIL: gdb.base/find.exp: find pattern straddling chunk boundary
PASS -> FAIL: gdb.base/find.exp: find string pattern
PASS -> FAIL: gdb.base/find.exp: max-count
PASS -> FAIL: gdb.base/find.exp: pattern found at end of range
PASS -> FAIL: gdb.base/find.exp: run until function breakpoint
PASS -> FAIL: gdb.base/find.exp: search spanning large range
new FAIL: gdb.base/find.exp: set *
new FAIL: gdb.base/find.exp: set int16_search_buf[10] = 0x1234
new FAIL: gdb.base/find.exp: set int32_search_buf[10] = 0x12345678
new FAIL: gdb.base/find.exp: set int64_search_buf[10] = 0xfedcba9876543210LL
PASS -> FAIL: gdb.base/find.exp: size,max-count, /1/b
PASS -> FAIL: gdb.base/find.exp: size,max-count, /1b
PASS -> FAIL: gdb.base/find.exp: size,max-count, /b/1
PASS -> FAIL: gdb.base/find.exp: size,max-count, /b1
new FAIL: gdb.base/finish-pretty.exp: can't run to foo
new FAIL: gdb.base/fixsection.exp: can't run to main
new FAIL: gdb.base/foll-exec-mode.exp: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: new,continue,infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: new,continue,no_infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: new,next,infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: new,next,no_infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: same,continue,no_infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec-mode.exp: same,next,no_infswitch: couldn't run foll-exec-mode
new FAIL: gdb.base/foll-exec.exp: couldn't run foll-exec
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=child: detach_on_fork=off: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=child: detach_on_fork=on: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=parent: detach_on_fork=off: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=parent: detach_on_fork=on: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=child: detach_on_fork=off: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=child: detach_on_fork=on: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=parent: detach_on_fork=off: run
PASS -> FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=parent: detach_on_fork=on: run
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=child: all-stop: schedule-multiple=off: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=child: all-stop: schedule-multiple=on: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=child: non-stop: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=parent: all-stop: schedule-multiple=off: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=parent: all-stop: schedule-multiple=on: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=off: follow-fork=parent: non-stop: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=child: all-stop: schedule-multiple=off: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=child: all-stop: schedule-multiple=on: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=child: non-stop: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=parent: all-stop: schedule-multiple=off: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=parent: all-stop: schedule-multiple=on: can't run to main
new FAIL: gdb.base/fork-running-state.exp: detach-on-fork=on: follow-fork=parent: non-stop: can't run to main
PASS -> FAIL: gdb.base/frame-selection.exp: backtrace at breakpoint
PASS -> FAIL: gdb.base/frame-selection.exp: continue to breakpoint: frame_2
PASS -> FAIL: gdb.base/frame-selection.exp: frame 0
PASS -> FAIL: gdb.base/frame-selection.exp: frame 1
PASS -> FAIL: gdb.base/frame-selection.exp: frame 2
PASS -> FAIL: gdb.base/frame-selection.exp: frame 3
PASS -> FAIL: gdb.base/frame-selection.exp: get_frame_address: frame 0
PASS -> FAIL: gdb.base/frame-selection.exp: get_frame_address: frame 1
PASS -> FAIL: gdb.base/frame-selection.exp: get_frame_address: frame 2
new FAIL: gdb.base/frameapply.exp: can't run to setup_done
new FAIL: gdb.base/func-ptr.exp: can't run to main
PASS -> FAIL: gdb.base/funcargs.exp: backtrace after alloca
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6a
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6b
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6c
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6d
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6e
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6f
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6g
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6h
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6i
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6j
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call6k
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7a
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7b
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7c
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7d
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7e
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7f
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7g
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7h
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7i
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7j
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call7k
PASS -> FAIL: gdb.base/funcargs.exp: backtrace from call_after_alloca_subr
PASS -> FAIL: gdb.base/funcargs.exp: backtrace in indirectly called function
PASS -> FAIL: gdb.base/funcargs.exp: backtrace through call with trampolines
PASS -> FAIL: gdb.base/funcargs.exp: continue to call0a
PASS -> FAIL: gdb.base/funcargs.exp: continue to call0b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call0c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call0d
PASS -> FAIL: gdb.base/funcargs.exp: continue to call0e
PASS -> FAIL: gdb.base/funcargs.exp: continue to call1b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call1c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call1d
PASS -> FAIL: gdb.base/funcargs.exp: continue to call1e
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2d
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2e
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2f
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2g
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2h
PASS -> FAIL: gdb.base/funcargs.exp: continue to call2i
PASS -> FAIL: gdb.base/funcargs.exp: continue to call3b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call3c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call4b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call5b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6d
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6e
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6f
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6g
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6h
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6i
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6j
PASS -> FAIL: gdb.base/funcargs.exp: continue to call6k
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7b
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7c
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7d
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7e
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7f
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7g
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7h
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7i
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7j
PASS -> FAIL: gdb.base/funcargs.exp: continue to call7k
PASS -> FAIL: gdb.base/funcargs.exp: continue to callcb
PASS -> FAIL: gdb.base/funcargs.exp: continue to callcc
PASS -> FAIL: gdb.base/funcargs.exp: continue to callcd
PASS -> FAIL: gdb.base/funcargs.exp: continue to callce
PASS -> FAIL: gdb.base/funcargs.exp: continue to callcf
PASS -> FAIL: gdb.base/funcargs.exp: finish from indirectly called function
PASS -> FAIL: gdb.base/funcargs.exp: finish from marker_call_with_trampolines
PASS -> FAIL: gdb.base/funcargs.exp: print *unp
PASS -> FAIL: gdb.base/funcargs.exp: print d1 after run to call2a
PASS -> FAIL: gdb.base/funcargs.exp: print d2 after run to call2a
PASS -> FAIL: gdb.base/funcargs.exp: print f1 after run to call2a
PASS -> FAIL: gdb.base/funcargs.exp: print f2 after run to call2a
PASS -> FAIL: gdb.base/funcargs.exp: print un
PASS -> FAIL: gdb.base/funcargs.exp: recursive passing of structs by value
PASS -> FAIL: gdb.base/funcargs.exp: run to call0a
PASS -> FAIL: gdb.base/funcargs.exp: run to call1a
PASS -> FAIL: gdb.base/funcargs.exp: run to call2a
PASS -> FAIL: gdb.base/funcargs.exp: run to call3a
PASS -> FAIL: gdb.base/funcargs.exp: run to call4a
PASS -> FAIL: gdb.base/funcargs.exp: run to call5a
PASS -> FAIL: gdb.base/funcargs.exp: run to call6a
PASS -> FAIL: gdb.base/funcargs.exp: run to call7a
PASS -> FAIL: gdb.base/funcargs.exp: run to callc1a
PASS -> FAIL: gdb.base/funcargs.exp: run to callc2a
PASS -> FAIL: gdb.base/funcargs.exp: run to hitbottom
PASS -> FAIL: gdb.base/funcargs.exp: stepping back to main from function called with trampolines
PASS -> FAIL: gdb.base/funcargs.exp: stepping into function called with trampolines
PASS -> FAIL: gdb.base/funcargs.exp: stepping into indirectly called function
new FAIL: gdb.base/gcore-relro-pie.exp: can't run to break_here
new FAIL: gdb.base/gdb-caching-proc.exp: argv[0] should be available on this target
PASS -> FAIL: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
new FAIL: gdb.base/gdb1090.exp: can't run to main
new FAIL: gdb.base/gdb11530.exp: run to main
new FAIL: gdb.base/gdb11531.exp: run to main
new FAIL: gdb.base/gdb1555.exp: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=0: final_debug=0: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=0: final_debug=0: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=0: final_debug=1: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=0: final_debug=1: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=1: final_debug=0: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=1: final_debug=0: set-break: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=1: final_debug=1: can't run to main
new FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=1: resolver_debug=1: final_debug=1: set-break: can't run to main
PASS -> FAIL: gdb.base/gnu-ifunc.exp: static: static gnu_ifunc
new FAIL: gdb.base/gnu_vector.exp: runto main
new FAIL: gdb.base/hbreak-in-shr-unsupported.exp: can't run to main
new FAIL: gdb.base/hbreak-unmapped.exp: can't run to main
new FAIL: gdb.base/hbreak2.exp: break tests suppressed
new FAIL: gdb.base/hook-stop.exp: hook-stop kills inferior: can't run to main
new FAIL: gdb.base/hook-stop.exp: hook-stop runs before frame print: can't run to main
new FAIL: gdb.base/hook-stop.exp: hook-stop runs continue&: can't run to main
new FAIL: gdb.base/hook-stop.exp: hook-stop runs continue: can't run to main
new FAIL: gdb.base/hook-stop.exp: hook-stop runs next: can't run to main
new FAIL: gdb.base/infcall-input.exp: couldn't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tc-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tc-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tc-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-tc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-ti: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-tl: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-tll: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td-ts: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-ti: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tl: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tll: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf-ts: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ti-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ti-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ti-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ti: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tl-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tl-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tl-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tl: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-ti: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tl: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tll: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld-ts: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tll-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tll-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tll-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-tll: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ts-td: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ts-tf: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ts-tld: can't run to main
new FAIL: gdb.base/infcall-nested-structs.exp: types-ts: can't run to main
new FAIL: gdb.base/info-fun.exp: NO: can't run to main
new FAIL: gdb.base/info-os.exp: cannot run to main
new FAIL: gdb.base/info-program.exp: can't run to main
new FAIL: gdb.base/info_qt.exp: can't run to setup_done
new FAIL: gdb.base/interp.exp: run to main
new FAIL: gdb.base/interrupt-daemon.exp: can't run to daemon_main function
new FAIL: gdb.base/interrupt-noterm.exp: can't run to main
PASS -> FAIL: gdb.base/jit-attach-pie.exp: attach
PASS -> FAIL: gdb.base/jit-simple.exp: shared: change addr: address changed
PASS -> FAIL: gdb.base/jit-simple.exp: shared: change addr: initial run: get address of __jit_debug_descriptor
PASS -> FAIL: gdb.base/jit-simple.exp: shared: change addr: initial run: maint info breakpoints shows jit breakpoint
PASS -> FAIL: gdb.base/jit-simple.exp: shared: change addr: second run: get address of __jit_debug_descriptor
PASS -> FAIL: gdb.base/jit-simple.exp: shared: change addr: second run: maint info breakpoints shows jit breakpoint
PASS -> FAIL: gdb.base/jit-simple.exp: shared: same addr: initial run: get address of __jit_debug_descriptor
PASS -> FAIL: gdb.base/jit-simple.exp: shared: same addr: initial run: maint info breakpoints shows jit breakpoint
PASS -> FAIL: gdb.base/jit-simple.exp: shared: same addr: second run: get address of __jit_debug_descriptor
PASS -> FAIL: gdb.base/jit-simple.exp: shared: same addr: second run: maint info breakpoints shows jit breakpoint
new FAIL: gdb.base/jit-so.exp: one_jit_test-1: can't run to main
new FAIL: gdb.base/jit-so.exp: one_jit_test-2: can't run to main
new FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: can't run to main
new FAIL: gdb.base/jit.exp: attach: one_jit_test-2: can't run to main
new FAIL: gdb.base/jit.exp: one_jit_test-1: can't run to main
new FAIL: gdb.base/jit.exp: one_jit_test-2: can't run to main
PASS -> FAIL: gdb.base/kill-detach-inferiors-cmd.exp: attach to pid
PASS -> FAIL: gdb.base/kill-detach-inferiors-cmd.exp: detach inferiors 3
PASS -> FAIL: gdb.base/kill-detach-inferiors-cmd.exp: kill inferiors 1 2
PASS -> FAIL: gdb.base/kill-detach-inferiors-cmd.exp: start
new FAIL: gdb.base/label.exp: label tests suppressed
new FAIL: gdb.base/line-symtabs.exp: can't run to main
new FAIL: gdb.base/list.exp: list - after stop: 10, 10: can't run to main
new FAIL: gdb.base/list.exp: list - after stop: 10, 1: can't run to main
new FAIL: gdb.base/list.exp: list - after stop: 10, 2: can't run to main
new FAIL: gdb.base/list.exp: list - after stop: 10, 3: can't run to main
new FAIL: gdb.base/list.exp: list after stop: 1, 10: can't run to main
new FAIL: gdb.base/list.exp: list after stop: 10, 10: can't run to main
new FAIL: gdb.base/list.exp: list after stop: 10, 1: can't run to main
new FAIL: gdb.base/list.exp: list after stop: 10, 2: can't run to main
new FAIL: gdb.base/list.exp: list after stop: 10, 3: can't run to main
new FAIL: gdb.base/long-inferior-output.exp: run to main
new FAIL: gdb.base/long_long.exp: run to known_types
new FAIL: gdb.base/longjmp.exp: can't run to main
new FAIL: gdb.base/macscp.exp: macro tests suppressed: couldn't run to main
PASS -> UNRESOLVED: gdb.base/maint.exp: maint check-psymtabs
PASS -> FAIL: gdb.base/maint.exp: maint info breakpoints
PASS -> FAIL: gdb.base/maint.exp: maint print type
new FAIL: gdb.base/max-value-size.exp: can't run to main
PASS -> FAIL: gdb.base/memattr.exp: mem1 can be written
PASS -> FAIL: gdb.base/multi-forks.exp: detach 2
PASS -> FAIL: gdb.base/multi-forks.exp: detach 3
PASS -> FAIL: gdb.base/multi-forks.exp: detach 4
PASS -> FAIL: gdb.base/multi-forks.exp: detach 5
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 10
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 11
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 12
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 13
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 14
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 15
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 16
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 6
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 7
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 8
PASS -> FAIL: gdb.base/multi-forks.exp: did kill 9
PASS -> FAIL: gdb.base/multi-forks.exp: follow parent, print pids
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 1
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 10
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 11
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 12
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 13
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 14
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 15
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 2
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 3
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 4
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 5
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 6
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 7
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 8
PASS -> FAIL: gdb.base/multi-forks.exp: inferior 9
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 1
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 10
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 11
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 12
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 13
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 14
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 15
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 16
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 2
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 3
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 4
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 5
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 6
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 7
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 8
PASS -> FAIL: gdb.base/multi-forks.exp: info inferior 9
PASS -> FAIL: gdb.base/multi-forks.exp: kill 10
PASS -> FAIL: gdb.base/multi-forks.exp: kill 11
PASS -> FAIL: gdb.base/multi-forks.exp: kill 12
PASS -> FAIL: gdb.base/multi-forks.exp: kill 13
PASS -> FAIL: gdb.base/multi-forks.exp: kill 14
PASS -> FAIL: gdb.base/multi-forks.exp: kill 15
PASS -> FAIL: gdb.base/multi-forks.exp: kill 16
PASS -> FAIL: gdb.base/multi-forks.exp: kill 6
PASS -> FAIL: gdb.base/multi-forks.exp: kill 7
PASS -> FAIL: gdb.base/multi-forks.exp: kill 8
PASS -> FAIL: gdb.base/multi-forks.exp: kill 9
PASS -> FAIL: gdb.base/multi-forks.exp: restart final
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 1
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 10
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 11
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 12
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 13
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 14
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 15
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 16
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 2
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 3
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 4
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 5
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 6
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 7
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 8
PASS -> FAIL: gdb.base/multi-forks.exp: run to exit 9
PASS -> FAIL: gdb.base/new-ui-echo.exp: extra console as driver: breakpoint hit reported on main console too
PASS -> FAIL: gdb.base/new-ui-echo.exp: extra console as driver: next on main console
PASS -> FAIL: gdb.base/new-ui-echo.exp: extra console as driver: run to breakpoint on extra console
PASS -> FAIL: gdb.base/new-ui-echo.exp: main console as driver: breakpoint hit reported on extra console too
PASS -> FAIL: gdb.base/new-ui-echo.exp: main console as driver: next on extra console
PASS -> FAIL: gdb.base/new-ui-echo.exp: main console as driver: run to breakpoint on main console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 1 on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 2 on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 3 on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: run to breakpoint on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: run to breakpoint on main console
new FAIL: gdb.base/new-ui.exp: do_test_invalid_args: could not run to main
PASS -> FAIL: gdb.base/nostdlib.exp: continue to marker
PASS -> FAIL: gdb.base/nostdlib.exp: stop at run
new FAIL: gdb.base/paginate-after-ctrl-c-running.exp: ctrlc target running: can't run to main
new FAIL: gdb.base/paginate-bg-execution.exp: cancel with ctrl-c: can't run to main
new FAIL: gdb.base/paginate-bg-execution.exp: cancel with quit: can't run to main
new FAIL: gdb.base/paginate-bg-execution.exp: paginate: can't run to main
new FAIL: gdb.base/paginate-inferior-exit.exp: paginate: can't run to main
PASS -> FAIL: gdb.base/pending.exp: continue to resolved breakpoint 1
PASS -> FAIL: gdb.base/pending.exp: continue to resolved breakpoint 2
PASS -> FAIL: gdb.base/pending.exp: continue to resolved breakpoint 3
PASS -> FAIL: gdb.base/pending.exp: rerun to main
PASS -> FAIL: gdb.base/pending.exp: run to resolved breakpoint 1
PASS -> FAIL: gdb.base/pending.exp: running to main
new FAIL: gdb.base/pie-fork.exp: test_detach_on_fork_follow_child: can't run to main
PASS -> FAIL: gdb.base/pie-fork.exp: test_detach_on_fork_follow_child: continue
new FAIL: gdb.base/pie-fork.exp: test_detach_on_fork_follow_parent: can't run to main
PASS -> FAIL: gdb.base/pie-fork.exp: test_detach_on_fork_follow_parent: continue
new FAIL: gdb.base/pie-fork.exp: test_no_detach_on_fork: can't run to main
PASS -> FAIL: gdb.base/pie-fork.exp: test_no_detach_on_fork: continue
new FAIL: gdb.base/pr11022.exp: can't run to main
new FAIL: gdb.base/printcmds.exp: can't run to main
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=quit: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=sighup: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=sigterm: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=quit: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=sighup: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=sigterm: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=0: quit_how=quit: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=0: quit_how=sighup: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=0: quit_how=sigterm: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=1: quit_how=quit: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=1: quit_how=sighup: attach
PASS -> FAIL: gdb.base/quit-live.exp: appear_how=attach: extra_inferior=1: quit_how=sigterm: attach
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=0: quit_how=quit: can't run to main
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=0: quit_how=sighup: can't run to main
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=0: quit_how=sigterm: can't run to main
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=1: quit_how=quit: can't run to main
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=1: quit_how=sighup: can't run to main
new FAIL: gdb.base/quit-live.exp: appear_how=run: extra_inferior=1: quit_how=sigterm: can't run to main
new FAIL: gdb.base/range-stepping.exp: can't run to main
new FAIL: gdb.base/reggroups.exp: can't run to main
new FAIL: gdb.base/relativedebug.exp: continue
new FAIL: gdb.base/relativedebug.exp: pause found in backtrace
PASS -> FAIL: gdb.base/reread-readsym.exp: source reread-readsym.gdb 1
PASS -> FAIL: gdb.base/reread-readsym.exp: source reread-readsym.gdb 2
PASS -> FAIL: gdb.base/reread.exp: opts= "" "" : continue until exit at second pass
PASS -> FAIL: gdb.base/reread.exp: opts= "" "" : run to foo
PASS -> FAIL: gdb.base/reread.exp: opts= "" "" : second pass: run to foo
PASS -> FAIL: gdb.base/reread.exp: opts= "-fPIE" "ldflags=-pie" : continue until exit at second pass
PASS -> FAIL: gdb.base/reread.exp: opts= "-fPIE" "ldflags=-pie" : run to foo
PASS -> FAIL: gdb.base/reread.exp: opts= "-fPIE" "ldflags=-pie" : second pass: run to foo
PASS -> FAIL: gdb.base/run-after-attach.exp: attach to process
PASS -> UNRESOLVED: gdb.base/run-after-attach.exp: attempt kill via quit
PASS -> FAIL: gdb.base/run-after-attach.exp: restart process
new FAIL: gdb.base/savedregs.exp: can't run to main
PASS -> FAIL: gdb.base/sepdebug.exp: backtrace from factorial
PASS -> FAIL: gdb.base/sepdebug.exp: backtrace while in called function
PASS -> FAIL: gdb.base/sepdebug.exp: break on default location, 1st time
PASS -> FAIL: gdb.base/sepdebug.exp: break on default location, 2nd time
PASS -> FAIL: gdb.base/sepdebug.exp: break on default location, 3rd time
PASS -> FAIL: gdb.base/sepdebug.exp: break on default location, 4th time
PASS -> FAIL: gdb.base/sepdebug.exp: breakpoint offset +1
PASS -> FAIL: gdb.base/sepdebug.exp: build-id: run until breakpoint set at small function, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: build-id: run until function breakpoint, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: clear current line has no breakpoint disallowed
PASS -> FAIL: gdb.base/sepdebug.exp: continue to factorial
PASS -> FAIL: gdb.base/sepdebug.exp: continue until exit at recursive next test
PASS -> FAIL: gdb.base/sepdebug.exp: debuglink: run until breakpoint set at small function, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: finish from called function
PASS -> FAIL: gdb.base/sepdebug.exp: finish from outermost frame disallowed
PASS -> FAIL: gdb.base/sepdebug.exp: finish with arguments disallowed
PASS -> FAIL: gdb.base/sepdebug.exp: hit breakpoint on called function
PASS -> FAIL: gdb.base/sepdebug.exp: hit silent break bp_location1
PASS -> FAIL: gdb.base/sepdebug.exp: multiple-dirs: run until breakpoint set at small function, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: multiple-dirs: run until function breakpoint, optimized file
PASS -> FAIL: gdb.base/sepdebug.exp: next over recursive call
PASS -> FAIL: gdb.base/sepdebug.exp: next to recursive call
PASS -> FAIL: gdb.base/sepdebug.exp: run to factorial
PASS -> FAIL: gdb.base/sepdebug.exp: run until breakpoint set at a line number
PASS -> FAIL: gdb.base/sepdebug.exp: run until file:function
PASS -> FAIL: gdb.base/sepdebug.exp: run until file:linenum breakpoint
PASS -> FAIL: gdb.base/sepdebug.exp: run until function breakpoint
PASS -> FAIL: gdb.base/sepdebug.exp: run until quoted breakpoint
new FAIL: gdb.base/sepdebug.exp: sepdebug tests suppressed
PASS -> FAIL: gdb.base/sepdebug.exp: step onto breakpoint
PASS -> FAIL: gdb.base/sepdebug.exp: step over breakpoint
PASS -> FAIL: gdb.base/sepdebug.exp: stopped for silent break bp_location1
PASS -> FAIL: gdb.base/sepdebug.exp: until bp_location1
new FAIL: gdb.base/set-noassign.exp: can't run to main
new FAIL: gdb.base/setshow.exp: can't run to main
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: empty var: print result of getenv for GDB_TEST_VAR
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: long var value: print result of getenv for GDB_TEST_VAR
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: strange named var: print result of getenv for 'asd ='
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: set 3 environment variables: print result of getenv for A
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: set 3 environment variables: print result of getenv for B
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: set 3 environment variables: print result of getenv for C
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset one variable, reset one: print result of getenv for A
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset one variable, reset one: print result of getenv for B
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset one variable, reset one: print result of getenv for C
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset two variables, reset one: print result of getenv for A
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset two variables, reset one: print result of getenv for B
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test set/unset of vars: unset two variables, reset one: print result of getenv for C
PASS -> FAIL: gdb.base/share-env-with-gdbserver.exp: test unset of vars: check if unset works
PASS -> FAIL: gdb.base/shlib-call.exp: breakpoint function shr2
PASS -> FAIL: gdb.base/shlib-call.exp: continue until exit
PASS -> FAIL: gdb.base/shlib-call.exp: next over shr1
PASS -> UNRESOLVED: gdb.base/shlib-call.exp: next to shr1
PASS -> FAIL: gdb.base/shlib-call.exp: print g
PASS -> FAIL: gdb.base/shlib-call.exp: print mainshr1
PASS -> FAIL: gdb.base/shlib-call.exp: print shr1
PASS -> FAIL: gdb.base/shlib-call.exp: re-run to bp in shared library
PASS -> FAIL: gdb.base/shlib-call.exp: run to bp in shared library
PASS -> FAIL: gdb.base/shlib-call.exp: run until breakpoint set at a function
PASS -> FAIL: gdb.base/shlib-call.exp: step into mainshr1
PASS -> FAIL: gdb.base/shlib-call.exp: step out of shr2 to main
new FAIL: gdb.base/shreloc.exp: can't run to main
PASS -> FAIL: gdb.base/sigall.exp: advance to 33
PASS -> FAIL: gdb.base/sigall.exp: advance to 34
PASS -> FAIL: gdb.base/sigall.exp: advance to 35
PASS -> FAIL: gdb.base/sigall.exp: advance to 36
PASS -> FAIL: gdb.base/sigall.exp: advance to 37
PASS -> FAIL: gdb.base/sigall.exp: advance to 38
PASS -> FAIL: gdb.base/sigall.exp: advance to 39
PASS -> FAIL: gdb.base/sigall.exp: advance to 40
PASS -> FAIL: gdb.base/sigall.exp: advance to 41
PASS -> FAIL: gdb.base/sigall.exp: advance to 42
PASS -> FAIL: gdb.base/sigall.exp: advance to 43
PASS -> FAIL: gdb.base/sigall.exp: advance to 44
PASS -> FAIL: gdb.base/sigall.exp: advance to 45
PASS -> FAIL: gdb.base/sigall.exp: advance to 46
PASS -> FAIL: gdb.base/sigall.exp: advance to 47
PASS -> FAIL: gdb.base/sigall.exp: advance to 48
PASS -> FAIL: gdb.base/sigall.exp: advance to 49
PASS -> FAIL: gdb.base/sigall.exp: advance to 50
PASS -> FAIL: gdb.base/sigall.exp: advance to 51
PASS -> FAIL: gdb.base/sigall.exp: advance to 52
PASS -> FAIL: gdb.base/sigall.exp: advance to 53
PASS -> FAIL: gdb.base/sigall.exp: advance to 54
PASS -> FAIL: gdb.base/sigall.exp: advance to 55
PASS -> FAIL: gdb.base/sigall.exp: advance to 56
PASS -> FAIL: gdb.base/sigall.exp: advance to 57
PASS -> FAIL: gdb.base/sigall.exp: advance to 58
PASS -> FAIL: gdb.base/sigall.exp: advance to 59
PASS -> FAIL: gdb.base/sigall.exp: advance to 60
PASS -> FAIL: gdb.base/sigall.exp: advance to 61
PASS -> FAIL: gdb.base/sigall.exp: advance to 62
PASS -> FAIL: gdb.base/sigall.exp: advance to 63
PASS -> FAIL: gdb.base/sigall.exp: advance to ALRM
PASS -> FAIL: gdb.base/sigall.exp: advance to BUS
PASS -> FAIL: gdb.base/sigall.exp: advance to CHLD
PASS -> FAIL: gdb.base/sigall.exp: advance to CONT
PASS -> FAIL: gdb.base/sigall.exp: advance to DANGER
PASS -> FAIL: gdb.base/sigall.exp: advance to EMT
PASS -> FAIL: gdb.base/sigall.exp: advance to FPE
PASS -> FAIL: gdb.base/sigall.exp: advance to GRANT
PASS -> FAIL: gdb.base/sigall.exp: advance to HUP
PASS -> FAIL: gdb.base/sigall.exp: advance to ILL
PASS -> FAIL: gdb.base/sigall.exp: advance to IO
PASS -> FAIL: gdb.base/sigall.exp: advance to LOST
PASS -> FAIL: gdb.base/sigall.exp: advance to LWP
PASS -> FAIL: gdb.base/sigall.exp: advance to MSG
PASS -> FAIL: gdb.base/sigall.exp: advance to PHONE
PASS -> FAIL: gdb.base/sigall.exp: advance to PIPE
PASS -> FAIL: gdb.base/sigall.exp: advance to POLL
PASS -> FAIL: gdb.base/sigall.exp: advance to PRIO
PASS -> FAIL: gdb.base/sigall.exp: advance to PROF
PASS -> FAIL: gdb.base/sigall.exp: advance to PWR
PASS -> FAIL: gdb.base/sigall.exp: advance to QUIT
PASS -> FAIL: gdb.base/sigall.exp: advance to RETRACT
PASS -> FAIL: gdb.base/sigall.exp: advance to SAK
PASS -> FAIL: gdb.base/sigall.exp: advance to SEGV
PASS -> FAIL: gdb.base/sigall.exp: advance to SOUND
PASS -> FAIL: gdb.base/sigall.exp: advance to SYS
PASS -> FAIL: gdb.base/sigall.exp: advance to TERM
PASS -> FAIL: gdb.base/sigall.exp: advance to TSTP
PASS -> FAIL: gdb.base/sigall.exp: advance to TTIN
PASS -> FAIL: gdb.base/sigall.exp: advance to TTOU
PASS -> FAIL: gdb.base/sigall.exp: advance to URG
PASS -> FAIL: gdb.base/sigall.exp: advance to USR1
PASS -> FAIL: gdb.base/sigall.exp: advance to USR2
PASS -> FAIL: gdb.base/sigall.exp: advance to VTALRM
PASS -> FAIL: gdb.base/sigall.exp: advance to WAITING
PASS -> FAIL: gdb.base/sigall.exp: advance to WINCH
PASS -> FAIL: gdb.base/sigall.exp: advance to WIND
PASS -> FAIL: gdb.base/sigall.exp: advance to XCPU
PASS -> FAIL: gdb.base/sigall.exp: advance to XFSZ
PASS -> FAIL: gdb.base/sigall.exp: continue until exit at continue to sigall exit
new FAIL: gdb.base/sigall.exp: get signal 33
new FAIL: gdb.base/sigall.exp: get signal 34
new FAIL: gdb.base/sigall.exp: get signal 35
new FAIL: gdb.base/sigall.exp: get signal 36
new FAIL: gdb.base/sigall.exp: get signal 37
new FAIL: gdb.base/sigall.exp: get signal 38
new FAIL: gdb.base/sigall.exp: get signal 39
new FAIL: gdb.base/sigall.exp: get signal 40
new FAIL: gdb.base/sigall.exp: get signal 41
new FAIL: gdb.base/sigall.exp: get signal 42
new FAIL: gdb.base/sigall.exp: get signal 43
new FAIL: gdb.base/sigall.exp: get signal 44
new FAIL: gdb.base/sigall.exp: get signal 45
new FAIL: gdb.base/sigall.exp: get signal 46
new FAIL: gdb.base/sigall.exp: get signal 47
new FAIL: gdb.base/sigall.exp: get signal 48
new FAIL: gdb.base/sigall.exp: get signal 49
new FAIL: gdb.base/sigall.exp: get signal 50
new FAIL: gdb.base/sigall.exp: get signal 51
new FAIL: gdb.base/sigall.exp: get signal 52
new FAIL: gdb.base/sigall.exp: get signal 53
new FAIL: gdb.base/sigall.exp: get signal 54
new FAIL: gdb.base/sigall.exp: get signal 55
new FAIL: gdb.base/sigall.exp: get signal 56
new FAIL: gdb.base/sigall.exp: get signal 57
new FAIL: gdb.base/sigall.exp: get signal 58
new FAIL: gdb.base/sigall.exp: get signal 59
new FAIL: gdb.base/sigall.exp: get signal 60
new FAIL: gdb.base/sigall.exp: get signal 61
new FAIL: gdb.base/sigall.exp: get signal 62
new FAIL: gdb.base/sigall.exp: get signal 63
PASS -> FAIL: gdb.base/sigall.exp: get signal ABRT
PASS -> FAIL: gdb.base/sigall.exp: get signal ALRM
PASS -> FAIL: gdb.base/sigall.exp: get signal BUS
PASS -> FAIL: gdb.base/sigall.exp: get signal CHLD
PASS -> FAIL: gdb.base/sigall.exp: get signal CONT
new FAIL: gdb.base/sigall.exp: get signal DANGER
new FAIL: gdb.base/sigall.exp: get signal EMT
PASS -> FAIL: gdb.base/sigall.exp: get signal FPE
new FAIL: gdb.base/sigall.exp: get signal GRANT
PASS -> FAIL: gdb.base/sigall.exp: get signal HUP
PASS -> FAIL: gdb.base/sigall.exp: get signal ILL
PASS -> FAIL: gdb.base/sigall.exp: get signal IO
new FAIL: gdb.base/sigall.exp: get signal LOST
new FAIL: gdb.base/sigall.exp: get signal LWP
new FAIL: gdb.base/sigall.exp: get signal MSG
new FAIL: gdb.base/sigall.exp: get signal PHONE
PASS -> FAIL: gdb.base/sigall.exp: get signal PIPE
new FAIL: gdb.base/sigall.exp: get signal POLL
new FAIL: gdb.base/sigall.exp: get signal PRIO
PASS -> FAIL: gdb.base/sigall.exp: get signal PROF
PASS -> FAIL: gdb.base/sigall.exp: get signal PWR
PASS -> FAIL: gdb.base/sigall.exp: get signal QUIT
new FAIL: gdb.base/sigall.exp: get signal RETRACT
new FAIL: gdb.base/sigall.exp: get signal SAK
PASS -> FAIL: gdb.base/sigall.exp: get signal SEGV
new FAIL: gdb.base/sigall.exp: get signal SOUND
PASS -> FAIL: gdb.base/sigall.exp: get signal SYS
PASS -> FAIL: gdb.base/sigall.exp: get signal TERM
PASS -> FAIL: gdb.base/sigall.exp: get signal TSTP
PASS -> FAIL: gdb.base/sigall.exp: get signal TTIN
PASS -> FAIL: gdb.base/sigall.exp: get signal TTOU
PASS -> FAIL: gdb.base/sigall.exp: get signal URG
PASS -> FAIL: gdb.base/sigall.exp: get signal USR1
PASS -> FAIL: gdb.base/sigall.exp: get signal USR2
PASS -> FAIL: gdb.base/sigall.exp: get signal VTALRM
new FAIL: gdb.base/sigall.exp: get signal WAITING
PASS -> FAIL: gdb.base/sigall.exp: get signal WINCH
new FAIL: gdb.base/sigall.exp: get signal WIND
PASS -> FAIL: gdb.base/sigall.exp: get signal XCPU
PASS -> FAIL: gdb.base/sigall.exp: get signal XFSZ
PASS -> FAIL: gdb.base/sigall.exp: send signal 33
PASS -> FAIL: gdb.base/sigall.exp: send signal 34
PASS -> FAIL: gdb.base/sigall.exp: send signal 35
PASS -> FAIL: gdb.base/sigall.exp: send signal 36
PASS -> FAIL: gdb.base/sigall.exp: send signal 37
PASS -> FAIL: gdb.base/sigall.exp: send signal 38
PASS -> FAIL: gdb.base/sigall.exp: send signal 39
PASS -> FAIL: gdb.base/sigall.exp: send signal 40
PASS -> FAIL: gdb.base/sigall.exp: send signal 41
PASS -> FAIL: gdb.base/sigall.exp: send signal 42
PASS -> FAIL: gdb.base/sigall.exp: send signal 43
PASS -> FAIL: gdb.base/sigall.exp: send signal 44
PASS -> FAIL: gdb.base/sigall.exp: send signal 45
PASS -> FAIL: gdb.base/sigall.exp: send signal 46
PASS -> FAIL: gdb.base/sigall.exp: send signal 47
PASS -> FAIL: gdb.base/sigall.exp: send signal 48
PASS -> FAIL: gdb.base/sigall.exp: send signal 49
PASS -> FAIL: gdb.base/sigall.exp: send signal 50
PASS -> FAIL: gdb.base/sigall.exp: send signal 51
PASS -> FAIL: gdb.base/sigall.exp: send signal 52
PASS -> FAIL: gdb.base/sigall.exp: send signal 53
PASS -> FAIL: gdb.base/sigall.exp: send signal 54
PASS -> FAIL: gdb.base/sigall.exp: send signal 55
PASS -> FAIL: gdb.base/sigall.exp: send signal 56
PASS -> FAIL: gdb.base/sigall.exp: send signal 57
PASS -> FAIL: gdb.base/sigall.exp: send signal 58
PASS -> FAIL: gdb.base/sigall.exp: send signal 59
PASS -> FAIL: gdb.base/sigall.exp: send signal 60
PASS -> FAIL: gdb.base/sigall.exp: send signal 61
PASS -> FAIL: gdb.base/sigall.exp: send signal 62
PASS -> FAIL: gdb.base/sigall.exp: send signal 63
PASS -> FAIL: gdb.base/sigall.exp: send signal ABRT
PASS -> FAIL: gdb.base/sigall.exp: send signal ALRM
PASS -> FAIL: gdb.base/sigall.exp: send signal BUS
PASS -> FAIL: gdb.base/sigall.exp: send signal CHLD
PASS -> FAIL: gdb.base/sigall.exp: send signal CONT
PASS -> FAIL: gdb.base/sigall.exp: send signal DANGER
PASS -> FAIL: gdb.base/sigall.exp: send signal EMT
PASS -> FAIL: gdb.base/sigall.exp: send signal FPE
PASS -> FAIL: gdb.base/sigall.exp: send signal GRANT
PASS -> FAIL: gdb.base/sigall.exp: send signal HUP
PASS -> FAIL: gdb.base/sigall.exp: send signal ILL
PASS -> FAIL: gdb.base/sigall.exp: send signal IO
PASS -> FAIL: gdb.base/sigall.exp: send signal LOST
PASS -> FAIL: gdb.base/sigall.exp: send signal LWP
PASS -> FAIL: gdb.base/sigall.exp: send signal MSG
PASS -> FAIL: gdb.base/sigall.exp: send signal PHONE
PASS -> FAIL: gdb.base/sigall.exp: send signal PIPE
PASS -> FAIL: gdb.base/sigall.exp: send signal POLL
PASS -> FAIL: gdb.base/sigall.exp: send signal PRIO
PASS -> FAIL: gdb.base/sigall.exp: send signal PROF
PASS -> FAIL: gdb.base/sigall.exp: send signal PWR
PASS -> FAIL: gdb.base/sigall.exp: send signal QUIT
PASS -> FAIL: gdb.base/sigall.exp: send signal RETRACT
PASS -> FAIL: gdb.base/sigall.exp: send signal SAK
PASS -> FAIL: gdb.base/sigall.exp: send signal SEGV
PASS -> FAIL: gdb.base/sigall.exp: send signal SOUND
PASS -> FAIL: gdb.base/sigall.exp: send signal SYS
PASS -> FAIL: gdb.base/sigall.exp: send signal TERM
PASS -> FAIL: gdb.base/sigall.exp: send signal TSTP
PASS -> FAIL: gdb.base/sigall.exp: send signal TTIN
PASS -> FAIL: gdb.base/sigall.exp: send signal TTOU
PASS -> FAIL: gdb.base/sigall.exp: send signal URG
PASS -> FAIL: gdb.base/sigall.exp: send signal USR1
PASS -> FAIL: gdb.base/sigall.exp: send signal USR2
PASS -> FAIL: gdb.base/sigall.exp: send signal VTALRM
PASS -> FAIL: gdb.base/sigall.exp: send signal WAITING
PASS -> FAIL: gdb.base/sigall.exp: send signal WINCH
PASS -> FAIL: gdb.base/sigall.exp: send signal WIND
PASS -> FAIL: gdb.base/sigall.exp: send signal XCPU
PASS -> FAIL: gdb.base/sigall.exp: send signal XFSZ
new FAIL: gdb.base/sigaltstack.exp: can't run to main
new FAIL: gdb.base/sigbpt.exp: can't run to main
PASS -> FAIL: gdb.base/sigchld.exp: SIGCHLD blocked in inferior
new FAIL: gdb.base/siginfo-addr.exp: can't run to main
new FAIL: gdb.base/siginfo-obj.exp: can't run to main
new FAIL: gdb.base/siginfo-thread.exp: can't run to main
new FAIL: gdb.base/siginfo.exp: can't run to main
new FAIL: gdb.base/signull.exp: can't run to main
new FAIL: gdb.base/sigrepeat.exp: can't run to main
PASS -> FAIL: gdb.base/sigstep.exp: continue over handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: continue over handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler entry: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, continue from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, next from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, step from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, continue from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, continue from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, continue from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: continue to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, no handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler entry: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, no handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: nexti on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, no handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=off: stepi on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, no handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler entry: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler: performing continue
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, no handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: nexti on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, no handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: backtrace
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set done
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: set no_handler
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint, no handler: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler, with sw-watchpoint: watch $convenience
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler: continue to infinite loop
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: displaced=on: stepi on breakpoint, skip handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: finish from handleri: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: finish from handleri: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: finish from handleri: leave signal trampoline
PASS -> FAIL: gdb.base/sigstep.exp: next over handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: next over handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: next to handler entry: performing next
PASS -> FAIL: gdb.base/sigstep.exp: next to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, continue from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, next from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, step from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: next to handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: next to handler: performing next
PASS -> FAIL: gdb.base/sigstep.exp: next to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: nexti from handleri: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti from handleri: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti from handleri: leave signal trampoline
PASS -> FAIL: gdb.base/sigstep.exp: nexti over handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: nexti over handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: nexti over handler: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: nexti over handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler entry: performing nexti
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, continue from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, next from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, step from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: nexti to handler
PASS -> FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: return from handleri: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: return from handleri: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: return from handleri: leave signal trampoline
PASS -> FAIL: gdb.base/sigstep.exp: step over handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: step over handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: step to handler entry: performing step
PASS -> FAIL: gdb.base/sigstep.exp: step to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, continue from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, next from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, step from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: step to handler
PASS -> FAIL: gdb.base/sigstep.exp: step to handler: performing step
PASS -> FAIL: gdb.base/sigstep.exp: step to handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: stepi from handleri: continue to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi from handleri: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi from handleri: leave signal trampoline
PASS -> FAIL: gdb.base/sigstep.exp: stepi over handler: advanced
PASS -> FAIL: gdb.base/sigstep.exp: stepi over handler: get next PC
PASS -> FAIL: gdb.base/sigstep.exp: stepi over handler: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: stepi over handler: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler entry: performing stepi
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler entry: set itimer = itimer_real
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, continue from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, next from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: advance in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: continue to signal
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: leave handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: si in handler
PASS -> FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: stepi to handler
PASS -> FAIL: gdb.base/sigstep.exp: validate backtrace: backtrace for nexti
PASS -> FAIL: gdb.base/sigstep.exp: validate backtrace: continue to stepi handler
PASS -> FAIL: gdb.base/skip-solib.exp: bt
new FAIL: gdb.base/skip-solib.exp: skip tests suppressed
PASS -> FAIL: gdb.base/skip-solib.exp: step
PASS -> FAIL: gdb.base/skip-solib.exp: step after ignoring solib file.
new FAIL: gdb.base/skip.exp: can't run to main
new FAIL: gdb.base/so-impl-ld.exp: implicit solibs tests suppressed
PASS -> FAIL: gdb.base/so-impl-ld.exp: step in solib call
PASS -> FAIL: gdb.base/so-impl-ld.exp: step into solib call
PASS -> FAIL: gdb.base/so-impl-ld.exp: step out of solib call
PASS -> FAIL: gdb.base/so-impl-ld.exp: step over solib call
new FAIL: gdb.base/solib-corrupted.exp: can't run to main
new FAIL: gdb.base/solib-display.exp: NO: can't run to main
PASS -> FAIL: gdb.base/solib-nodir.exp: library loaded
PASS -> FAIL: gdb.base/solib-overlap.exp: 0x40000000: attach
PASS -> FAIL: gdb.base/solib-overlap.exp: 0x40000000: detach
PASS -> FAIL: gdb.base/solib-overlap.exp: 0x50000000: attach
PASS -> FAIL: gdb.base/solib-overlap.exp: 0x50000000: detach
new FAIL: gdb.base/solib-search.exp: can't run to main
new FAIL: gdb.base/solib-symbol.exp: can't run to main
new FAIL: gdb.base/solib-vanish.exp: can't run to main
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib1 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib2 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib1 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib2 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib1 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 debug, lib2 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib1 first
PASS -> FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib2 first
new FAIL: gdb.base/solib-weak.exp: setting breakpoint at bar
new FAIL: gdb.base/source-execution.exp: can't run to main
new FAIL: gdb.base/sss-bp-on-user-bp-2.exp: can't run to main
new FAIL: gdb.base/sss-bp-on-user-bp.exp: can't run to main
new FAIL: gdb.base/stack-checking.exp: can't run to main
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = $TEST: inferior started
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = $TEST: set startup-with-shell off
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = $TEST: testing first argument
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = *.unique-extension: first argument not expanded
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = *.unique-extension: inferior started
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = off; run_args = *.unique-extension: set startup-with-shell off
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = $TEST: inferior started
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = $TEST: set startup-with-shell on
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = $TEST: testing first argument
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = *.unique-extension: first argument expanded
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = *.unique-extension: inferior started
PASS -> FAIL: gdb.base/startup-with-shell.exp: startup_with_shell = on; run_args = *.unique-extension: set startup-with-shell on
new FAIL: gdb.base/step-break.exp: can't run to main
PASS -> FAIL: gdb.base/step-bt.exp: backtrace after first instruction step
PASS -> FAIL: gdb.base/step-bt.exp: backtrace after second instruction step
PASS -> FAIL: gdb.base/step-bt.exp: run to hello
new FAIL: gdb.base/step-line.exp: can't run to main
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=auto: couldn't run to main
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=off: couldn't run to main
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=on: couldn't run to main
new FAIL: gdb.base/step-test.exp: can't run to main
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: call Fun<n>
PASS -> UNRESOLVED: gdb.base/structs.exp: continue to breakpoint: chartest-done
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: finish foo<n>; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p chartest
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 10 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 11 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 12 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 13 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 14 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 15 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 16 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 17 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-td
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tld
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tll
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-td
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tf
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 7 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 8 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: p/c L<n>; call 9 structs-tc
PASS -> FAIL: gdb.base/structs.exp: p/c fun<n>
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-td
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-tf
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-ti
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-tl
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-tld
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-tll
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo1; structs-ts
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-td
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-tf
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-ti
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-tl
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-tld
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-tll
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tc-ts
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-td-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-td-tf
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tf-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tf-td
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-ti-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tl-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tld-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-tll-tc
PASS -> UNRESOLVED: gdb.base/structs.exp: ptype foo2; structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: value foo<n> returned; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 8 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-td
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tld
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tll
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-td-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-td
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 3 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 3 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 4 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 4 structs-ts
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 5 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 6 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 7 structs-tc
PASS -> FAIL: gdb.base/structs.exp: zed L<n> for return; return 8 structs-tc
new FAIL: gdb.base/structs2.exp: can't run to main
new FAIL: gdb.base/sym-file.exp: can't run to main
new FAIL: gdb.base/symbol-alias.exp: can't run to main
new FAIL: gdb.base/symtab-search-order.exp: can't run to main
new FAIL: gdb.base/term.exp: can't run to break_here
new FAIL: gdb.base/type-opaque.exp: can't run to main
PASS -> FAIL: gdb.base/unload.exp: continue to shrfunc2
PASS -> FAIL: gdb.base/unload.exp: continuing to unloaded libfile
PASS -> FAIL: gdb.base/unload.exp: continuing to unloaded libfile2
PASS -> FAIL: gdb.base/unload.exp: pending breakpoint info on first run at shrfunc1
PASS -> FAIL: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc1
PASS -> FAIL: gdb.base/unload.exp: pending breakpoint info on second run at shrfunc2
PASS -> FAIL: gdb.base/unload.exp: print y from libfile
PASS -> FAIL: gdb.base/unload.exp: print y from libfile2
PASS -> FAIL: gdb.base/unload.exp: rerun to shared library breakpoint
PASS -> FAIL: gdb.base/unload.exp: running program
new FAIL: gdb.base/until-nodebug.exp: can't run to main
new FAIL: gdb.base/until.exp: can't run to main
new FAIL: gdb.base/unwindonsignal.exp: can't run to main
PASS -> FAIL: gdb.base/vdso-warning.exp: core: save a corefile
PASS -> FAIL: gdb.base/vdso-warning.exp: run: startup
new FAIL: gdb.base/vla-optimized-out.exp: o1: can't run to f1
new FAIL: gdb.base/vla-optimized-out.exp: o3: can't run to f1
new FAIL: gdb.base/vla-optimized-out.exp: o3_strict: can't run to f1
new FAIL: gdb.base/watch-cond-infcall.exp: hw: run to main
new FAIL: gdb.base/watch-cond-infcall.exp: sw: run to main
new FAIL: gdb.base/watch-cond.exp: can't run to main
new FAIL: gdb.base/watch-non-mem.exp: can't run to main
new FAIL: gdb.base/watch-vfork.exp: run to main
new FAIL: gdb.base/watchpoint-reuse-slot.exp: can't run to main
PASS -> FAIL: gdb.base/watchpoint-solib.exp: continue to foo
PASS -> FAIL: gdb.base/watchpoint-solib.exp: continue to foo again
PASS -> FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit
PASS -> FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again
PASS -> FAIL: gdb.base/watchpoint-solib.exp: rerun to main
PASS -> FAIL: gdb.base/watchpoint-solib.exp: set watchpoint on g
new FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: run to main
PASS -> FAIL: gdb.base/watchpoint.exp: awatch disallowed for register based expression
PASS -> FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func5 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func6 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func7 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: continue with watch -location
PASS -> FAIL: gdb.base/watchpoint.exp: continue with watch foo2
PASS -> FAIL: gdb.base/watchpoint.exp: continue with watch foo4
PASS -> FAIL: gdb.base/watchpoint.exp: delete watch w/condition and thread
PASS -> FAIL: gdb.base/watchpoint.exp: delete watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: disable watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue to breakpoint: func5 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue to breakpoint: func6 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue to breakpoint: func7 breakpoint here
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue with watch -location
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue with watch foo2
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: continue with watch foo4
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: delete watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: disable watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: reenable watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: run to marker1 in test_disabling_watchpoints
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: run to marker1 in test_simple_watchpoint
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: watch $pc
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: watch -location .x
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: watchpoint `$pc' is enabled
PASS -> FAIL: gdb.base/watchpoint.exp: no-hw: watchpoint on buf hit
PASS -> FAIL: gdb.base/watchpoint.exp: reenable watchpoint `$pc'
PASS -> FAIL: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
PASS -> FAIL: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
PASS -> FAIL: gdb.base/watchpoint.exp: rwatch disallowed for register based expression
PASS -> FAIL: gdb.base/watchpoint.exp: set slow condition watch w/thread
PASS -> FAIL: gdb.base/watchpoint.exp: trigger slow conditional watch
PASS -> FAIL: gdb.base/watchpoint.exp: watch $pc
PASS -> FAIL: gdb.base/watchpoint.exp: watch -location .x
new FAIL: gdb.base/watchpoint.exp: watch tests suppressed
PASS -> FAIL: gdb.base/watchpoint.exp: watchpoint `$pc' is enabled
PASS -> FAIL: gdb.base/watchpoint.exp: watchpoint on buf hit
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 1
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 2
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 3
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 4
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 5
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fifth time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit, first time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fourth time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit, second time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint hit, third time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 2
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 3
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
PASS -> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
new FAIL: gdb.base/whatis-ptype-typedefs.exp: lang=c++: can't run to main
new FAIL: gdb.base/whatis-ptype-typedefs.exp: lang=c: can't run to main
new FAIL: gdb.compile/compile-tls.exp: can't run to main
PASS -> FAIL: gdb.cp/annota2.exp: annotate-quit
new FAIL: gdb.cp/annota2.exp: break at main
PASS -> FAIL: gdb.cp/annota2.exp: continue until exit
PASS -> FAIL: gdb.cp/annota2.exp: delete bps
PASS -> FAIL: gdb.cp/annota2.exp: print class
PASS -> FAIL: gdb.cp/annota2.exp: run until main breakpoint
PASS -> FAIL: gdb.cp/annota2.exp: set watch on a.x
PASS -> FAIL: gdb.cp/annota2.exp: watch triggered on a.x
PASS -> FAIL: gdb.cp/annota3.exp: annotate-quit
PASS -> FAIL: gdb.cp/annota3.exp: continue to exit
PASS -> FAIL: gdb.cp/annota3.exp: first run until main breakpoint
PASS -> FAIL: gdb.cp/annota3.exp: print class
PASS -> FAIL: gdb.cp/annota3.exp: second run until main breakpoint
PASS -> FAIL: gdb.cp/annota3.exp: set watch on a.x
PASS -> FAIL: gdb.cp/annota3.exp: watch triggered on a.x
PASS -> FAIL: gdb.cp/bool.exp: print return_false
PASS -> FAIL: gdb.cp/bool.exp: print return_true
PASS -> FAIL: gdb.cp/call-c.exp: continue to bp
PASS -> FAIL: gdb.cp/call-c.exp: print foo
PASS -> FAIL: gdb.cp/call-c.exp: print handle->func
PASS -> FAIL: gdb.cp/call-c.exp: print rf->func
new FAIL: gdb.cp/ena-dis-br-range.exp: run to marker
PASS -> FAIL: gdb.cp/exception.exp: run to main
PASS -> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_func
PASS -> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
PASS -> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
PASS -> FAIL: gdb.cp/extern-c.exp: verify counter at first breakpoint
PASS -> FAIL: gdb.cp/extern-c.exp: verify counter at second breakpoint
PASS -> FAIL: gdb.cp/formatted-ref.exp: print s.x == 13
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x &e
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x &i
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x &s
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x *
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x e
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x i
PASS -> FAIL: gdb.cp/formatted-ref.exp: print/x s
new FAIL: gdb.cp/infcall-nodebug.exp: l=c++: s=debug: can't run to main
new FAIL: gdb.cp/infcall-nodebug.exp: l=c++: s=nodebug: can't run to main
new FAIL: gdb.cp/infcall-nodebug.exp: l=c: s=debug: can't run to main
new FAIL: gdb.cp/infcall-nodebug.exp: l=c: s=nodebug: can't run to main
new FAIL: gdb.cp/local-static.exp: c++: couldn't run to breakpoint
new FAIL: gdb.cp/mb-inline.exp: can't run to main for multi_line_foo tests.
PASS -> FAIL: gdb.cp/mb-inline.exp: disabling location: run to breakpoint
PASS -> FAIL: gdb.cp/mb-inline.exp: run to breakpoint
PASS -> FAIL: gdb.cp/mb-inline.exp: run to breakpoint 2
new FAIL: gdb.cp/mb-templates.exp: can't run to main for multi_line_foo tests.
new FAIL: gdb.cp/mb-templates.exp: disable breakpoint: run to breakpoint
new FAIL: gdb.cp/mb-templates.exp: disabling location: run to breakpoint
PASS -> FAIL: gdb.cp/mb-templates.exp: initial condition: run to breakpoint
new FAIL: gdb.cp/mb-templates.exp: initial condition: run to breakpoint 2
new FAIL: gdb.cp/mb-templates.exp: instantiation: run to breakpoint
new FAIL: gdb.cp/mb-templates.exp: instantiation: run to breakpoint 2
new FAIL: gdb.cp/mb-templates.exp: separate condition: run to breakpoint
new FAIL: gdb.cp/mb-templates.exp: separate condition: run to breakpoint 2
PASS -> FAIL: gdb.cp/misc.exp: expression using block qualifier
PASS -> FAIL: gdb.cp/misc.exp: set a bool array elem
PASS -> FAIL: gdb.cp/misc.exp: set a bool var
PASS -> FAIL: gdb.cp/parse-lang.exp: breakpoint hit
new FAIL: gdb.cp/pr10687.exp: can't run to main
new FAIL: gdb.cp/pr9167.exp: can't run to main
PASS -> KFAIL: gdb.cp/re-set-overloaded.exp: breakpoint resolved
PASS -> FAIL: gdb.cp/ref-params.exp: print f1
PASS -> FAIL: gdb.cp/ref-params.exp: print mf1
PASS -> FAIL: gdb.cp/ref-params.exp: print mf2
PASS -> FAIL: gdb.cp/ref-params.exp: print value of Child& in f2
PASS -> FAIL: gdb.cp/ref-params.exp: print value of Parent& in f1
PASS -> FAIL: gdb.cp/ref-params.exp: print value of a Child in main
PASS -> FAIL: gdb.cp/ref-params.exp: print value of f1 on
PASS -> FAIL: gdb.cp/ref-params.exp: print value of f1 on Child in main
PASS -> FAIL: gdb.cp/ref-params.exp: print value of f1 on Child& in f2
PASS -> FAIL: gdb.cp/ref-params.exp: print value of f2 on
PASS -> FAIL: gdb.cp/ref-params.exp: print value of f2 on Child in main
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print f1
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print mf1
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print mf2
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print value of Child&& in f2
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print value of Parent&& in f1
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print value of f1 on
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print value of f1 on Child&& in f2
PASS -> FAIL: gdb.cp/rvalue-ref-params.exp: print value of f2 on
new FAIL: gdb.cp/scope-err.exp: can't run to main
PASS -> FAIL: gdb.cp/templates.exp: continue to line 770
PASS -> FAIL: gdb.cp/templates.exp: print fint
PASS -> FAIL: gdb.cp/templates.exp: print fvpchar
PASS -> FAIL: gdb.cp/templates.exp: ptype bazint
PASS -> FAIL: gdb.cp/templates.exp: ptype bazint2
PASS -> FAIL: gdb.cp/templates.exp: ptype bint
PASS -> FAIL: gdb.cp/templates.exp: ptype bint2
PASS -> FAIL: gdb.cp/templates.exp: ptype fchar
PASS -> FAIL: gdb.cp/templates.exp: ptype fint
KFAIL -> FAIL: gdb.cp/templates.exp: ptype fvpchar
PASS -> FAIL: gdb.cp/templates.exp: ptype quxint
PASS -> FAIL: gdb.cp/templates.exp: ptype siip
new FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++03: can't run to main
new FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++11: can't run to main
new FAIL: gdb.cp/wide_char_types.exp: with program: lang=c: can't run to main
PASS -> FAIL: gdb.dwarf2/dw2-lexical-block-bare.exp: p testvar
PASS -> FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: continue to func01
PASS -> FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: create varobj for ptr
PASS -> UNRESOLVED: gdb.dwarf2/dw2-opt-structptr.exp: mi: run to main
PASS -> FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: throw error, dereference ptr to access array member
PASS -> FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: throw error, dereference ptr to access integer member
PASS -> FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: throw error, dereference ptr to access pointer member
new FAIL: gdb.fortran/print-formatted.exp: runto MAIN__
new FAIL: gdb.fortran/whatis_type.exp: run to MAIN__
PASS -> FAIL: gdb.gdb/complaints.exp: run until breakpoint at captured_command_loop
PASS -> FAIL: gdb.gdb/python-interrupts.exp: run until breakpoint at captured_command_loop
PASS -> FAIL: gdb.gdb/python-selftest.exp: run until breakpoint at captured_command_loop
PASS -> FAIL: gdb.gdb/selftest.exp: run until breakpoint at captured_main
PASS -> FAIL: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere
PASS -> FAIL: gdb.linespec/break-ask.exp: continue to breakpoint: body_elsewhere other
PASS -> FAIL: gdb.linespec/break-ask.exp: expect breakpoint
PASS -> FAIL: gdb.linespec/break-ask.exp: expect breakpoint other
PASS -> FAIL: gdb.linespec/break-ask.exp: info source
PASS -> FAIL: gdb.linespec/break-ask.exp: info source other
new FAIL: gdb.linespec/keywords.exp: can't run to main
new FAIL: gdb.linespec/ls-errs.exp: lang=C++: can't run to main
new FAIL: gdb.linespec/ls-errs.exp: lang=C: can't run to main
new FAIL: gdb.linespec/thread.exp: can't run to main
PASS -> UNRESOLVED: gdb.mi/dw2-ref-missing-frame.exp: test func_loopfb_var
PASS -> UNRESOLVED: gdb.mi/dw2-ref-missing-frame.exp: test func_nofb_marker
PASS -> FAIL: gdb.mi/gdb2549.exp: register values d
PASS -> FAIL: gdb.mi/gdb2549.exp: register values f
PASS -> FAIL: gdb.mi/gdb2549.exp: register values o
PASS -> FAIL: gdb.mi/gdb2549.exp: register values t
PASS -> UNRESOLVED: gdb.mi/gdb2549.exp: register values x
PASS -> FAIL: gdb.mi/gdb669.exp: -thread-list-ids
PASS -> FAIL: gdb.mi/gdb669.exp: -thread_list_ids
PASS -> FAIL: gdb.mi/gdb669.exp: next, try 0
PASS -> FAIL: gdb.mi/gdb669.exp: next, try 1
PASS -> FAIL: gdb.mi/gdb669.exp: next, try 2
PASS -> FAIL: gdb.mi/gdb669.exp: next, try 3
PASS -> FAIL: gdb.mi/gdb701.exp: create fooPtr
PASS -> FAIL: gdb.mi/gdb701.exp: list children of fooPtr
PASS -> FAIL: gdb.mi/gdb701.exp: list children of fooPtr.x
PASS -> FAIL: gdb.mi/gdb701.exp: list children of fooPtr.y
PASS -> FAIL: gdb.mi/gdb701.exp: list children of fooPtr.z
PASS -> FAIL: gdb.mi/gdb701.exp: step over "foo = 0"
PASS -> UNRESOLVED: gdb.mi/gdb792.exp: create var for class A
PASS -> FAIL: gdb.mi/gdb792.exp: create var for class C which has baseclass A
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.private
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.protected
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.protected.b
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.protected.b.private
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.protected.b.public
PASS -> FAIL: gdb.mi/gdb792.exp: list children of A.public
PASS -> FAIL: gdb.mi/gdb792.exp: list children of class A
PASS -> FAIL: gdb.mi/gdb792.exp: list children of class C
PASS -> FAIL: gdb.mi/list-thread-groups-available.exp: list available thread groups
PASS -> FAIL: gdb.mi/list-thread-groups-available.exp: list available thread groups with filter
PASS -> FAIL: gdb.mi/mi-async-run.exp: expect interrupt
PASS -> UNRESOLVED: gdb.mi/mi-async-run.exp: send interrupt command
new FAIL: gdb.mi/mi-async.exp: CLI next: send
PASS -> FAIL: gdb.mi/mi-async.exp: CLI next: stop
new FAIL: gdb.mi/mi-async.exp: restart: send
PASS -> FAIL: gdb.mi/mi-async.exp: restart: stop
new FAIL: gdb.mi/mi-async.exp: start: send
PASS -> FAIL: gdb.mi/mi-async.exp: start: stop
new FAIL: gdb.mi/mi-break.exp: mi-mode=main: breakpoint commands: continue
PASS -> UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=main: breakpoint commands: insert breakpoint at basics.c:callee2, again
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=main: breakpoint commands: set commands
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=main: create varobj for function call
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=main: intermediate stop and continue, bp commands
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=main: intermediate stop and continue, mi running
PASS -> UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=main: run to breakpoint with ignore count
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=main: test hitting breakpoint with commands
new FAIL: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint commands: continue
PASS -> UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint commands: insert breakpoint at basics.c:callee2, again
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint commands: set commands
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=separate: create varobj for function call
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=separate: intermediate stop and continue, bp commands
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=separate: intermediate stop and continue, mi running
PASS -> UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=separate: run to breakpoint with ignore count
PASS -> FAIL: gdb.mi/mi-break.exp: mi-mode=separate: test hitting breakpoint with commands
PASS -> UNRESOLVED: gdb.mi/mi-breakpoint-changed.exp: test_insert_delete_modify: change command
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved:
PASS -> UNRESOLVED: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: breakpoint on pendfunc1 resolved
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: breakpoint on pendfunc3 pending again
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: breakpoint on pendfunc3 resolved
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: continue to marker 1
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: continue to marker 2
PASS -> FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: continue to pendfunc1 breakpoint
new FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: continuing execution to marker
new FAIL: gdb.mi/mi-breakpoint-changed.exp: test_pending_resolved: pending resolved: continuing to exit
PASS -> FAIL: gdb.mi/mi-breakpoint-location-ena-dis.exp: -break-disable 2.2
PASS -> UNRESOLVED: gdb.mi/mi-breakpoint-location-ena-dis.exp: break add
PASS -> UNRESOLVED: gdb.mi/mi-catch-load.exp: catch-load: auto-solib-add on
PASS -> FAIL: gdb.mi/mi-catch-load.exp: catch-load: catch load
new FAIL: gdb.mi/mi-catch-load.exp: catch-load: continue
PASS -> FAIL: gdb.mi/mi-catch-load.exp: catch-load: solib-event stop
PASS -> UNRESOLVED: gdb.mi/mi-catch-load.exp: catch-unload: auto-solib-add on
PASS -> FAIL: gdb.mi/mi-catch-load.exp: catch-unload: catch unload
new FAIL: gdb.mi/mi-catch-load.exp: catch-unload: continue
PASS -> FAIL: gdb.mi/mi-catch-load.exp: catch-unload: solib-event stop
PASS -> FAIL: gdb.mi/mi-cli.exp: -exec-continue to line $line_main_callme_2
new FAIL: gdb.mi/mi-cli.exp: -exec-continue to line $line_main_hello
new FAIL: gdb.mi/mi-cli.exp: -exec-step to line $line_callee4_next_step
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "down"
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "frame 2"
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "list" at basics.c:$line_main_callme_2
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "list" at basics.c:$line_main_return
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "set $pc=0x0"
PASS -> UNRESOLVED: gdb.mi/mi-cli.exp: -interpreter-exec console "set args foobar"
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "show args"
PASS -> FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "up"
PASS -> FAIL: gdb.mi/mi-cli.exp: -stack-select-frame 0
PASS -> FAIL: gdb.mi/mi-cli.exp: 34 next: CLI output
PASS -> FAIL: gdb.mi/mi-cli.exp: 34 next: run
PASS -> FAIL: gdb.mi/mi-cli.exp: 34 next: stop
PASS -> FAIL: gdb.mi/mi-cli.exp: CLI finish: check CLI output
PASS -> FAIL: gdb.mi/mi-cli.exp: CLI finish: check MI output
new FAIL: gdb.mi/mi-cli.exp: CLI finish: collect CLI output
new FAIL: gdb.mi/mi-cli.exp: CLI finish: send CLI command
PASS -> FAIL: gdb.mi/mi-cli.exp: breakpoint hit produces CLI output
PASS -> FAIL: gdb.mi/mi-cli.exp: check *stopped from CLI command
PASS -> FAIL: gdb.mi/mi-cli.exp: check *stopped from CLI command 2
new FAIL: gdb.mi/mi-cli.exp: collect CLI output for -exec-step
new FAIL: gdb.mi/mi-cli.exp: collect CLI output for breakpoint hit
PASS -> FAIL: gdb.mi/mi-cli.exp: continue to callee4
PASS -> FAIL: gdb.mi/mi-cli.exp: temporary breakpoint output hit in MI
PASS -> UNRESOLVED: gdb.mi/mi-condbreak-call-thr-state.exp: mt: insert conditional breakpoint
PASS -> FAIL: gdb.mi/mi-condbreak-call-thr-state.exp: mt: no spurious *running notifications
PASS -> UNRESOLVED: gdb.mi/mi-condbreak-call-thr-state.exp: st: insert conditional breakpoint
PASS -> FAIL: gdb.mi/mi-condbreak-call-thr-state.exp: st: no spurious *running notifications
PASS -> UNRESOLVED: gdb.mi/mi-console.exp: Testing console output
PASS -> FAIL: gdb.mi/mi-console.exp: finished step over hello
PASS -> UNRESOLVED: gdb.mi/mi-detach.exp: detach
PASS -> UNRESOLVED: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly only
PASS -> FAIL: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly with opcodes
PASS -> FAIL: gdb.mi/mi-disassemble.exp: data-disassemble function around pc assembly only
PASS -> FAIL: gdb.mi/mi-disassemble.exp: data-disassemble mix different args
PASS -> FAIL: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
PASS -> FAIL: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed with opcodes
PASS -> UNRESOLVED: gdb.mi/mi-dprintf-pending.exp: mi dprintf
PASS -> FAIL: gdb.mi/mi-dprintf-pending.exp: mi dprintf stop
PASS -> UNRESOLVED: gdb.mi/mi-dprintf.exp: call: mi 1st dprintf
PASS -> FAIL: gdb.mi/mi-dprintf.exp: call: mi 1st dprintf stop
PASS -> FAIL: gdb.mi/mi-dprintf.exp: call: mi 2nd dprintf
new FAIL: gdb.mi/mi-dprintf.exp: call: mi 2nd dprintf continue
PASS -> FAIL: gdb.mi/mi-dprintf.exp: call: mi 2nd dprintf stop
PASS -> UNRESOLVED: gdb.mi/mi-dprintf.exp: fprintf: mi 1st dprintf
PASS -> FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 1st dprintf stop
PASS -> FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 2nd dprintf
new FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 2nd dprintf continue
PASS -> FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 2nd dprintf stop
PASS -> UNRESOLVED: gdb.mi/mi-dprintf.exp: gdb: mi 1st dprintf
PASS -> FAIL: gdb.mi/mi-dprintf.exp: gdb: mi 1st dprintf stop
PASS -> FAIL: gdb.mi/mi-dprintf.exp: gdb: mi 2nd dprintf
new FAIL: gdb.mi/mi-dprintf.exp: gdb: mi 2nd dprintf continue
PASS -> FAIL: gdb.mi/mi-dprintf.exp: gdb: mi 2nd dprintf stop
PASS -> FAIL: gdb.mi/mi-dprintf.exp: mi insert breakpoint without format string
PASS -> UNRESOLVED: gdb.mi/mi-dprintf.exp: mi insert without location
PASS -> FAIL: gdb.mi/mi-eval.exp: eval &A
PASS -> FAIL: gdb.mi/mi-eval.exp: eval A
PASS -> FAIL: gdb.mi/mi-eval.exp: eval A + 3
PASS -> FAIL: gdb.mi/mi-eval.exp: eval A+3
PASS -> FAIL: gdb.mi/mi-eval.exp: next at callee4
PASS -> UNRESOLVED: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=main: force-fail=0: breakpoint hit reported on mi
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=main: force-fail=1: run failure detected
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=separate: force-fail=0: breakpoint hit reported on console
PASS -> UNRESOLVED: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=separate: force-fail=0: breakpoint hit reported on mi
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=separate: force-fail=1: run failure detected
PASS -> UNRESOLVED: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=main: force-fail=0: breakpoint hit reported on mi
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=main: force-fail=1: run failure detected
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=0: breakpoint hit reported on console
PASS -> UNRESOLVED: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=0: breakpoint hit reported on mi
PASS -> FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=1: run failure detected
PASS -> FAIL: gdb.mi/mi-exit-code.exp: first run: -list-thread-groups after exit shows exit-code
PASS -> UNRESOLVED: gdb.mi/mi-exit-code.exp: first run: -list-thread-groups during run shows no exit-code
new FAIL: gdb.mi/mi-exit-code.exp: first run: continuing to inferior exit
PASS -> FAIL: gdb.mi/mi-exit-code.exp: first run: exit normally
PASS -> FAIL: gdb.mi/mi-exit-code.exp: second run: -list-thread-groups after exit shows exit-code
PASS -> FAIL: gdb.mi/mi-exit-code.exp: second run: -list-thread-groups during run shows no exit-code
new FAIL: gdb.mi/mi-exit-code.exp: second run: continuing to inferior exit
PASS -> FAIL: gdb.mi/mi-exit-code.exp: second run: exit with code
PASS -> UNRESOLVED: gdb.mi/mi-exit-code.exp: second run: write exit code
PASS -> FAIL: gdb.mi/mi-fill-memory.exp: memory successfully filled
PASS -> FAIL: gdb.mi/mi-fill-memory.exp: memory successfully written
PASS -> FAIL: gdb.mi/mi-fill-memory.exp: next at main
PASS -> FAIL: gdb.mi/mi-fill-memory.exp: pattern correctly read from memory
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: breakpoint hit in callee3
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for $pc in frame 0
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for $pc in frame 1
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for $pc in frame 2
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for $pc in frame 3
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for 'global_zero + $pc' in frame 0
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for 'global_zero + $pc' in frame 1
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for 'global_zero + $pc' in frame 2
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: create varobj for 'global_zero + $pc' in frame 3
PASS -> UNRESOLVED: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: insert breakpoint at basics.c:callee3
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: next instruction in callee3
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var1 has changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var2 has changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var3 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var4 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var5 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var6 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var7 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var8 has not changed
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_floating_varobj_test: -var-update for frame 1
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_floating_varobj_test: breakpoint hit in callee1
PASS -> UNRESOLVED: gdb.mi/mi-frame-regs.exp: do_floating_varobj_test: create varobj for pc in frame 0
PASS -> FAIL: gdb.mi/mi-frame-regs.exp: do_floating_varobj_test: insert breakpoint at basics.c:callee1
PASS -> FAIL: gdb.mi/mi-info-os.exp: -info-os
new FAIL: gdb.mi/mi-inheritance-syntax-error.exp: -data-evaluate-expression 1
PASS -> FAIL: gdb.mi/mi-inheritance-syntax-error.exp: -var-info-path-expression var1.A
PASS -> UNRESOLVED: gdb.mi/mi-inheritance-syntax-error.exp: create var for THIS
PASS -> FAIL: gdb.mi/mi-inheritance-syntax-error.exp: list children of THIS
PASS -> FAIL: gdb.mi/mi-linespec-err-cp.exp: breakpoint hit
PASS -> UNRESOLVED: gdb.mi/mi-linespec-err-cp.exp: set breakpoint
PASS -> FAIL: gdb.mi/mi-memory-changed.exp: change C thru. -data-write-memory-bytes
PASS -> FAIL: gdb.mi/mi-memory-changed.exp: change C thru. varobj
PASS -> UNRESOLVED: gdb.mi/mi-memory-changed.exp: continue to callee4
PASS -> FAIL: gdb.mi/mi-memory-changed.exp: create objvar for C
PASS -> FAIL: gdb.mi/mi-memory-changed.exp: set var C = 4
PASS -> UNRESOLVED: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1
PASS -> FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc1 a second time
PASS -> FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on pendfunc2 with x==4
PASS -> FAIL: gdb.mi/mi-pending.exp: Run till MI pending breakpoint on thread_func
new FAIL: gdb.mi/mi-pending.exp: continuing execution to conditional bp
new FAIL: gdb.mi/mi-pending.exp: continuing execution to skip conditional bp
new FAIL: gdb.mi/mi-pending.exp: continuing execution to thread condition
new FAIL: gdb.mi/mi-pending.exp: continuing execution to thread creation
PASS -> FAIL: gdb.mi/mi-pending.exp: run till MI pending breakpoint on pendfunc3 on thread 2
PASS -> UNRESOLVED: gdb.mi/mi-pthreads.exp: -thread_list_ids
PASS -> FAIL: gdb.mi/mi-pthreads.exp: check_mi_thread_command_set: -thread-select
PASS -> FAIL: gdb.mi/mi-pthreads.exp: finding threads in MI output
PASS -> FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte
PASS -> FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
PASS -> FAIL: gdb.mi/mi-read-memory.exp: ascii and data
PASS -> FAIL: gdb.mi/mi-read-memory.exp: decimal
PASS -> FAIL: gdb.mi/mi-read-memory.exp: expression in quotes
PASS -> FAIL: gdb.mi/mi-read-memory.exp: next at main
PASS -> FAIL: gdb.mi/mi-read-memory.exp: octal
PASS -> UNRESOLVED: gdb.mi/mi-record-changed.exp: record
PASS -> FAIL: gdb.mi/mi-record-changed.exp: record end
PASS -> FAIL: gdb.mi/mi-record-changed.exp: target record
PASS -> UNRESOLVED: gdb.mi/mi-return.exp: delete all breakpoints
PASS -> FAIL: gdb.mi/mi-return.exp: return from callee4 now
PASS -> UNRESOLVED: gdb.mi/mi-reverse.exp: Turn on process record
PASS -> FAIL: gdb.mi/mi-simplerun.exp: continue to end
PASS -> FAIL: gdb.mi/mi-simplerun.exp: exec-finish
PASS -> FAIL: gdb.mi/mi-simplerun.exp: next at main
PASS -> UNRESOLVED: gdb.mi/mi-simplerun.exp: run to main
PASS -> FAIL: gdb.mi/mi-simplerun.exp: step at main
PASS -> FAIL: gdb.mi/mi-simplerun.exp: step to callee4
PASS -> FAIL: gdb.mi/mi-solib.exp: test_file_list_shared_libraries: breakpoint at main
PASS -> FAIL: gdb.mi/mi-solib.exp: test_file_list_shared_libraries: get the list of shared libraries
PASS -> FAIL: gdb.mi/mi-solib.exp: test_file_list_shared_libraries: mi runto main
PASS -> UNRESOLVED: gdb.mi/mi-solib.exp: test_stop_on_solib_events: CLI prints solib event
PASS -> FAIL: gdb.mi/mi-solib.exp: test_stop_on_solib_events: check for solib event
PASS -> FAIL: gdb.mi/mi-solib.exp: test_stop_on_solib_events: unset stop-on-solib-events
PASS -> FAIL: gdb.mi/mi-stack.exp: next's in callee4
PASS -> UNRESOLVED: gdb.mi/mi-stack.exp: run to 27
PASS -> FAIL: gdb.mi/mi-stack.exp: selected frame listing
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 0
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 0 1 1
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 0 1 3
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 1
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 1
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 3
PASS -> FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 300
PASS -> FAIL: gdb.mi/mi-stack.exp: stack frame listing
PASS -> FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 1
PASS -> FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 3
PASS -> FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 300
PASS -> FAIL: gdb.mi/mi-stack.exp: stack info-depth
PASS -> FAIL: gdb.mi/mi-stack.exp: stack info-depth 3
PASS -> FAIL: gdb.mi/mi-stack.exp: stack info-depth 99
PASS -> FAIL: gdb.mi/mi-stack.exp: stack locals for same frame
PASS -> FAIL: gdb.mi/mi-stack.exp: stack locals listing for new frame
PASS -> FAIL: gdb.mi/mi-stack.exp: stack locals listing of names
PASS -> FAIL: gdb.mi/mi-stack.exp: stack locals listing of names and values
PASS -> FAIL: gdb.mi/mi-stack.exp: stack locals listing, simple types: names and values, complex type: names and types
PASS -> FAIL: gdb.mi/mi-stack.exp: stack select frame 1
new FAIL: gdb.mi/mi-stack.exp: wait for stop
PASS -> UNRESOLVED: gdb.mi/mi-start.exp: run to main
PASS -> FAIL: gdb.mi/mi-stepi.exp: next-instruction at main
PASS -> FAIL: gdb.mi/mi-stepi.exp: next-instruction at main 2
PASS -> FAIL: gdb.mi/mi-stepi.exp: step-instruction at main
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function stopped at bp, showing gdb dummy frame
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: call inferior's function with a breakpoint set in it
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: data evaluate expression
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: finished exec continue
PASS -> UNRESOLVED: gdb.mi/mi-syn-frame.exp: insert breakpoint foo
PASS -> FAIL: gdb.mi/mi-syn-frame.exp: list stack frames
new FAIL: gdb.mi/mi-syn-frame.exp: testing exec continue
PASS -> UNRESOLVED: gdb.mi/mi-threads-interrupt.exp: check thread states
new FAIL: gdb.mi/mi-threads-interrupt.exp: continue
PASS -> FAIL: gdb.mi/mi-threads-interrupt.exp: interrupt reported
PASS -> UNRESOLVED: gdb.mi/mi-until.exp: run to main
PASS -> FAIL: gdb.mi/mi-until.exp: until after current function
KFAIL -> FAIL: gdb.mi/mi-until.exp: until after while loop
PASS -> FAIL: gdb.mi/mi-until.exp: until line number
PASS -> FAIL: gdb.mi/mi-until.exp: until line number:file
PASS -> UNRESOLVED: gdb.mi/mi-var-block.exp: create local variable cb
PASS -> FAIL: gdb.mi/mi-var-block.exp: create local variable foo
PASS -> FAIL: gdb.mi/mi-var-block.exp: create local variable foo2
PASS -> FAIL: gdb.mi/mi-var-block.exp: create local variable inner_foo
PASS -> FAIL: gdb.mi/mi-var-block.exp: delete var cb
PASS -> FAIL: gdb.mi/mi-var-block.exp: delete var foo 2
PASS -> FAIL: gdb.mi/mi-var-block.exp: delete var foo2
PASS -> FAIL: gdb.mi/mi-var-block.exp: delete var inner_foo
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 1
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 2
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 3
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 4
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 5
PASS -> FAIL: gdb.mi/mi-var-block.exp: step at do_block_test 6
PASS -> FAIL: gdb.mi/mi-var-block.exp: try to create local variable foo
PASS -> FAIL: gdb.mi/mi-var-block.exp: update all vars: cb foo changed
PASS -> FAIL: gdb.mi/mi-var-block.exp: update cb
PASS -> FAIL: gdb.mi/mi-var-block.exp: update foo: did not change
PASS -> UNRESOLVED: gdb.mi/mi-var-child-f.exp: create local variable array
PASS -> FAIL: gdb.mi/mi-var-child-f.exp: get children of array
PASS -> FAIL: gdb.mi/mi-var-child-f.exp: get grandchildren of array
new FAIL: gdb.mi/mi-var-child.exp: child_deletion: go to line 339
new FAIL: gdb.mi/mi-var-child.exp: child_deletion: step over 339
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable psnp->ptrs
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable struct_declarations
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable weird
PASS -> FAIL: gdb.mi/mi-var-child.exp: create local variable weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: delete var struct_declarations
PASS -> FAIL: gdb.mi/mi-var-child.exp: delete var weird
PASS -> FAIL: gdb.mi/mi-var-child.exp: delete var weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.character
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.func_ptr_struct
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.integer
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.3
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.4
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.5
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.6
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.7
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.8
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_array.9
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.long_int
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.g
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.h
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.i
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.f
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.a
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.b
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.c
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations.u1.d
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get children of weird.long_array
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.character
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.func_ptr_struct
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.integer
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.3
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.4
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.5
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.6
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.7
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.8
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_array.9
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.long_int
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.g
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.h
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.i
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.f
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.a
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.b
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.c
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of struct_declarations.u1.d
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: get number of children of weird.long_array
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations.long_array editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations.long_array.0 editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations.u1.a editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations.u1.b editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is struct_declarations.u1.c editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird->int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird.s2 editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: is weird.u1 editable
PASS -> FAIL: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types
PASS -> FAIL: gdb.mi/mi-var-child.exp: listing of names and values of children
PASS -> UNRESOLVED: gdb.mi/mi-var-child.exp: run to 229
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 1
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 4
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 5
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 6
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 7
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_123 + 8
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_a0_0
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_nothing
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 1
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 2
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 3
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_nothing + 4
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 1
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 2
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 3
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 4
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 5
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 6
PASS -> FAIL: gdb.mi/mi-var-child.exp: step $line_dct_snp0 + 7
PASS -> FAIL: gdb.mi/mi-var-child.exp: step to line $line_dct_123
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars int_ptr_ptr and children changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars psnp->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars psnp->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars psnp->next->next->long_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr_ptr changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.func_ptr_struct changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.integer
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.0 changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.1 changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.10 changed, don't print values.
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.11 changed, print values.
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.2 changed
PASS -> FAIL: gdb.mi/mi-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
new FAIL: gdb.mi/mi-var-child.exp: wait for stop
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign array to pointer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to func
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to ldouble
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to linteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to linteger again, same value
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to llong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lpfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lpinteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lplong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lsimple->integer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lsimple.character
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: assign to lsimple.integer
new FAIL: gdb.mi/mi-var-cmd.exp: bitfield: go to line 526
new FAIL: gdb.mi/mi-var-cmd.exp: bitfield: step over 526
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: check F inside callee
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: continue to where i is initialized
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create i
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create l
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable func
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable ldouble
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable linteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable llong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lpcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lpdouble
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lpfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lpinteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lplong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lpsimple
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create local variable lsimple
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create lsimple->integer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create lsimple.character
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create lsimple.integer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: create selected_a
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete selected_a
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lsimple->integer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var func
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var i
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var l
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var ldouble
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var linteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var llong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lpcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lpdouble
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lpfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lpinteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lplong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lpsimple
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lsimple
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lsimple.character
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: delete var lsimple.integer
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval lcharacter
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval lfloat
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval linteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval llong
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval lpinteger
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: eval lplong
new FAIL: gdb.mi/mi-var-cmd.exp: floating: go to line 469
new FAIL: gdb.mi/mi-var-cmd.exp: floating: step over 469
new FAIL: gdb.mi/mi-var-cmd.exp: frozen: go to line 367
new FAIL: gdb.mi/mi-var-cmd.exp: frozen: step over 367
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: check initial value
PASS -> UNRESOLVED: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: create varobj
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now, not changed
PASS -> UNRESOLVED: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now, not changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: kill program before endvar
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: mi runto do_locals_tests
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: mi runto do_special_tests
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: mi runto incr_a
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: mi runto subroutine1
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: next out of subroutine1
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: return from incr_a to do_special_tests
PASS -> UNRESOLVED: gdb.mi/mi-var-cmd.exp: run to 148
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: step a line in incr_a
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: step at do_locals_test
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: step at do_locals_tests
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: step at subroutine1
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update F inside callee
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: all now out of scope
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: func and lpsimple changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: i changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: lcharacter changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: linteger changed after assign
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: llong changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: lpcharacter changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: lpinteger changed after assign
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: lsimple and others changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update all vars: many changed
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update selected_a in do_special_tests
PASS -> FAIL: gdb.mi/mi-var-cmd.exp: update selected_a in incr_a
new FAIL: gdb.mi/mi-var-cmd.exp: wait for stop
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: create root varobj for a
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.0_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: VT: list children of a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
new FAIL: gdb.mi/mi-var-cp.exp: base_in_reference: go to line 45
new FAIL: gdb.mi/mi-var-cp.exp: base_in_reference: step over 45
PASS -> FAIL: gdb.mi/mi-var-cp.exp: continue to anonymous_structs breakpoint
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.0_anonymous.public.b
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.1_anonymous.public.c
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.1_anonymous.public.e
PASS -> FAIL: gdb.mi/mi-var-cp.exp: expression for a1.public.2_anonymous.public.d
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.0_anonymous.public.b
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.1_anonymous.public.c
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.g
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.1_anonymous.public.h
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.1_anonymous.public.f
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.i
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.2_anonymous.public.j
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.1_anonymous.public.e
PASS -> FAIL: gdb.mi/mi-var-cp.exp: path expression for a1.public.2_anonymous.public.d
new FAIL: gdb.mi/mi-var-cp.exp: path_expression: go to line 144
new FAIL: gdb.mi/mi-var-cp.exp: path_expression: step over 144
new FAIL: gdb.mi/mi-var-cp.exp: reference_to_pointer: go to line 81
new FAIL: gdb.mi/mi-var-cp.exp: reference_to_pointer: step over 81
new FAIL: gdb.mi/mi-var-cp.exp: reference_to_struct: go to line 104
new FAIL: gdb.mi/mi-var-cp.exp: reference_to_struct: step over 104
new FAIL: gdb.mi/mi-var-cp.exp: reference_update: go to line 19
new FAIL: gdb.mi/mi-var-cp.exp: reference_update: step over 19
new UNRESOLVED: gdb.mi/mi-var-cp.exp: wait for stop
PASS -> UNRESOLVED: gdb.mi/mi-var-create-rtti.exp: -var-create sp1 * $sp
PASS -> FAIL: gdb.mi/mi-var-create-rtti.exp: -var-create sp2 @ $sp
PASS -> FAIL: gdb.mi/mi-var-display.exp: assing to variable bar
PASS -> FAIL: gdb.mi/mi-var-display.exp: assing to variable foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: continue to do_special_tests
PASS -> FAIL: gdb.mi/mi-var-display.exp: create duplicate local variable anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable a1
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable anons
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable anonu
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable e
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable s
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable u
PASS -> FAIL: gdb.mi/mi-var-display.exp: create local variable weird
PASS -> FAIL: gdb.mi/mi-var-display.exp: delete var foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: delete var weird
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable -f decimal foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable -f nat foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable -f octal foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable anons
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable anonu
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable bar
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable bar with new format
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable bar with new value
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable e
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable foo in binary
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable foo in decimal
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable foo in hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable foo in natural
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable foo in octal
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable s
PASS -> FAIL: gdb.mi/mi-var-display.exp: eval variable u
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children local variable weird
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of anons
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of anonu
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of e
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of s
PASS -> FAIL: gdb.mi/mi-var-display.exp: get children of u
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of anons
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of anonu
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of e
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of s
PASS -> FAIL: gdb.mi/mi-var-display.exp: get number of children of u
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable anone
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable anons
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable anonu
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable bar
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable e
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable foo
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable s
PASS -> FAIL: gdb.mi/mi-var-display.exp: info type variable u
PASS -> FAIL: gdb.mi/mi-var-display.exp: is anone editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: is anons editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: is anonu editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: is e editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: is s editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: is u editable
PASS -> FAIL: gdb.mi/mi-var-display.exp: mi runto incr_a
PASS -> FAIL: gdb.mi/mi-var-display.exp: print FP register
PASS -> UNRESOLVED: gdb.mi/mi-var-display.exp: run to main
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable bar in decimal
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable bar in hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable bar in zero-padded hexadecimal
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable foo decimal
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable foo in octal
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.char_ptr
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.character
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr in hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr in zero-padded hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in natural
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in zero-padded hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_struct
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.integer
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.long_array
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.long_int
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.s2
PASS -> FAIL: gdb.mi/mi-var-display.exp: set format variable weird.u1
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo after eval in binary
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo after eval in decimal
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo after eval in hex
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo after eval in natural
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo after eval in octal
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo in natural
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable foo in octal
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr
PASS -> FAIL: gdb.mi/mi-var-display.exp: show format variable weird.func_ptr_ptr
PASS -> FAIL: gdb.mi/mi-var-invalidate.exp: create floating variable
PASS -> UNRESOLVED: gdb.mi/mi-var-invalidate.exp: create local variable linteger
PASS -> FAIL: gdb.mi/mi-var-invalidate.exp: linteger not anymore in scope due to binary changes
PASS -> FAIL: gdb.mi/mi-var-invalidate.exp: linteger not valid anymore due to binary changes
PASS -> FAIL: gdb.mi/mi-var-invalidate.exp: no type for invalid variable linteger
PASS -> UNRESOLVED: gdb.mi/mi-var-invalidate.exp: set format variable float_simple
PASS -> FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: create variable object
PASS -> FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: list children #1
PASS -> FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: list children #2
PASS -> UNRESOLVED: gdb.mi/mi-var-list-children-invalid-grandchild.exp: run to 41
PASS -> FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: update variable object
new FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: wait for stop
new FAIL: gdb.mi/mi-var-rtti.exp: skip_type_update_when_not_use_rtti: go to line 306
new FAIL: gdb.mi/mi-var-rtti.exp: skip_type_update_when_not_use_rtti: step over 306
new FAIL: gdb.mi/mi-var-rtti.exp: type_update_when_use_rtti: go to line 250
new FAIL: gdb.mi/mi-var-rtti.exp: type_update_when_use_rtti: step over 250
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ptr: go to line 36
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ptr: step over 36
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ptr_child: go to line 93
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ptr_child: step over 93
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ref: go to line 63
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ref: step over 63
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ref_child: go to line 148
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_for_ref_child: step over 148
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_with_multiple_inheritence: go to line 201
new FAIL: gdb.mi/mi-var-rtti.exp: use_rtti_with_multiple_inheritence: step over 201
new UNRESOLVED: gdb.mi/mi-var-rtti.exp: wait for stop
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: create local variable vla
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: eval variable vla
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: evaluate complete vla
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: evaluate vla[0]
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: evaluate vla[2]
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: evaluate vla[4]
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: get children of vla
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: info type variable vla
PASS -> UNRESOLVED: gdb.mi/mi-vla-c99.exp: run to breakpoint at line 28
PASS -> FAIL: gdb.mi/mi-vla-c99.exp: show format variable vla
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: create local variable pvla2_associated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: create local variable vla1_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: create local variable vla1_not_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: eval variable pvla2_associated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: eval variable vla1_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: eval variable vla1_not_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate allocated vla
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate associated vla
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate filled vla
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate filled vla, contents modified
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate filled vla, filled all 1s
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate not allocated vla, after deallocation
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate not allocated vla, before allocation
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate not associated vla
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: evaluate vla pointer set to null
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: get children of vla1_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: get children of vla1_not_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: info type variable pvla2_associated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: info type variable vla1_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: info type variable vla1_not_allocated
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 23
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 24
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 27
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 30
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 31
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 36
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 37
PASS -> UNRESOLVED: gdb.mi/mi-vla-fortran.exp: run to breakpoint at line 42
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: show format variable pvla2_associated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: show format variable vla1_allocated
PASS -> FAIL: gdb.mi/mi-vla-fortran.exp: show format variable vla1_not_allocated
PASS -> UNRESOLVED: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=hw: break-watch operation
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=hw: list of watchpoints
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=hw: watchpoint trigger
PASS -> UNRESOLVED: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=sw: break-watch operation
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=sw: list of watchpoints
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=sw: watchpoint trigger
PASS -> UNRESOLVED: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=hw: break-watch operation
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=hw: list of watchpoints
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=hw: watchpoint trigger
PASS -> UNRESOLVED: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=sw: break-watch operation
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=sw: list of watchpoints
PASS -> FAIL: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=sw: watchpoint trigger
PASS -> FAIL: gdb.mi/mi2-var-child.exp: Run till MI stops in do_nested_struct_union_tests
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: create root varobj for ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: create root varobj for ss_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: create root varobj for v
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: create root varobj for var
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: create root varobj for var2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ptr1.*ptr.1_anonymous.c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of ss_ptr1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of v1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of v1.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of v1.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var21
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var21.ab
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var21.ab.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: VT: list children of var21.ab.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: continue to do_anonymous_type_tests breakpoint
new FAIL: gdb.mi/mi2-var-child.exp: continuing execution to enter do_nested_struct_union_tests
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable psnp->ptrs
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable struct_declarations
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable weird
PASS -> FAIL: gdb.mi/mi2-var-child.exp: create local variable weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: delete var struct_declarations
PASS -> FAIL: gdb.mi/mi2-var-child.exp: delete var weird
PASS -> FAIL: gdb.mi/mi2-var-child.exp: delete var weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.g
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.e
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.2_anonymous.f
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.1_anonymous.c.*c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ptr1.*ptr.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.3_anonymous.a2.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.3_anonymous.b2.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.a1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.b1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u1.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u1.b.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u2.a3.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for ss_ptr1.u2.b3.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1.1_anonymous.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1.2_anonymous.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for v1.x
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.3_anonymous.a2.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.3_anonymous.b2.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.a1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.b1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u1.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u1.b.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u2.a3.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var1.u2.b3.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21.ab
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21.ab.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21.ab.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21.ab.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: expression for var21.ab.b.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of psnp->ptrs.0.next.next.ptrs
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.func_ptr_struct
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.8
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_array.9
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.long_int
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.g
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.i
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.f
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.e
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.foo
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s1.func
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.array_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.s2.u2.u1s2.func
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of struct_declarations.u1.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get children of weird.long_array
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.func_ptr_struct
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.8
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_array.9
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.long_int
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.g
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.i
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.f
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.e
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.foo
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s1.func
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.array_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.s2.u2.u1s2.func
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of struct_declarations.u1.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird.int_ptr_ptr.*int_ptr_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: get number of children of weird.long_array
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations.long_array.0 editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.a editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.b editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is struct_declarations.u1.c editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird->int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird.s2 editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: is weird.u1 editable
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.g
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.h.*h.**h
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.0
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.8
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.array_of_10.9
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.char_ptr.*char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.signed_character
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.3_anonymous.simple.*simple.**simple.unsigned_integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.d
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.e
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.2_anonymous.f
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.1_anonymous.c.*c
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ptr1.*ptr.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.3_anonymous.a2.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.3_anonymous.b2.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.a1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.b1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u1.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u1.b.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u2.a3.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for ss_ptr1.u2.b3.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1.1_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1.1_anonymous.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1.2_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1.2_anonymous.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for v1.x
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.3_anonymous
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.3_anonymous.a2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.3_anonymous.a2.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.3_anonymous.b2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.3_anonymous.b2.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.a1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.a1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.b1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.b1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u1.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u1.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u1.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u1.b.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u2.a3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u2.a3.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u2.b3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var1.u2.b3.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21.ab
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21.ab.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21.ab.a.a
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21.ab.b
PASS -> FAIL: gdb.mi/mi2-var-child.exp: path expression for var21.ab.b.b
PASS -> UNRESOLVED: gdb.mi/mi2-var-child.exp: run to 251
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_123 + 8
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_nothing
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_nothing + 1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 1
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 2
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 3
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 4
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 5
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 6
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 7
PASS -> FAIL: gdb.mi/mi2-var-child.exp: step to line $line_dct_123
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars int_ptr_ptr and children changed
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->long_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.char_ptr
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.func_ptr changed
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.integer
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.0 changed
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.1 changed
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.2 changed
PASS -> FAIL: gdb.mi/mi2-var-child.exp: update all vars struct_declarations.long_array.3-9 changed
new FAIL: gdb.mi/mi2-var-child.exp: wait for stop
PASS -> UNRESOLVED: gdb.mi/new-ui-mi-sync.exp: sync-command=continue: breakpoint at main
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": breakpoint hit
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": breakpoint hit 2
PASS -> UNRESOLVED: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": set breakpoint
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": set x
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": watchpoint hit
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": watchpoint hit 2
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": breakpoint hit
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": breakpoint hit 2
PASS -> UNRESOLVED: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": set breakpoint
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": set x
PASS -> FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": watchpoint hit
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
new UNRESOLVED: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: can't run to main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
new UNRESOLVED: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: can't run to main
new FAIL: gdb.multi/dummy-frame-restore.exp: can't run to f1
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=1: selected_thread=1: follow_exec_mode=new: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=1: selected_thread=1: follow_exec_mode=same: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=1: selected_thread=2: follow_exec_mode=new: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=1: selected_thread=2: follow_exec_mode=same: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=2: selected_thread=1: follow_exec_mode=new: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=2: selected_thread=1: follow_exec_mode=same: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=2: selected_thread=2: follow_exec_mode=new: couldn't run to all_started
new FAIL: gdb.multi/multi-arch-exec.exp: first_arch=2: selected_thread=2: follow_exec_mode=same: couldn't run to all_started
PASS -> FAIL: gdb.multi/multi-arch.exp: inf1 event with inf2 selected: continue to hello_loop
PASS -> FAIL: gdb.multi/multi-arch.exp: inf1 event with inf2 selected: inferior 2
PASS -> FAIL: gdb.multi/multi-arch.exp: inf2 event with inf1 selected: continue to hangout_loop
PASS -> FAIL: gdb.multi/multi-arch.exp: inf2 event with inf1 selected: inferior 1
new FAIL: gdb.multi/multi-arch.exp: starting inferior 1
new FAIL: gdb.multi/multi-arch.exp: starting inferior 2
PASS -> FAIL: gdb.multi/multi-attach.exp: attach to program 1
PASS -> FAIL: gdb.multi/multi-attach.exp: attach to program 2
PASS -> FAIL: gdb.multi/multi-attach.exp: backtrace 1
PASS -> FAIL: gdb.multi/multi-attach.exp: backtrace 2
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: attach
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: continue
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: attach
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: attach
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: attach
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=run: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=run: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=tty: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=tty: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=tty: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: attach
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=run: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=run: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=run: stop with control-c
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=tty: continue
new FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=tty: run to main
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=tty: stop with control-c
new FAIL: gdb.multi/remove-inferiors.exp: couldn't run to main.
new FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=detach: can't run to child_function
new FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=exit: can't run to child_function
new FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=kill: can't run to child_function
new FAIL: gdb.opt/clobbered-registers-O2.exp: run to start_sequence
new UNRESOLVED: gdb.opt/inline-bt.exp: skipping inline frame tests
new UNRESOLVED: gdb.opt/inline-cmds.exp: skipping inline frame tests
new UNRESOLVED: gdb.opt/inline-locals.exp: inline-bt.exp
new FAIL: gdb.python/lib-types.exp: can't run to main
new FAIL: gdb.python/py-as-string.exp: couldn't run to main.
new FAIL: gdb.python/py-bad-printers.exp: can't run to main
new FAIL: gdb.python/py-block.exp: can't run to main
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_basic: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_cond_and_cmds: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_deletion: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_eval_funcs: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_explicit_loc: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_internal: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_invisible: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_qualified: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_temporary: cannot run to main.
new FAIL: gdb.python/py-breakpoint.exp: test_watchpoints: cannot run to main.
new FAIL: gdb.python/py-cmd.exp: cannot run to main.
PASS -> FAIL: gdb.python/py-events.exp: continue
PASS -> FAIL: gdb.python/py-events.exp: get address of do_nothing
PASS -> FAIL: gdb.python/py-events.exp: get current thread
PASS -> FAIL: gdb.python/py-events.exp: new objfile notification
PASS -> FAIL: gdb.python/py-events.exp: step 3
new FAIL: gdb.python/py-evsignal.exp: signal Thread 3
PASS -> FAIL: gdb.python/py-evthreads.exp: continue thread 1
PASS -> FAIL: gdb.python/py-evthreads.exp: reached breakpoint 2
PASS -> FAIL: gdb.python/py-evthreads.exp: reached breakpoint 3
PASS -> FAIL: gdb.python/py-evthreads.exp: run to breakpoint 1
PASS -> FAIL: gdb.python/py-evthreads.exp: thread 2
PASS -> FAIL: gdb.python/py-evthreads.exp: thread 3
PASS -> FAIL: gdb.python/py-evthreads.exp: thread 3 was signaled
new FAIL: gdb.python/py-finish-breakpoint.exp: cannot run to main.
new FAIL: gdb.python/py-finish-breakpoint2.exp: cannot run to main.
new FAIL: gdb.python/py-frame-inline.exp: can't run to function f
new FAIL: gdb.python/py-frame.exp: can't run to main
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: filtered stack list 0 3
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: filtered stack list 22 24
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: filtered stack listing
PASS -> UNRESOLVED: gdb.python/py-framefilter-mi.exp: load python file
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: run to 46
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments --no-frame-filters 0
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments --no-frame-filters 1
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments --no-frame-filters 2
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments --no-frame-filters 2 22 27
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 0
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 0 0 3
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 0 22 27
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 1
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 1 0 3
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 1 22 27
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 2
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 2 0 3
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-arguments 2 22 27
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --all-values
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --all-values frame filters enabled
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters --all-values
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters --no-values
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters --simple-values
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters 0
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters 1
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals --no-frame-filters 2
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals 0
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals 1
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-locals 2
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-variables --no-frame-filters 0
PASS -> FAIL: gdb.python/py-framefilter-mi.exp: stack-list-variables 0
new FAIL: gdb.python/py-framefilter-mi.exp: wait for stop
new FAIL: gdb.python/py-inferior.exp: can't run to main
new FAIL: gdb.python/py-infthread.exp: can't run to main
PASS -> FAIL: gdb.python/py-mi-events.exp: continue
PASS -> FAIL: gdb.python/py-mi-events.exp: python continue handler ran
PASS -> FAIL: gdb.python/py-mi-events.exp: python stop handler ran
PASS -> UNRESOLVED: gdb.python/py-mi-events.exp: register events
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-create c1 * &c1
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-info-path-expression c1
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-list-children c1
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-list-children c1.car
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-list-children c1.car.atom
PASS -> FAIL: gdb.python/py-mi-var-info-path-expression.exp: -var-list-children c1.cdr
PASS -> UNRESOLVED: gdb.python/py-mi-var-info-path-expression.exp: run to 61
new FAIL: gdb.python/py-mi-var-info-path-expression.exp: wait for stop
PASS -> FAIL: gdb.python/py-mi.exp: Install visualizer on a cplus_fake_child
PASS -> FAIL: gdb.python/py-mi.exp: check tsrvw expression value
PASS -> FAIL: gdb.python/py-mi.exp: check tsrvw varobj value
PASS -> FAIL: gdb.python/py-mi.exp: choose array visualizer for c
PASS -> FAIL: gdb.python/py-mi.exp: choose default visualizer
PASS -> FAIL: gdb.python/py-mi.exp: choose visualizer using expression
PASS -> FAIL: gdb.python/py-mi.exp: clear visualizer
PASS -> FAIL: gdb.python/py-mi.exp: create container varobj
PASS -> FAIL: gdb.python/py-mi.exp: create container varobj, no pretty-printing
PASS -> FAIL: gdb.python/py-mi.exp: create estring varobj
PASS -> FAIL: gdb.python/py-mi.exp: create fake varobj
PASS -> FAIL: gdb.python/py-mi.exp: create me varobj
PASS -> FAIL: gdb.python/py-mi.exp: create nscont varobj, no pretty-printing
PASS -> FAIL: gdb.python/py-mi.exp: create nstype varobj
PASS -> FAIL: gdb.python/py-mi.exp: create nstype2 varobj
PASS -> FAIL: gdb.python/py-mi.exp: create outer varobj
PASS -> FAIL: gdb.python/py-mi.exp: create second container varobj
PASS -> FAIL: gdb.python/py-mi.exp: create tsrvw varobj
PASS -> FAIL: gdb.python/py-mi.exp: create varobj for c
PASS -> FAIL: gdb.python/py-mi.exp: delete varobj
PASS -> FAIL: gdb.python/py-mi.exp: evaluate me varobj
PASS -> FAIL: gdb.python/py-mi.exp: examine container children=0
PASS -> FAIL: gdb.python/py-mi.exp: examine container children=0, no pretty-printing
PASS -> FAIL: gdb.python/py-mi.exp: examine nscont children=0, no pretty-printing
PASS -> FAIL: gdb.python/py-mi.exp: list children after listing selected range
PASS -> FAIL: gdb.python/py-mi.exp: list children after setting exception flag
PASS -> FAIL: gdb.python/py-mi.exp: list children after setting update range
PASS -> FAIL: gdb.python/py-mi.exp: list children fake.private
PASS -> FAIL: gdb.python/py-mi.exp: list children of c
PASS -> FAIL: gdb.python/py-mi.exp: list children of fake
PASS -> FAIL: gdb.python/py-mi.exp: list children of outer
PASS -> FAIL: gdb.python/py-mi.exp: list children of outer.s
PASS -> FAIL: gdb.python/py-mi.exp: list selected children after setting range
PASS -> FAIL: gdb.python/py-mi.exp: list varobj children after resetting child range
PASS -> FAIL: gdb.python/py-mi.exp: list varobj children after selecting child range
PASS -> FAIL: gdb.python/py-mi.exp: next over change of array element
PASS -> FAIL: gdb.python/py-mi.exp: next over outer update
PASS -> FAIL: gdb.python/py-mi.exp: next over update 1
PASS -> FAIL: gdb.python/py-mi.exp: next over update 2
PASS -> FAIL: gdb.python/py-mi.exp: next over update 3
PASS -> FAIL: gdb.python/py-mi.exp: next over update 4
PASS -> FAIL: gdb.python/py-mi.exp: next over update 5
PASS -> FAIL: gdb.python/py-mi.exp: next over update 6
PASS -> FAIL: gdb.python/py-mi.exp: printer whose children are returned as a list
PASS -> UNRESOLVED: gdb.python/py-mi.exp: run to 357
PASS -> UNRESOLVED: gdb.python/py-mi.exp: run to 380
PASS -> FAIL: gdb.python/py-mi.exp: set update range
PASS -> FAIL: gdb.python/py-mi.exp: set update range with non-zero start
PASS -> FAIL: gdb.python/py-mi.exp: update after next with restricted range
PASS -> FAIL: gdb.python/py-mi.exp: update after type change
PASS -> FAIL: gdb.python/py-mi.exp: update after updating element of outer
PASS -> FAIL: gdb.python/py-mi.exp: update string varobj after assignment
PASS -> FAIL: gdb.python/py-mi.exp: update varobj 2, no children requested
PASS -> FAIL: gdb.python/py-mi.exp: update varobj after element change
PASS -> FAIL: gdb.python/py-mi.exp: update varobj with change outside selected range
PASS -> FAIL: gdb.python/py-mi.exp: update varobj, no children requested
PASS -> FAIL: gdb.python/py-mi.exp: varobj update 1
PASS -> FAIL: gdb.python/py-mi.exp: varobj update 2
PASS -> FAIL: gdb.python/py-mi.exp: varobj update after choosing default
PASS -> FAIL: gdb.python/py-mi.exp: varobj update after choosing via expression
PASS -> FAIL: gdb.python/py-mi.exp: varobj update after clearing
new FAIL: gdb.python/py-mi.exp: wait for stop
new FAIL: gdb.python/py-objfile.exp: can't run to main
new FAIL: gdb.python/py-pp-maint.exp: can't run to main
new FAIL: gdb.python/py-pp-registration.exp: can't run to main
new FAIL: gdb.python/py-progspace.exp: can't run to main
new FAIL: gdb.python/py-rbreak.exp: can't run to main
new FAIL: gdb.python/py-record-full.exp: can't run to main
new FAIL: gdb.python/py-recurse-unwind.exp: can't run to main
new FAIL: gdb.python/py-shared.exp: can't run to main
new FAIL: gdb.python/py-symbol.exp: can't run to main
new FAIL: gdb.python/py-symtab.exp: can't run to main
PASS -> FAIL: gdb.python/py-sync-interp.exp: attach and where
PASS -> FAIL: gdb.python/py-thrhandle.exp: Pass overly large object to thread_from_thread_handle
PASS -> FAIL: gdb.python/py-thrhandle.exp: Pass too small of an object to thread_from_thread_handle
PASS -> FAIL: gdb.python/py-thrhandle.exp: TypeError when passing a symbol object to thread_from_thread_handle
PASS -> FAIL: gdb.python/py-thrhandle.exp: info threads
PASS -> FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[0]
PASS -> FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[1]
PASS -> FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[2]
PASS -> FAIL: gdb.python/py-thrhandle.exp: run to after_mc_barrier
PASS -> FAIL: gdb.python/py-thrhandle.exp: run to do_something
PASS -> FAIL: gdb.python/py-type.exp: lang_c: continue to breakpoint: break to inspect struct and array.
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: Check enum fields items list
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: Check num fields iteration over values
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: check enum field lookup by name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: check enum field[0] name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: check enum field[1]name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: check the number of enum fields
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_enum: check the number of type fields
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: Check fields items list
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: Check fields iteration over values
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: Check ss_fields[0].name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: Check ss_fields[1].name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: Check that dir includes name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: cast to array with one argument
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: cast to array with two arguments
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with one argument
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: cast to vector with two arguments
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check array field type
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check field name exists test
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check field name nonexists test
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check fields lookup by name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check length of ss_fields
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check number of fields
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check structure field a name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check structure field b name
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: check the number of fields
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: get fields from ss.type
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: get fields from st.type
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: init ss
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: python print
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: set vec1
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: set vec2
PASS -> FAIL: gdb.python/py-type.exp: lang_c: test_fields: set vec3
PASS -> UNRESOLVED: gdb.python/py-type.exp: lang_cpp: continue to breakpoint: break to inspect struct and array.
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_base_class: check the number of fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: Check enum fields items list
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: Check num fields iteration over values
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: check enum field lookup by name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: check enum field[0] name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: check enum field[1]name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: check the number of enum fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_enum: check the number of type fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields items list
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: Check fields iteration over values
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: Check ss_fields[0].name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: Check ss_fields[1].name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: Check that dir includes name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with one argument
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: cast to array with two arguments
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with one argument
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: cast to vector with two arguments
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check array field type
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check class field c name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check class field d name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check conversion to bool
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check field name exists test
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check field name nonexists test
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check fields lookup by name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check length of ss_fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check number of fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check structure field a name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check structure field b name
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: check the number of fields
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from c.type
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from ss.type
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: get fields from st.type
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: init ss
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: python print
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: set vec1
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: set vec2
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_fields: set vec3
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: check range high bound
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_range: on ranged type: check range low bound
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: check correct tuple length
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: check range high bound
PASS -> FAIL: gdb.python/py-type.exp: lang_cpp: test_range: on ranged value: check range low bound
new FAIL: gdb.python/py-unwind-maint.exp: can't run to main
new FAIL: gdb.python/py-value.exp: can't run to main
new FAIL: gdb.python/python.exp: can't run to main
PASS -> FAIL: gdb.reverse/break-precsave.exp: continue to breakpoint: bar
PASS -> FAIL: gdb.reverse/break-precsave.exp: continue to breakpoint: bar backward
PASS -> FAIL: gdb.reverse/break-precsave.exp: continue to breakpoint: foo
PASS -> FAIL: gdb.reverse/break-precsave.exp: continue to breakpoint: foo backward
PASS -> FAIL: gdb.reverse/break-precsave.exp: end of record log
PASS -> FAIL: gdb.reverse/break-precsave.exp: go to end of main forward
PASS -> FAIL: gdb.reverse/break-precsave.exp: main backward
PASS -> FAIL: gdb.reverse/break-precsave.exp: reload precord save file
PASS -> FAIL: gdb.reverse/break-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/break-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/break-precsave.exp: set forward
PASS -> FAIL: gdb.reverse/break-precsave.exp: set reverse
PASS -> FAIL: gdb.reverse/break-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: bar
PASS -> FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: bar backward
PASS -> FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: end
PASS -> FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: foo
PASS -> FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: foo backward
PASS -> FAIL: gdb.reverse/break-reverse.exp: end of record log
PASS -> FAIL: gdb.reverse/break-reverse.exp: main backward
PASS -> FAIL: gdb.reverse/break-reverse.exp: set forward
PASS -> FAIL: gdb.reverse/break-reverse.exp: set reverse
PASS -> FAIL: gdb.reverse/break-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: continue to breakpoint in foo
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: get breakpoint address for foo
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: reload precord save file
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: set bp, 2nd instr
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: stopped at bp in reverse, 1st instr
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: stopped at bp, 2nd instr
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: continue to breakpoint in foo
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: get breakpoint address for foo
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: set bp, 2nd instr
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: set reverse execution
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: stopped at bp in reverse, 1st instr
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: stopped at bp, 2nd instr
PASS -> FAIL: gdb.reverse/consecutive-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: char_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: int_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: long_long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: short_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: continue to breakpoint: void_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from char_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from int_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from long_long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from short_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: finish from void_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reload precord save file
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from char_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from int_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from long_long_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from short_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: reverse finish from void_func
PASS -> FAIL: gdb.reverse/finish-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/finish-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/finish-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/finish-precsave.exp: turn on process record
new FAIL: gdb.reverse/finish-reverse-bkpt.exp: can't run to main
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: char_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: int_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: long_long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: short_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: continue to breakpoint: void_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from char_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from int_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from long_long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from short_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: finish from void_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from char_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from int_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from long_long_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from short_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: reverse finish from void_func
PASS -> FAIL: gdb.reverse/finish-reverse.exp: set reverse execution
PASS -> FAIL: gdb.reverse/finish-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/fstatat-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/fstatat-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/fstatat-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/getresuid-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/getresuid-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/getresuid-reverse.exp: turn on process record
new FAIL: gdb.reverse/insn-reverse.exp: run to main
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var forward
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var forward step-to
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var reverse-step
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: auto var step post-change
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: forward to 33
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: forward to 45
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: forward to 57
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: forward to 71
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: forward to 85
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static forward
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static forward step-to
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static reverse-step
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: function static step post-change
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: go to end of main forward
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: module global forward past bp
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: module global step post-change
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: module static forward
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: module static step post-change
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: register var forward step-to
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: register var forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: register var reverse step-to
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: register var reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: register var step post-change
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reload prec save file
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to 33
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to 45
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to 57
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to 71
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to 85
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: reverse to main
new FAIL: gdb.reverse/machinestate-precsave.exp: reverse-step
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: save process recfile
new FAIL: gdb.reverse/machinestate-precsave.exp: step
PASS -> FAIL: gdb.reverse/machinestate-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var forward
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var forward step-to
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var reverse-step
PASS -> FAIL: gdb.reverse/machinestate.exp: auto var step post-change
PASS -> FAIL: gdb.reverse/machinestate.exp: continue to breakpoint: end of main
PASS -> FAIL: gdb.reverse/machinestate.exp: forward to 33
PASS -> FAIL: gdb.reverse/machinestate.exp: forward to 45
PASS -> FAIL: gdb.reverse/machinestate.exp: forward to 57
PASS -> FAIL: gdb.reverse/machinestate.exp: forward to 71
PASS -> FAIL: gdb.reverse/machinestate.exp: forward to 85
PASS -> FAIL: gdb.reverse/machinestate.exp: function static forward
PASS -> FAIL: gdb.reverse/machinestate.exp: function static forward step-to
PASS -> FAIL: gdb.reverse/machinestate.exp: function static forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: function static reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: function static reverse-step
PASS -> FAIL: gdb.reverse/machinestate.exp: function static step post-change
PASS -> FAIL: gdb.reverse/machinestate.exp: module global forward past bp
PASS -> FAIL: gdb.reverse/machinestate.exp: module global step post-change
PASS -> FAIL: gdb.reverse/machinestate.exp: module static forward
PASS -> FAIL: gdb.reverse/machinestate.exp: module static step post-change
PASS -> FAIL: gdb.reverse/machinestate.exp: register var forward step-to
PASS -> FAIL: gdb.reverse/machinestate.exp: register var forward-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: register var reverse step-to
PASS -> FAIL: gdb.reverse/machinestate.exp: register var reverse-breakpoint
PASS -> FAIL: gdb.reverse/machinestate.exp: register var step post-change
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to 33
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to 45
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to 57
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to 71
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to 85
PASS -> FAIL: gdb.reverse/machinestate.exp: reverse to main
new FAIL: gdb.reverse/machinestate.exp: reverse-step
new FAIL: gdb.reverse/machinestate.exp: step
PASS -> FAIL: gdb.reverse/machinestate.exp: turn on process record
new FAIL: gdb.reverse/next-reverse-bkpt-over-sr.exp: can't run to main
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/readv-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/readv-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/readv-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/recvmsg-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/recvmsg-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/recvmsg-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/rerun-prec.exp: restarting inferior
PASS -> FAIL: gdb.reverse/rerun-prec.exp: turn on process record
PASS -> FAIL: gdb.reverse/s390-mvcle.exp: continue to breakpoint: marker1
PASS -> FAIL: gdb.reverse/s390-mvcle.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/s390-mvcle.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/s390-mvcle.exp: turn on process record
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 33
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 34
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 35
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 36
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 37
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 38
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 39
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 40
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 41
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 42
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 43
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 44
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 45
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 46
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 47
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 48
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 49
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 50
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 51
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 52
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 53
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 54
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 55
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 56
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 57
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 58
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 59
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 60
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 61
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 62
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to 63
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to ALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to BUS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to CHLD
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to CONT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to DANGER
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to EMT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to FPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to GRANT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to HUP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to ILL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to IO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to LOST
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to LWP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to MSG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to PHONE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to PIPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to POLL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to PRIO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to PROF
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to PWR
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to QUIT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to RETRACT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to SAK
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to SEGV
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to SOUND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to SYS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to TERM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to TSTP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to TTIN
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to TTOU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to URG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to USR1
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to USR2
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to VTALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to WAITING
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to WINCH
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to WIND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to XCPU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: advance to XFSZ
new FAIL: gdb.reverse/sigall-precsave.exp: continue
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: continue to sigall exit
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 33
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 34
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 35
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 36
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 37
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 38
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 39
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 40
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 41
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 42
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 43
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 44
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 45
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 46
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 47
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 48
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 49
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 50
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 51
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 52
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 53
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 54
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 55
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 56
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 57
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 58
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 59
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 60
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 61
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 62
new FAIL: gdb.reverse/sigall-precsave.exp: get signal 63
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal ABRT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal ALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal BUS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal CHLD
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal CONT
new FAIL: gdb.reverse/sigall-precsave.exp: get signal DANGER
new FAIL: gdb.reverse/sigall-precsave.exp: get signal EMT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal FPE
new FAIL: gdb.reverse/sigall-precsave.exp: get signal GRANT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal HUP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal ILL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal IO
new FAIL: gdb.reverse/sigall-precsave.exp: get signal LOST
new FAIL: gdb.reverse/sigall-precsave.exp: get signal LWP
new FAIL: gdb.reverse/sigall-precsave.exp: get signal MSG
new FAIL: gdb.reverse/sigall-precsave.exp: get signal PHONE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal PIPE
new FAIL: gdb.reverse/sigall-precsave.exp: get signal POLL
new FAIL: gdb.reverse/sigall-precsave.exp: get signal PRIO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal PROF
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal PWR
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal QUIT
new FAIL: gdb.reverse/sigall-precsave.exp: get signal RETRACT
new FAIL: gdb.reverse/sigall-precsave.exp: get signal SAK
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal SEGV
new FAIL: gdb.reverse/sigall-precsave.exp: get signal SOUND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal SYS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal TERM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal TSTP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal TTIN
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal TTOU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal URG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal USR1
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal USR2
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal VTALRM
new FAIL: gdb.reverse/sigall-precsave.exp: get signal WAITING
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal WINCH
new FAIL: gdb.reverse/sigall-precsave.exp: get signal WIND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal XCPU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: get signal XFSZ
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reload precord save file
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_33
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_34
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_35
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_36
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_37
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_38
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_39
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_40
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_41
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_42
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_43
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_44
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_45
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_46
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_47
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_48
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_49
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_50
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_51
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_52
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_53
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_54
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_55
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_56
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_57
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_58
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_59
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_60
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_61
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_62
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_63
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_ABRT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_ALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_BUS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_CHLD
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_CONT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_DANGER
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_EMT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_FPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_GRANT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_HUP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_ILL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_IO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_LOST
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_LWP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_MSG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_PHONE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_PIPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_POLL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_PRIO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_PROF
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_PWR
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_QUIT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_RETRACT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_SAK
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_SEGV
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_SOUND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_SYS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_TERM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_TSTP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_TTIN
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_TTOU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_URG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_USR1
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_USR2
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_VTALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_WAITING
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_WINCH
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_WIND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_XCPU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to gen_XFSZ
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 33
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 34
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 35
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 36
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 37
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 38
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 39
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 40
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 41
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 42
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 43
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 44
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 45
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 46
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 47
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 48
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 49
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 50
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 51
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 52
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 53
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 54
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 55
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 56
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 57
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 58
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 59
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 60
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 61
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 62
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of 63
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of ABRT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of ALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of BUS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of CHLD
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of CONT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of DANGER
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of EMT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of FPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of GRANT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of HUP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of ILL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of IO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of LOST
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of LWP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of MSG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of PHONE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of PIPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of POLL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of PRIO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of PROF
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of PWR
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of QUIT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of RETRACT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of SAK
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of SEGV
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of SOUND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of SYS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of TERM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of TSTP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of TTIN
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of TTOU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of URG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of USR1
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of USR2
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of VTALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of WAITING
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of WINCH
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of WIND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of XCPU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: reverse to handler of XFSZ
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 33
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 34
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 35
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 36
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 37
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 38
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 39
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 40
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 41
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 42
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 43
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 44
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 45
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 46
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 47
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 48
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 49
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 50
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 51
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 52
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 53
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 54
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 55
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 56
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 57
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 58
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 59
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 60
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 61
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 62
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal 63
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal ABRT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal ALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal BUS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal CHLD
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal CONT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal DANGER
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal EMT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal FPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal GRANT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal HUP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal ILL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal IO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal LOST
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal LWP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal MSG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal PHONE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal PIPE
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal POLL
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal PRIO
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal PROF
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal PWR
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal QUIT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal RETRACT
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal SAK
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal SEGV
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal SOUND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal SYS
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal TERM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal TSTP
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal TTIN
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal TTOU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal URG
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal USR1
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal USR2
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal VTALRM
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal WAITING
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal WINCH
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal WIND
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal XCPU
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: send signal XFSZ
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 33
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 34
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 35
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 36
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 37
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 38
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 39
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 40
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 41
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 42
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 43
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 44
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 45
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 46
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 47
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 48
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 49
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 50
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 51
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 52
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 53
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 54
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 55
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 56
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 57
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 58
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 59
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 60
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 61
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 62
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to 63
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to ALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to BUS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to CHLD
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to CONT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to DANGER
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to EMT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to FPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to GRANT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to HUP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to ILL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to IO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to LOST
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to LWP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to MSG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to PHONE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to PIPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to POLL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to PRIO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to PROF
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to PWR
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to QUIT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to RETRACT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to SAK
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to SEGV
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to SOUND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to SYS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to TERM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to TSTP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to TTIN
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to TTOU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to URG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to USR1
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to USR2
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to VTALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to WAITING
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to WINCH
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to WIND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to XCPU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: advance to XFSZ
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 33
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 34
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 35
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 36
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 37
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 38
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 39
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 40
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 41
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 42
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 43
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 44
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 45
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 46
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 47
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 48
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 49
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 50
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 51
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 52
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 53
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 54
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 55
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 56
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 57
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 58
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 59
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 60
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 61
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 62
new FAIL: gdb.reverse/sigall-reverse.exp: get signal 63
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal ABRT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal ALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal BUS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal CHLD
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal CONT
new FAIL: gdb.reverse/sigall-reverse.exp: get signal DANGER
new FAIL: gdb.reverse/sigall-reverse.exp: get signal EMT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal FPE
new FAIL: gdb.reverse/sigall-reverse.exp: get signal GRANT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal HUP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal ILL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal IO
new FAIL: gdb.reverse/sigall-reverse.exp: get signal LOST
new FAIL: gdb.reverse/sigall-reverse.exp: get signal LWP
new FAIL: gdb.reverse/sigall-reverse.exp: get signal MSG
new FAIL: gdb.reverse/sigall-reverse.exp: get signal PHONE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal PIPE
new FAIL: gdb.reverse/sigall-reverse.exp: get signal POLL
new FAIL: gdb.reverse/sigall-reverse.exp: get signal PRIO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal PROF
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal PWR
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal QUIT
new FAIL: gdb.reverse/sigall-reverse.exp: get signal RETRACT
new FAIL: gdb.reverse/sigall-reverse.exp: get signal SAK
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal SEGV
new FAIL: gdb.reverse/sigall-reverse.exp: get signal SOUND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal SYS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal TERM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal TSTP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal TTIN
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal TTOU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal URG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal USR1
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal USR2
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal VTALRM
new FAIL: gdb.reverse/sigall-reverse.exp: get signal WAITING
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal WINCH
new FAIL: gdb.reverse/sigall-reverse.exp: get signal WIND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal XCPU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: get signal XFSZ
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_33
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_34
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_35
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_36
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_37
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_38
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_39
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_40
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_41
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_42
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_43
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_44
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_45
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_46
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_47
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_48
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_49
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_50
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_51
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_52
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_53
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_54
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_55
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_56
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_57
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_58
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_59
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_60
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_61
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_62
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_63
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_ABRT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_ALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_BUS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_CHLD
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_CONT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_DANGER
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_EMT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_FPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_GRANT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_HUP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_ILL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_IO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_LOST
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_LWP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_MSG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_PHONE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_PIPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_POLL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_PRIO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_PROF
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_PWR
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_QUIT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_RETRACT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_SAK
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_SEGV
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_SOUND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_SYS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_TERM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_TSTP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_TTIN
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_TTOU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_URG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_USR1
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_USR2
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_VTALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_WAITING
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_WINCH
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_WIND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_XCPU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to gen_XFSZ
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 33
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 34
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 35
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 36
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 37
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 38
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 39
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 40
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 41
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 42
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 43
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 44
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 45
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 46
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 47
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 48
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 49
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 50
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 51
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 52
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 53
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 54
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 55
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 56
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 57
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 58
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 59
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 60
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 61
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 62
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of 63
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of ABRT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of ALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of BUS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of CHLD
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of CONT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of DANGER
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of EMT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of FPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of GRANT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of HUP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of ILL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of IO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of LOST
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of LWP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of MSG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of PHONE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of PIPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of POLL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of PRIO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of PROF
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of PWR
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of QUIT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of RETRACT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of SAK
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of SEGV
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of SOUND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of SYS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of TERM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of TSTP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of TTIN
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of TTOU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of URG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of USR1
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of USR2
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of VTALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of WAITING
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of WINCH
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of WIND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of XCPU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: reverse to handler of XFSZ
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 33
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 34
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 35
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 36
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 37
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 38
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 39
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 40
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 41
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 42
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 43
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 44
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 45
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 46
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 47
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 48
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 49
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 50
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 51
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 52
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 53
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 54
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 55
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 56
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 57
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 58
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 59
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 60
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 61
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 62
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal 63
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal ABRT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal ALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal BUS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal CHLD
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal CONT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal DANGER
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal EMT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal FPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal GRANT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal HUP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal ILL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal IO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal LOST
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal LWP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal MSG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal PHONE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal PIPE
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal POLL
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal PRIO
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal PROF
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal PWR
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal QUIT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal RETRACT
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal SAK
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal SEGV
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal SOUND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal SYS
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal TERM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal TSTP
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal TTIN
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal TTOU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal URG
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal USR1
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal USR2
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal VTALRM
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal WAITING
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal WINCH
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal WIND
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal XCPU
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: send signal XFSZ
PASS -> FAIL: gdb.reverse/sigall-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/solib-precsave.exp: forward to end part one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reload core file
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next first shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next generic
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function two
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next second shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-next third shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main two
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step first shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step generic
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function two
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step second shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step third shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function two
PASS -> FAIL: gdb.reverse/solib-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/solib-precsave.exp: run until end part one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: run until end part two
PASS -> FAIL: gdb.reverse/solib-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/solib-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/solib-reverse.exp: forward to end part one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next first shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next generic
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function two
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next second shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-next third shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main two
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step first shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step generic
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function two
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step second shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step third shr1
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function two
PASS -> FAIL: gdb.reverse/solib-reverse.exp: run until end part one
PASS -> FAIL: gdb.reverse/solib-reverse.exp: run until end part two
PASS -> FAIL: gdb.reverse/solib-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/step-precsave.exp: finish out of fn call
PASS -> FAIL: gdb.reverse/step-precsave.exp: next over call
PASS -> FAIL: gdb.reverse/step-precsave.exp: next test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: next test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reload core file
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next over call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step into fn call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step out of called fn
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse stepi from a function call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse stepi thru function return
PASS -> FAIL: gdb.reverse/step-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/step-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/step-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/step-precsave.exp: simple reverse stepi
PASS -> FAIL: gdb.reverse/step-precsave.exp: simple stepi
PASS -> FAIL: gdb.reverse/step-precsave.exp: step into call
PASS -> FAIL: gdb.reverse/step-precsave.exp: step test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: step test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: step up to call
PASS -> FAIL: gdb.reverse/step-precsave.exp: stepi back from function call
PASS -> FAIL: gdb.reverse/step-precsave.exp: stepi into function call
PASS -> FAIL: gdb.reverse/step-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/step-reverse.exp: finish out of fn call
PASS -> FAIL: gdb.reverse/step-reverse.exp: next over call
PASS -> FAIL: gdb.reverse/step-reverse.exp: next test 1
PASS -> FAIL: gdb.reverse/step-reverse.exp: next test 2
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse next over call
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse next test 1
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse next test 2
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse step into fn call
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse step out of called fn
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse step test 1
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse step test 2
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse stepi from a function call
PASS -> FAIL: gdb.reverse/step-reverse.exp: reverse stepi thru function return
PASS -> FAIL: gdb.reverse/step-reverse.exp: set reverse execution
PASS -> FAIL: gdb.reverse/step-reverse.exp: simple reverse stepi
PASS -> FAIL: gdb.reverse/step-reverse.exp: simple stepi
PASS -> FAIL: gdb.reverse/step-reverse.exp: step into call
PASS -> FAIL: gdb.reverse/step-reverse.exp: step test 1
PASS -> FAIL: gdb.reverse/step-reverse.exp: step test 2
PASS -> FAIL: gdb.reverse/step-reverse.exp: step up to call
PASS -> FAIL: gdb.reverse/step-reverse.exp: stepi back from function call
PASS -> FAIL: gdb.reverse/step-reverse.exp: stepi into function call
PASS -> FAIL: gdb.reverse/step-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/until-precsave.exp: advance to factorial
PASS -> FAIL: gdb.reverse/until-precsave.exp: advance to marker2
PASS -> FAIL: gdb.reverse/until-precsave.exp: finish to main
PASS -> FAIL: gdb.reverse/until-precsave.exp: reload core file
PASS -> FAIL: gdb.reverse/until-precsave.exp: reverse-advance to final return of factorial
PASS -> FAIL: gdb.reverse/until-precsave.exp: reverse-advance to marker2
PASS -> FAIL: gdb.reverse/until-precsave.exp: reverse-finish from marker2
PASS -> FAIL: gdb.reverse/until-precsave.exp: reverse-until to entry of factorial
PASS -> FAIL: gdb.reverse/until-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/until-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/until-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/until-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/until-precsave.exp: until factorial, recursive function
PASS -> FAIL: gdb.reverse/until-precsave.exp: until func, not called by current frame
PASS -> FAIL: gdb.reverse/until-precsave.exp: until line number
PASS -> FAIL: gdb.reverse/until-reverse.exp: advance to factorial
PASS -> FAIL: gdb.reverse/until-reverse.exp: advance to marker2
PASS -> FAIL: gdb.reverse/until-reverse.exp: finish to main
PASS -> FAIL: gdb.reverse/until-reverse.exp: reverse-advance to final return of factorial
PASS -> FAIL: gdb.reverse/until-reverse.exp: reverse-advance to marker2
PASS -> FAIL: gdb.reverse/until-reverse.exp: reverse-finish from marker2
PASS -> FAIL: gdb.reverse/until-reverse.exp: reverse-until to entry of factorial
PASS -> FAIL: gdb.reverse/until-reverse.exp: set reverse execution
PASS -> FAIL: gdb.reverse/until-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/until-reverse.exp: until factorial, recursive function
PASS -> FAIL: gdb.reverse/until-reverse.exp: until func, not called by current frame
PASS -> FAIL: gdb.reverse/until-reverse.exp: until line number
PASS -> FAIL: gdb.reverse/waitpid-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/waitpid-reverse.exp: reverse to marker1
PASS -> FAIL: gdb.reverse/waitpid-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/watch-precsave.exp: continue to breakpoint: marker1
PASS -> FAIL: gdb.reverse/watch-precsave.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/watch-precsave.exp: reload core file
PASS -> FAIL: gdb.reverse/watch-precsave.exp: replay forward to marker2
PASS -> FAIL: gdb.reverse/watch-precsave.exp: run to end of main
PASS -> FAIL: gdb.reverse/watch-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/watch-precsave.exp: set forward
PASS -> FAIL: gdb.reverse/watch-precsave.exp: set reverse
PASS -> FAIL: gdb.reverse/watch-precsave.exp: turn on process record
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, HW, fifth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, HW, first time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, HW, fourth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, HW, second time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, HW, third time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, fifth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, first time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, fourth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, second time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit in reverse, third time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, fifth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, first time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, forward replay, fifth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, forward replay, first time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, forward replay, fourth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, forward replay, second time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, forward replay, third time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, fourth time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, second time
PASS -> FAIL: gdb.reverse/watch-precsave.exp: watchpoint hit, third time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: continue to breakpoint: marker1
PASS -> FAIL: gdb.reverse/watch-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/watch-reverse.exp: replay forward to marker2
PASS -> FAIL: gdb.reverse/watch-reverse.exp: set forward
PASS -> FAIL: gdb.reverse/watch-reverse.exp: set reverse
PASS -> FAIL: gdb.reverse/watch-reverse.exp: turn on process record
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, HW, fifth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, HW, first time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, HW, fourth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, HW, second time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, HW, third time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, fifth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, first time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, fourth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, second time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit in reverse, third time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, fifth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, first time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, forward replay, fifth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, forward replay, first time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, forward replay, fourth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, forward replay, second time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, forward replay, third time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, fourth time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, second time
PASS -> FAIL: gdb.reverse/watch-reverse.exp: watchpoint hit, third time
new FAIL: gdb.stabs/gdb11479.exp: can't run to main forced_stabs
new FAIL: gdb.stabs/gdb11479.exp: can't run to main natural_debug_format
PASS -> FAIL: gdb.threads/attach-into-signal.exp: nonthreaded: attach
PASS -> FAIL: gdb.threads/attach-into-signal.exp: threaded: attach
PASS -> FAIL: gdb.threads/attach-slow-waitpid.exp: attach to target
PASS -> FAIL: gdb.threads/attach-stopped.exp: nonthreaded: attach2 to stopped bt
PASS -> FAIL: gdb.threads/attach-stopped.exp: nonthreaded: attach2 to stopped, after setting file
PASS -> FAIL: gdb.threads/attach-stopped.exp: threaded: attach2 to stopped, after setting file
PASS -> FAIL: gdb.threads/bp_in_thread.exp: run to noreturn
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so fully initialized: check debug libthread-db output
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so fully initialized: maint set check-libthread-db 1
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so fully initialized: set debug libthread-db 1
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so not initialized: check debug libthread-db output
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so not initialized: maint set check-libthread-db 1
PASS -> FAIL: gdb.threads/check-libthread-db.exp: automated load-time check: libpthread.so not initialized: set debug libthread-db 1
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: continue
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: continue to breakpoint: break_here
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: libpthread.so fully initialized
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: libpthread.so not initialized
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: maint show check-libthread-db
PASS -> FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: no libpthread.so loaded
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 1: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 1: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 1: info threads shows two LWPs
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 2: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 2: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 2: info threads shows two LWPs
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 3: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 3: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: bg attach 3: info threads shows two LWPs
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 1: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 1: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 1: info threads shows two LWPs
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 2: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 2: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 2: info threads shows two LWPs
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 3: attach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 3: detach
PASS -> FAIL: gdb.threads/clone-attach-detach.exp: fg attach 3: info threads shows two LWPs
PASS -> FAIL: gdb.threads/corethreads.exp: thread0 found
PASS -> FAIL: gdb.threads/corethreads.exp: thread1 found
PASS -> FAIL: gdb.threads/execl.exp: continue across exec
PASS -> FAIL: gdb.threads/execl.exp: continue to exec
PASS -> FAIL: gdb.threads/execl.exp: continue until exit
PASS -> FAIL: gdb.threads/execl.exp: info threads before exec
new FAIL: gdb.threads/fork-child-threads.exp: can't run to main
new FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: can't run to main
new FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=on: can't run to main
new FAIL: gdb.threads/fork-thread-pending.exp: can't run to main
new FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=0: detach_on_fork=on: displaced=off: can't run to main
new FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=0: detach_on_fork=on: displaced=on: can't run to main
new FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=1: detach_on_fork=on: displaced=off: can't run to main
new FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=1: detach_on_fork=on: displaced=on: can't run to main
new FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: probe displaced-stepping support: can't run to main
new FAIL: gdb.threads/hand-call-in-threads.exp: can't run to main
new FAIL: gdb.threads/interrupt-while-step-over.exp: can't run to main
new FAIL: gdb.threads/interrupted-hand-call.exp: can't run to main
new FAIL: gdb.threads/kill.exp: non-threaded: run to main
new FAIL: gdb.threads/kill.exp: threaded: run to main
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 0
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 1
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 2
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 3
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: about to create philosopher: 4
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: main thread's sleep
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
PASS -> FAIL: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print, pass: 0
PASS -> FAIL: gdb.threads/linux-dp.exp: create philosopher: 0
PASS -> FAIL: gdb.threads/linux-dp.exp: create philosopher: 1
PASS -> FAIL: gdb.threads/linux-dp.exp: create philosopher: 2
PASS -> FAIL: gdb.threads/linux-dp.exp: create philosopher: 3
PASS -> FAIL: gdb.threads/linux-dp.exp: create philosopher: 4
PASS -> FAIL: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
PASS -> FAIL: gdb.threads/linux-dp.exp: found an interesting thread
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads 2
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads after: 0
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads after: 1
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads after: 2
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads after: 3
PASS -> FAIL: gdb.threads/linux-dp.exp: info threads after: 4
PASS -> FAIL: gdb.threads/linux-dp.exp: manager thread found
new FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 1
PASS -> FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 2
PASS -> FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 3
PASS -> FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 4
PASS -> FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 5
PASS -> FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 6
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 1
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 2
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 3
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 4
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 5
PASS -> FAIL: gdb.threads/linux-dp.exp: selected thread: 6
new FAIL: gdb.threads/linux-dp.exp: setting breakpoint at print_philosopher thread 5
PASS -> FAIL: gdb.threads/linux-dp.exp: thread-specific breakpoint is thread-specific
new FAIL: gdb.threads/local-watch-wrong-thread.exp: can't run to main
PASS -> FAIL: gdb.threads/manythreads.exp: check thread name
PASS -> FAIL: gdb.threads/manythreads.exp: first continue
PASS -> FAIL: gdb.threads/manythreads.exp: give a name to the thread
PASS -> FAIL: gdb.threads/manythreads.exp: info threads
PASS -> FAIL: gdb.threads/manythreads.exp: second continue
PASS -> FAIL: gdb.threads/manythreads.exp: stop threads 1
PASS -> FAIL: gdb.threads/manythreads.exp: stop threads 2
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 0
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 1
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 10
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 11
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 12
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 13
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 14
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 15
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 16
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 17
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 18
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 19
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 2
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 20
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 21
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 22
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 23
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 24
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 25
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 26
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 27
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 28
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 29
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 3
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 30
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 31
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 4
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 5
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 6
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 7
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 8
PASS -> FAIL: gdb.threads/multi-create.exp: continue to breakpoint 9
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: continue
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: next
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: thread 2
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: thread 3
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: step
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: continue
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: next
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: thread 2
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: continue to sigusr1_handler
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: queue-signal SIGUSR1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: switch back to thread 1
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: thread 3
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: step
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: thread 1
new FAIL: gdb.threads/next-while-other-thread-longjmps.exp: can't run to main
new FAIL: gdb.threads/non-ldr-exit.exp: can't run to main
new FAIL: gdb.threads/pending-step.exp: can't run to main
PASS -> FAIL: gdb.threads/print-threads.exp: all threads ran once
PASS -> FAIL: gdb.threads/print-threads.exp: set var slow = 0
PASS -> FAIL: gdb.threads/print-threads.exp: set var slow = 1
new FAIL: gdb.threads/print-threads.exp: setting breakpoint at kill
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: detach: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: killed outside: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: killed outside: can't run to main
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: can't run to main
new FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: can't run to main
new FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: can't run to main
new FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: can't run to main
new FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: can't run to main
PASS -> FAIL: gdb.threads/pthread_cond_wait.exp: run to break_me
new FAIL: gdb.threads/queue-signal.exp: can't run to main
new FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over no: can't run to main
new FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over yes: can't run to main
new FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: can't run to main
new FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: can't run to main
new FAIL: gdb.threads/signal-delivered-right-thread.exp: continue: can't run to main
new FAIL: gdb.threads/signal-delivered-right-thread.exp: signal 0: can't run to main
new FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 1: can't run to thread_function
new FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 2: can't run to thread_function
new FAIL: gdb.threads/sigthread.exp: can't run to main
PASS -> FAIL: gdb.threads/switch-threads.exp: continue to breakpoint: continue to thread_func
PASS -> FAIL: gdb.threads/switch-threads.exp: next
PASS -> FAIL: gdb.threads/thread-find.exp: continue to breakpoint: main thread's sleep
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 1
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 2
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 3
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 4
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 5
PASS -> FAIL: gdb.threads/thread-find.exp: find thread name 6
PASS -> FAIL: gdb.threads/thread-find.exp: info thread foo
PASS -> FAIL: gdb.threads/thread-find.exp: info thread foo -1
PASS -> FAIL: gdb.threads/thread-find.exp: info threads 2 4 6
PASS -> FAIL: gdb.threads/thread-find.exp: info threads 3-3
PASS -> FAIL: gdb.threads/thread-find.exp: info threads 3-5
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 1
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 2
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 3
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 4
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 5
PASS -> FAIL: gdb.threads/thread-find.exp: name thread 6
PASS -> FAIL: gdb.threads/thread-find.exp: test inverted range
PASS -> FAIL: gdb.threads/thread-find.exp: test regular exp
PASS -> FAIL: gdb.threads/thread-specific.exp: continue to breakpoint: all threads started
PASS -> FAIL: gdb.threads/thread-specific.exp: get threads list
new FAIL: gdb.threads/thread-unwindonsignal.exp: can't run to main
new FAIL: gdb.threads/thread_check.exp: can't run to main
new FAIL: gdb.threads/thread_events.exp: can't run to main with messages disabled
new FAIL: gdb.threads/thread_events.exp: can't run to main with messages enabled
new FAIL: gdb.threads/threadapply.exp: can't run to main
PASS -> FAIL: gdb.threads/threxit-hop-specific.exp: continue to thread start
PASS -> FAIL: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
PASS -> FAIL: gdb.threads/threxit-hop-specific.exp: set thread specific breakpoint
new FAIL: gdb.threads/tid-reuse.exp: can't run to main
PASS -> FAIL: gdb.threads/tls-core.exp: gcore
PASS -> FAIL: gdb.threads/tls-core.exp: native: print thread-local storage variable
new FAIL: gdb.threads/tls-nodebug.exp: can't run to main
new FAIL: gdb.threads/tls-shared.exp: can't run to main
new FAIL: gdb.threads/tls-so_extern.exp: can't run to main
new FAIL: gdb.threads/tls.exp: can't run to main
new FAIL: gdb.threads/watchthreads.exp: can't run to main
new FAIL: gdb.threads/watchthreads2.exp: can't run to main
new FAIL: gdb.threads/wp-replication.exp: failed to run to main
new FAIL: gdb.trace/actions-changed.exp: can't run to main to check for trace support
new FAIL: gdb.trace/actions.exp: can't run to main
PASS -> FAIL: gdb.trace/ax.exp: maint agent
PASS -> FAIL: gdb.trace/ax.exp: maint agent 12
PASS -> FAIL: gdb.trace/ax.exp: maint agent-eval &gdb_long_test == &gdb_short_test
PASS -> FAIL: gdb.trace/ax.exp: maint agent-eval 12
new FAIL: gdb.trace/backtrace.exp: can't run to main to check for trace support
new FAIL: gdb.trace/change-loc.exp: can't run to main to check for trace support
new FAIL: gdb.trace/circ.exp: can't run to main to check for trace support
new FAIL: gdb.trace/entry-values.exp: can't run to main
new FAIL: gdb.trace/ftrace-lock.exp: can't run to main to check for trace support
new FAIL: gdb.trace/ftrace.exp: can't run to main to check for trace support
new FAIL: gdb.trace/infotrace.exp: can't run to main
new FAIL: gdb.trace/mi-trace-frame-collected.exp: can't run to main to check for trace support
new FAIL: gdb.trace/mi-trace-unavailable.exp: can't run to main to check for trace support
new FAIL: gdb.trace/mi-traceframe-changed.exp: can't run to main to check for trace support
new FAIL: gdb.trace/mi-tracepoint-changed.exp: can't run to main to check for trace support
new FAIL: gdb.trace/mi-tsv-changed.exp: can't run to main to check for trace support
new FAIL: gdb.trace/mi-tsv-changed.exp: create delete modify: can't run to main to check for trace support
new FAIL: gdb.trace/pending.exp: can't run to main to check for trace support
new FAIL: gdb.trace/pr16508.exp: can't run to main to check for trace support
new FAIL: gdb.trace/qtro.exp: can't run to main to check for trace support
new FAIL: gdb.trace/range-stepping.exp: can't run to main to check for trace support
new FAIL: gdb.trace/read-memory.exp: can't run to main to check for trace support
new FAIL: gdb.trace/signal.exp: can't run to main to check for trace support
new FAIL: gdb.trace/status-stop.exp: can't run to main to check for trace support
new FAIL: gdb.trace/trace-break.exp: can't run to main to check for trace support
new FAIL: gdb.trace/trace-buffer-size.exp: can't run to main to check for trace support
new FAIL: gdb.trace/trace-condition.exp: can't run to main to check for trace support
new FAIL: gdb.trace/trace-enable-disable.exp: can't run to main to check for trace support
new FAIL: gdb.trace/trace-mt.exp: can't run to main to check for trace support
new FAIL: gdb.trace/tspeed.exp: can't run to main to check for trace support
new FAIL: gdb.trace/tstatus.exp: can't run to main to check for trace support
new FAIL: gdb.trace/while-stepping.exp: can't run to main
new FAIL: gdb.tui/tui-layout.exp: execution=1: layout=asm: can't run to main
new FAIL: gdb.tui/tui-layout.exp: execution=1: layout=reg: can't run to main
new FAIL: gdb.tui/tui-layout.exp: execution=1: layout=split: can't run to main
new FAIL: gdb.tui/tui-layout.exp: execution=1: layout=src: can't run to main
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=331d77c1>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=331d77c1>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Build gdb "nat" files in subdirectory
@ 2018-12-27 21:27 sergiodj+buildbot
2018-12-27 21:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6987262214a204ea3ab857d86a1faf9f4e66f211 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6987262214a204ea3ab857d86a1faf9f4e66f211
Build gdb "nat" files in subdirectory
This moves the various "nat" object files into the nat/ subdirectory.
This allows for the removal of a pattern rule from the gdb Makefile,
which is a small cleanup.
I made the configure.nat change in a (semi-) automated way, hopefully
meaning that it is more likely to be correct than had I done it by
hand.
Eventually I would like for the various configure scripts to only
mention source files, and let the Makefile compute the object file
names.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* configure.nat (NATDEPFILES): Use nat/ prefix.
* Makefile.in (CONFIG_SRC_SUBDIR): Add nat.
(%.o: ${srcdir}/nat/%.c): Remove rule.
(INIT_FILES): Do not filter out NATDEPFILES.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2018-12-27 21:27 [binutils-gdb] Build gdb "nat" files in subdirectory sergiodj+buildbot
@ 2018-12-27 21:28 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:28 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/8969>
Commit(s) tested:
6987262214a204ea3ab857d86a1faf9f4e66f211
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Build gdb "nat" files in subdirectory
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/69/6987262214a204ea3ab857d86a1faf9f4e66f211/>
*** Diff to previous build ***
============================
new FAIL: gdb.arch/s390-vregs.exp: info registers vector
new KFAIL: gdb.base/argv0-symlink.exp: kept directory symbolic link name
new FAIL: gdb.base/catch-syscall.exp: execve: continue to main
new FAIL: gdb.base/catch-syscall.exp: execve: continue until exit
new FAIL: gdb.base/catch-syscall.exp: execve: syscall execve has returned
new FAIL: gdb.base/dfp-test.exp: correct _Decimal128 return value from called function.
new FAIL: gdb.base/finish-pretty.exp: finish foo prettyprinted function result
new KFAIL: gdb.base/foll-vfork.exp: exit: vfork child follow, finish after tcatch vfork: finish
new KFAIL: gdb.base/gnu_vector.exp: finish shows vector return value
new KFAIL: gdb.base/gnu_vector.exp: verify vector return value
new KFAIL: gdb.base/info-macros.exp: info macros info-macros.c:42
new FAIL: gdb.base/longjmp.exp: next over call_longjmp
new FAIL: gdb.base/longjmp.exp: next over longjmp
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP1_2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP1_2 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP2_2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP2_2 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP3_1 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP3_1 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP4_1_FROM_MACSCP3 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: BEFORE_MACSCP4_2_FROM_MACSCP2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP1_2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP1_2 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP2_2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP2_2 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP3_1 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP3_1 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP4_1_FROM_MACSCP3 defined/undefined when stopped at macscp4_2_from_macscp3
new KFAIL: gdb.base/macscp.exp: UNTIL_MACSCP4_2_FROM_MACSCP2 defined/undefined when stopped at macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: info macro WHERE stopped in macscp4_1_from_macscp3
new KFAIL: gdb.base/macscp.exp: info macro WHERE stopped in macscp4_2_from_macscp3
new KFAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler
new KFAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler
new KFAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler
new KFAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler
new FAIL: gdb.base/step-indirect-call-thunk.exp: stepi into call thunk
new FAIL: gdb.base/step-indirect-call-thunk.exp: stepi into return thunk
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=auto: stepi
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=off: stepi
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=on: stepi
new FAIL: gdb.base/store.exp: upvar double l; print new l, expecting 4
new FAIL: gdb.base/store.exp: upvar double l; print old l, expecting -1
new FAIL: gdb.base/store.exp: upvar double l; print old r, expecting -2
new FAIL: gdb.base/store.exp: upvar double l; set l to 4
new FAIL: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
new FAIL: gdb.base/store.exp: upvar doublest l; print old l, expecting -1
new FAIL: gdb.base/store.exp: upvar doublest l; print old r, expecting -2
new FAIL: gdb.base/store.exp: upvar doublest l; set l to 4
new FAIL: gdb.base/store.exp: upvar float l; print new l, expecting 4
new FAIL: gdb.base/store.exp: upvar float l; print old l, expecting -1
new FAIL: gdb.base/store.exp: upvar float l; print old r, expecting -2
new FAIL: gdb.base/store.exp: upvar float l; set l to 4
new FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
new FAIL: gdb.base/store.exp: var doublest l; print old l, expecting -1
new FAIL: gdb.base/store.exp: var doublest l; print old r, expecting -2
new FAIL: gdb.base/vla-optimized-out.exp: o1: printed size of optimized out vla
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile code
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code A::BB
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code ABC
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code DEF
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code GHI
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code JKL
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code a.e
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code a.s.len
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code a.u.b
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code anon_e
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile code anon_s.MAGIC
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile code anon_s.len
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile code anon_s.ua
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile code anon_u.aa
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile print
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print A::BB
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print ABC
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print DEF
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print GHI
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print JKL
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print a.e
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print a.s.len
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print a.u.b
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print anon_e
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile print anon_s.MAGIC
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile print anon_s.len
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: compile print anon_s.ua
new FAIL: gdb.compile/compile-cplus-anonymous.exp: compile print anon_u.aa
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code A::BB
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code ABC
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code DEF
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code GHI
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code JKL
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code a.e
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code a.s.len
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code a.u.b
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code anon_e
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code anon_s.MAGIC
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code anon_s.len
new KFAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code anon_s.ua
new FAIL: gdb.compile/compile-cplus-anonymous.exp: result of compile code anon_u.aa
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.A::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.B::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.C::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.a_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.b_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.c_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile code d.d_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.A::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.B::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.C::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.a_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.b_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.c_
new FAIL: gdb.compile/compile-cplus-inherit.exp: compile print d.d_
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.A::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.B::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.C::do_it
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.a_
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.b_
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.c_
new FAIL: gdb.compile/compile-cplus-inherit.exp: result of compile code d.d_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::ATYPE i = 10; var = i;
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::s_private_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::s_private_ = E_B; var = A::s_private_;
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::s_protected_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::s_protected_ = N::NB; var = A::s_protected_;
new FAIL: gdb.compile/compile-cplus-member.exp: compile code A::s_public_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code ATYPE i;
new FAIL: gdb.compile/compile-cplus-member.exp: compile code N::ANON_NE ae = N::ND; var = ae;
new FAIL: gdb.compile/compile-cplus-member.exp: compile code N::ANON_NE nse = E_A
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.*pmi
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.private_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.protected_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.public_
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.public_ = 2; var = a.*pmi; a.public_ = 1
new FAIL: gdb.compile/compile-cplus-member.exp: compile code a.s_public_ = E_B
new FAIL: gdb.compile/compile-cplus-member.exp: compile code g_e
new FAIL: gdb.compile/compile-cplus-member.exp: compile code get_values
new FAIL: gdb.compile/compile-cplus-member.exp: compile code myenum me = E_B; var = me;
new FAIL: gdb.compile/compile-cplus-member.exp: compile print A::s_private_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print A::s_protected_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print A::s_public_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print a.*pmi
new FAIL: gdb.compile/compile-cplus-member.exp: compile print a.private_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print a.protected_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print a.public_
new FAIL: gdb.compile/compile-cplus-member.exp: compile print g_e
new FAIL: gdb.compile/compile-cplus-member.exp: compile print get_values
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::ATYPE i = 10; var = i;
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::s_private_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::s_private_ = E_B; var = A::s_private_;
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::s_protected_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::s_protected_ = N::NB; var = A::s_protected_;
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code A::s_public_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code N::ANON_NE ae = N::ND; var = ae;
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code a.*pmi
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code a.private_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code a.protected_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code a.public_
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code a.public_ = 2; var = a.*pmi; a.public_ = 1
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code g_e
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code get_values
new FAIL: gdb.compile/compile-cplus-member.exp: result of compile code myenum me = E_B; var = me;
new FAIL: gdb.compile/compile-cplus-method.exp: compile code
new FAIL: gdb.compile/compile-cplus-method.exp: compile code A::get_1
new FAIL: gdb.compile/compile-cplus-method.exp: compile code A::get_2
new FAIL: gdb.compile/compile-cplus-method.exp: compile code a->get_var
new FAIL: gdb.compile/compile-cplus-method.exp: compile code a->get_var1
new FAIL: gdb.compile/compile-cplus-method.exp: compile code a->get_var2
new FAIL: gdb.compile/compile-cplus-method.exp: compile code get_value
new FAIL: gdb.compile/compile-cplus-method.exp: compile code pmf = &A::get_var1; var =
new FAIL: gdb.compile/compile-cplus-method.exp: compile print
new FAIL: gdb.compile/compile-cplus-method.exp: compile print A::get_1
new FAIL: gdb.compile/compile-cplus-method.exp: compile print A::get_2
new FAIL: gdb.compile/compile-cplus-method.exp: compile print a->get_var
new FAIL: gdb.compile/compile-cplus-method.exp: compile print a->get_var1
new FAIL: gdb.compile/compile-cplus-method.exp: compile print a->get_var2
new FAIL: gdb.compile/compile-cplus-method.exp: compile print get_value
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code A::get_1
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code A::get_2
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code a->get_var
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code a->get_var1
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code a->get_var2
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code get_value
new FAIL: gdb.compile/compile-cplus-method.exp: result of compile code pmf = &A::get_var1; var =
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile code N1::N2::N3::N4::S4::get_svar
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile code N1::N2::N3::N4::S4::s4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile code N1::N2::N3::N4::n4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile code s4.get_var
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile code s4.s4int_
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile print N1::N2::N3::N4::S4::get_svar
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile print N1::N2::N3::N4::S4::s4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile print N1::N2::N3::N4::n4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile print s4.get_var
new FAIL: gdb.compile/compile-cplus-namespace.exp: compile print s4.s4int_
new FAIL: gdb.compile/compile-cplus-namespace.exp: result of compile code N1::N2::N3::N4::S4::get_svar
new FAIL: gdb.compile/compile-cplus-namespace.exp: result of compile code N1::N2::N3::N4::S4::s4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: result of compile code N1::N2::N3::N4::n4static
new FAIL: gdb.compile/compile-cplus-namespace.exp: result of compile code s4.get_var
new FAIL: gdb.compile/compile-cplus-namespace.exp: result of compile code s4.s4int_
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code A::Inner1 &r1 = i1; var = r1.a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code A::Inner1 *i1p = &i1; var = i1p->a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code A::Inner1::Inner2 &r2 = i2; var = r2.a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code A::Inner1::Inner2 *i2p = &i2; var = i2p->a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code i1.a_
new FAIL: gdb.compile/compile-cplus-nested.exp: compile code i2.a_
new FAIL: gdb.compile/compile-cplus-nested.exp: compile print i1.a_
new FAIL: gdb.compile/compile-cplus-nested.exp: compile print i2.a_
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code A::Inner1 &r1 = i1; var = r1.a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code A::Inner1 *i1p = &i1; var = i1p->a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code A::Inner1::Inner2 &r2 = i2; var = r2.a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code A::Inner1::Inner2 *i2p = &i2; var = i2p->a_;
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code i1.a_
new FAIL: gdb.compile/compile-cplus-nested.exp: result of compile code i2.a_
new KFAIL: gdb.compile/compile-cplus-print.exp: compile print *vararray@3
new KFAIL: gdb.compile/compile-cplus-print.exp: compile print *vararrayp@3
new KFAIL: gdb.compile/compile-cplus-print.exp: compile print main
new FAIL: gdb.compile/compile-cplus-print.exp: compile print vararray
new FAIL: gdb.compile/compile-cplus-print.exp: compile print varint
new FAIL: gdb.compile/compile-cplus-print.exp: compile print varobject
new FAIL: gdb.compile/compile-cplus-print.exp: compile print/x 256
new FAIL: gdb.compile/compile-cplus-print.exp: print $
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code A a;
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code ap->doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code ap->doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code b.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code b.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code b.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code c.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code c.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code c.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code d.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code d.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile code d.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print ap->doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print ap->doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print b.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print b.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print b.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print c.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print c.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print c.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print d.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print d.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: compile print d.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code ap->doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code ap->doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code b.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code b.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code b.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code c.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code c.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code c.doit3
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code d.doit
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code d.doit2
new FAIL: gdb.compile/compile-cplus-virtual.exp: result of compile code d.doit3
new FAIL: gdb.compile/compile-cplus.exp: Call class function to set private_var
new FAIL: gdb.compile/compile-cplus.exp: Directly set a private member in GDB compile5
new FAIL: gdb.compile/compile-cplus.exp: Test compile code foovar.public_method = 43 setting.
new FAIL: gdb.compile/compile-cplus.exp: Test compile code foovar.public_var = 43 setting.
new FAIL: gdb.compile/compile-cplus.exp: Test compile code foovar.set_private_var = 84 setting.
new FAIL: gdb.compile/compile-cplus.exp: Test compile code foovar.set_private_var = 85 setting.
new FAIL: gdb.compile/compile-cplus.exp: bt
new KFAIL: gdb.compile/compile-cplus.exp: call func_nodebug
new KFAIL: gdb.compile/compile-cplus.exp: call func_nodebug indirectly
new FAIL: gdb.compile/compile-cplus.exp: call global function
new FAIL: gdb.compile/compile-cplus.exp: call static function
new FAIL: gdb.compile/compile-cplus.exp: check MINUS_1
new FAIL: gdb.compile/compile-cplus.exp: check globalshadow with -r
new FAIL: gdb.compile/compile-cplus.exp: check size of longer
new FAIL: gdb.compile/compile-cplus.exp: check size of ulonger
new FAIL: gdb.compile/compile-cplus.exp: check static_local
new FAIL: gdb.compile/compile-cplus.exp: compile code -r multiline 7
new FAIL: gdb.compile/compile-cplus.exp: compile code class Base3 {public: int z = 99;}; class MI: public Base, public Base3 {int pure_virt
new FAIL: gdb.compile/compile-cplus.exp: compile code class Baz: public Foo {public: int z = 12;}; Baz bazvar; bazvar.z = 24; var = bazvar.z
new FAIL: gdb.compile/compile-cplus.exp: compile code class MI: public Base, public Base2 {int pure_virt
new FAIL: gdb.compile/compile-cplus.exp: compile code extern int globalshadow; globalshadow += 5;
new FAIL: gdb.compile/compile-cplus.exp: compile code func_doesnotexist
new FAIL: gdb.compile/compile-cplus.exp: compile code globalshadow += 1;
new FAIL: gdb.compile/compile-cplus.exp: compile code globalvar = MINUS_1
new FAIL: gdb.compile/compile-cplus.exp: compile code globalvar = static_local
new FAIL: gdb.compile/compile-cplus.exp: compile code inttypedef newdecl_i
new FAIL: gdb.compile/compile-cplus.exp: compile code localvar =
new FAIL: gdb.compile/compile-cplus.exp: compile code localvar = externed
new FAIL: gdb.compile/compile-cplus.exp: compile code segfault first
new FAIL: gdb.compile/compile-cplus.exp: compile code segfault second
new FAIL: gdb.compile/compile-cplus.exp: compile code static const int readonly = 1; *
new FAIL: gdb.compile/compile-cplus.exp: compile code staticshadow += 2;
new FAIL: gdb.compile/compile-cplus.exp: compile code struct struct_type newdecl_s
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.arrayfield[2] = 7
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.bitfield = 2
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.boolfield = 1
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.charfield = 1
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.complexfield = 7 + 5i
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.doublefield = 2
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.enumfield = ONE
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.floatfield = 1
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.intfield = -7
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.longfield = -9
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.selffield =
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.shortfield = -5
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.ucharfield = 1
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.uintfield = 7
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.ulongfield = 9
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.ushortfield = 5
new FAIL: gdb.compile/compile-cplus.exp: compile code struct_object.vectorfield[2] = 7
new FAIL: gdb.compile/compile-cplus.exp: compile code union union_type newdecl_u
new FAIL: gdb.compile/compile-cplus.exp: compile code union_object.typedeffield = 7
new FAIL: gdb.compile/compile-cplus.exp: compile code vla[2] = 7
new FAIL: gdb.compile/compile-cplus.exp: compute size of longer
new FAIL: gdb.compile/compile-cplus.exp: compute size of ulonger
new FAIL: gdb.compile/compile-cplus.exp: do not keep jit in memory
new FAIL: gdb.compile/compile-cplus.exp: expect -1
new KFAIL: gdb.compile/compile-cplus.exp: expect -75
new KFAIL: gdb.compile/compile-cplus.exp: expect -76
new FAIL: gdb.compile/compile-cplus.exp: expect 12
new FAIL: gdb.compile/compile-cplus.exp: expect 23
new FAIL: gdb.compile/compile-cplus.exp: expect 24
new FAIL: gdb.compile/compile-cplus.exp: expect 42
new FAIL: gdb.compile/compile-cplus.exp: expect 52
new FAIL: gdb.compile/compile-cplus.exp: expect 7
new FAIL: gdb.compile/compile-cplus.exp: expect 77
new FAIL: gdb.compile/compile-cplus.exp: expect 8
new FAIL: gdb.compile/compile-cplus.exp: expect 84
new FAIL: gdb.compile/compile-cplus.exp: expect 9
new FAIL: gdb.compile/compile-cplus.exp: info sym found
new FAIL: gdb.compile/compile-cplus.exp: info sym not found
new FAIL: gdb.compile/compile-cplus.exp: modify localvar
new FAIL: gdb.compile/compile-cplus.exp: modify variable
new FAIL: gdb.compile/compile-cplus.exp: p localvar
new FAIL: gdb.compile/compile-cplus.exp: p vla[2]
new FAIL: gdb.compile/compile-cplus.exp: pointer to jit function
new FAIL: gdb.compile/compile-cplus.exp: print 'compile-cplus.c'::globalshadow
new FAIL: gdb.compile/compile-cplus.exp: print globalshadow
new FAIL: gdb.compile/compile-cplus.exp: print globalshadow second time
new FAIL: gdb.compile/compile-cplus.exp: print staticshadow
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.arrayfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.bitfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.boolfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.charfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.complexfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.doublefield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.enumfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.floatfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.intfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.longfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.selffield == &struct_object
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.shortfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.ucharfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.uintfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.ulongfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.ushortfield
new FAIL: gdb.compile/compile-cplus.exp: print struct_object.vectorfield
new FAIL: gdb.compile/compile-cplus.exp: print union_object.intfield
new FAIL: gdb.compile/compile-cplus.exp: print union_object.typedeffield
new FAIL: gdb.compile/compile-cplus.exp: print unresolved value
new FAIL: gdb.compile/compile-cplus.exp: result of compile code class Base3 {public: int z = 99;}; class MI: public Base, public Base3 {int pure_virt
new FAIL: gdb.compile/compile-cplus.exp: result of compile code class Baz: public Foo {public: int z = 12;}; Baz bazvar; bazvar.z = 24; var = bazvar.z
new FAIL: gdb.compile/compile-cplus.exp: result of compile code class MI: public Base, public Base2 {int pure_virt
new FAIL: gdb.compile/compile-cplus.exp: return
new FAIL: gdb.compile/compile-cplus.exp: set foobar.public_var to 43
new FAIL: gdb.compile/compile-cplus.exp: set localvar
new FAIL: gdb.compile/compile-cplus.exp: set variable
new FAIL: gdb.compile/compile-cplus.exp: set variable from function-like macro
new FAIL: gdb.compile/compile-cplus.exp: set variable from macro
new FAIL: gdb.compile/compile-cplus.exp: set variable to 77
new FAIL: gdb.compile/compile-cplus.exp: test extern in inner scope
new FAIL: gdb.compile/compile-cplus.exp: test shadowing
new FAIL: gdb.compile/compile-cplus.exp: use external source file
new FAIL: gdb.compile/compile-ifunc.exp: debug: compile code resultvar = gnu_ifunc_alias
new FAIL: gdb.compile/compile-ifunc.exp: debug: p resultvar
new FAIL: gdb.compile/compile-ifunc.exp: nodebug: compile code resultvar = gnu_ifunc
new FAIL: gdb.compile/compile-ifunc.exp: nodebug: p
new FAIL: gdb.compile/compile-ops.exp: compile code
new FAIL: gdb.compile/compile-ops.exp: compile code optimized_out
new FAIL: gdb.compile/compile-print.exp: compile print *vararray@3
new FAIL: gdb.compile/compile-print.exp: compile print *vararrayp@3
new FAIL: gdb.compile/compile-print.exp: compile print main
new FAIL: gdb.compile/compile-print.exp: compile print vararray
new FAIL: gdb.compile/compile-print.exp: compile print varint
new FAIL: gdb.compile/compile-print.exp: compile print varobject
new FAIL: gdb.compile/compile-print.exp: compile print/x 256
new FAIL: gdb.compile/compile-print.exp: print $
new FAIL: gdb.compile/compile-setjmp.exp: compile file -r
new FAIL: gdb.compile/compile-setjmp.exp: p done
new FAIL: gdb.compile/compile-tls.exp: compile code global_scope = 3
new FAIL: gdb.compile/compile-tls.exp: compile code local_scope = 1
new FAIL: gdb.compile/compile-tls.exp: compile code static_scope = 2
new FAIL: gdb.compile/compile-tls.exp: print global_scope
new FAIL: gdb.compile/compile-tls.exp: print local_scope
new FAIL: gdb.compile/compile-tls.exp: print static_scope
new FAIL: gdb.compile/compile.exp: Test abbreviations and code collision
new FAIL: gdb.compile/compile.exp: bt
new FAIL: gdb.compile/compile.exp: call func_nodebug
new FAIL: gdb.compile/compile.exp: call func_nodebug indirectly
new FAIL: gdb.compile/compile.exp: call global function
new FAIL: gdb.compile/compile.exp: call shared library function
new FAIL: gdb.compile/compile.exp: call static function
new FAIL: gdb.compile/compile.exp: check MINUS_1
new FAIL: gdb.compile/compile.exp: check globalshadow with -r
new FAIL: gdb.compile/compile.exp: check size of longer
new FAIL: gdb.compile/compile.exp: check size of ulonger
new FAIL: gdb.compile/compile.exp: check static_local
new FAIL: gdb.compile/compile.exp: check variable without trailing semicolon
new FAIL: gdb.compile/compile.exp: compile code -r multiline 4
new FAIL: gdb.compile/compile.exp: compile code extern int globalshadow; globalshadow += 5;
new FAIL: gdb.compile/compile.exp: compile code func_doesnotexist
new FAIL: gdb.compile/compile.exp: compile code globalshadow += 1;
new FAIL: gdb.compile/compile.exp: compile code globalvar = MINUS_1
new FAIL: gdb.compile/compile.exp: compile code globalvar = static_local
new FAIL: gdb.compile/compile.exp: compile code globalvar = unresolved;
new FAIL: gdb.compile/compile.exp: compile code inttypedef newdecl_i
new FAIL: gdb.compile/compile.exp: compile code localvar =
new FAIL: gdb.compile/compile.exp: compile code localvar = externed
new FAIL: gdb.compile/compile.exp: compile code multiline 4
new FAIL: gdb.compile/compile.exp: compile code segfault first
new FAIL: gdb.compile/compile.exp: compile code segfault second
new FAIL: gdb.compile/compile.exp: compile code static const int readonly = 1; *
new FAIL: gdb.compile/compile.exp: compile code staticshadow += 2;
new FAIL: gdb.compile/compile.exp: compile code struct struct_type newdecl_s
new FAIL: gdb.compile/compile.exp: compile code struct_object.arrayfield[2] = 7
new FAIL: gdb.compile/compile.exp: compile code struct_object.bitfield = 2
new FAIL: gdb.compile/compile.exp: compile code struct_object.boolfield = 1
new FAIL: gdb.compile/compile.exp: compile code struct_object.charfield = 1
new FAIL: gdb.compile/compile.exp: compile code struct_object.complexfield = 7 + 5i
new FAIL: gdb.compile/compile.exp: compile code struct_object.doublefield = 2
new FAIL: gdb.compile/compile.exp: compile code struct_object.enumfield = ONE
new FAIL: gdb.compile/compile.exp: compile code struct_object.floatfield = 1
new FAIL: gdb.compile/compile.exp: compile code struct_object.intfield = -7
new FAIL: gdb.compile/compile.exp: compile code struct_object.longfield = -9
new FAIL: gdb.compile/compile.exp: compile code struct_object.selffield = &struct_object
new FAIL: gdb.compile/compile.exp: compile code struct_object.shortfield = -5
new FAIL: gdb.compile/compile.exp: compile code struct_object.ucharfield = 1
new FAIL: gdb.compile/compile.exp: compile code struct_object.uintfield = 7
new FAIL: gdb.compile/compile.exp: compile code struct_object.ulongfield = 9
new FAIL: gdb.compile/compile.exp: compile code struct_object.ushortfield = 5
new FAIL: gdb.compile/compile.exp: compile code struct_object.vectorfield[2] = 7
new FAIL: gdb.compile/compile.exp: compile code union union_type newdecl_u
new FAIL: gdb.compile/compile.exp: compile code union_object.typedeffield = 7
new FAIL: gdb.compile/compile.exp: compile code vla[2] = 7
new FAIL: gdb.compile/compile.exp: compute size of longer
new FAIL: gdb.compile/compile.exp: compute size of ulonger
new FAIL: gdb.compile/compile.exp: do not keep jit in memory
new FAIL: gdb.compile/compile.exp: expect -1
new FAIL: gdb.compile/compile.exp: expect -75
new FAIL: gdb.compile/compile.exp: expect -76
new FAIL: gdb.compile/compile.exp: expect 1
new FAIL: gdb.compile/compile.exp: expect 12
new FAIL: gdb.compile/compile.exp: expect 15
new FAIL: gdb.compile/compile.exp: expect 20
new FAIL: gdb.compile/compile.exp: expect 23
new FAIL: gdb.compile/compile.exp: expect 24
new FAIL: gdb.compile/compile.exp: expect 42
new FAIL: gdb.compile/compile.exp: expect 52
new FAIL: gdb.compile/compile.exp: expect 7
new FAIL: gdb.compile/compile.exp: expect 77
new FAIL: gdb.compile/compile.exp: expect 8
new FAIL: gdb.compile/compile.exp: expect 84
new FAIL: gdb.compile/compile.exp: expect 9
new FAIL: gdb.compile/compile.exp: info sym found
new FAIL: gdb.compile/compile.exp: info sym not found
new FAIL: gdb.compile/compile.exp: modify localvar
new FAIL: gdb.compile/compile.exp: modify shared library variable
new FAIL: gdb.compile/compile.exp: modify variable
new FAIL: gdb.compile/compile.exp: p localvar
new FAIL: gdb.compile/compile.exp: p vla[2]
new FAIL: gdb.compile/compile.exp: pointer to jit function
new FAIL: gdb.compile/compile.exp: print 'compile.c'::globalshadow
new FAIL: gdb.compile/compile.exp: print globalshadow
new FAIL: gdb.compile/compile.exp: print globalshadow second time
new FAIL: gdb.compile/compile.exp: print staticshadow
new FAIL: gdb.compile/compile.exp: print struct_object.arrayfield
new FAIL: gdb.compile/compile.exp: print struct_object.bitfield
new FAIL: gdb.compile/compile.exp: print struct_object.boolfield
new FAIL: gdb.compile/compile.exp: print struct_object.charfield
new FAIL: gdb.compile/compile.exp: print struct_object.complexfield
new FAIL: gdb.compile/compile.exp: print struct_object.doublefield
new FAIL: gdb.compile/compile.exp: print struct_object.enumfield
new FAIL: gdb.compile/compile.exp: print struct_object.floatfield
new FAIL: gdb.compile/compile.exp: print struct_object.intfield
new FAIL: gdb.compile/compile.exp: print struct_object.longfield
new FAIL: gdb.compile/compile.exp: print struct_object.selffield == &struct_object
new FAIL: gdb.compile/compile.exp: print struct_object.shortfield
new FAIL: gdb.compile/compile.exp: print struct_object.ucharfield
new FAIL: gdb.compile/compile.exp: print struct_object.uintfield
new FAIL: gdb.compile/compile.exp: print struct_object.ulongfield
new FAIL: gdb.compile/compile.exp: print struct_object.ushortfield
new FAIL: gdb.compile/compile.exp: print struct_object.vectorfield
new FAIL: gdb.compile/compile.exp: print union_object.intfield
new FAIL: gdb.compile/compile.exp: print union_object.typedeffield
new FAIL: gdb.compile/compile.exp: print unresolved value
new FAIL: gdb.compile/compile.exp: return
new FAIL: gdb.compile/compile.exp: set localvar
new FAIL: gdb.compile/compile.exp: set variable
new FAIL: gdb.compile/compile.exp: set variable from function-like macro
new FAIL: gdb.compile/compile.exp: set variable from macro
new FAIL: gdb.compile/compile.exp: set variable to 77
new FAIL: gdb.compile/compile.exp: set variable without trailing semicolon
new FAIL: gdb.compile/compile.exp: test abbreviations and code delimiter
new FAIL: gdb.compile/compile.exp: test delimiter with -r
new FAIL: gdb.compile/compile.exp: test delimiter with -r after it
new FAIL: gdb.compile/compile.exp: test delimiter with -raw
new FAIL: gdb.compile/compile.exp: test extern in inner scope
new FAIL: gdb.compile/compile.exp: test shadowing
new FAIL: gdb.compile/compile.exp: use external source file
new FAIL: gdb.cp/exceptprint.exp: int: print exception value at catch
new FAIL: gdb.cp/exceptprint.exp: int: print exception value at throw
new FAIL: gdb.cp/exceptprint.exp: reference to struct: print exception value at catch
new FAIL: gdb.cp/exceptprint.exp: string: print exception value at catch
new FAIL: gdb.cp/exceptprint.exp: struct: print exception value at catch
new FAIL: gdb.cp/filename.exp: print c.includefile[0]
new FAIL: gdb.cp/filename.exp: print d.includefile
new FAIL: gdb.cp/filename.exp: print pc->includefile[0]
new FAIL: gdb.cp/filename.exp: print pd->includefile
new FAIL: gdb.cp/local-static.exp: c++: print 'S2<int>::inline_method
new FAIL: gdb.cp/local-static.exp: c++: print 'S2<int>::method
new FAIL: gdb.cp/local-static.exp: c++: print 'S2<int>::static_inline_method
new FAIL: gdb.cp/local-static.exp: c++: print 'S2<int>::static_method
new FAIL: gdb.cp/local-static.exp: c++: print 'S::inline_method
new FAIL: gdb.cp/local-static.exp: c++: print 'S::method
new FAIL: gdb.cp/local-static.exp: c++: print 'S::static_inline_method
new FAIL: gdb.cp/local-static.exp: c++: print 'S::static_method
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func'::FF_s_var_aggregate
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func'::FF_s_var_float
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func'::FF_s_var_int
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func::FF_s_var_aggregate'
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func::FF_s_var_float'
new FAIL: gdb.cp/local-static.exp: c++: print 'free_func::FF_s_var_int'
new FAIL: gdb.cp/local-static.exp: c++: print 'free_inline_func
new FAIL: gdb.cp/local-static.exp: c++: print S2<int>::inline_method
new FAIL: gdb.cp/local-static.exp: c++: print S2<int>::method
new FAIL: gdb.cp/local-static.exp: c++: print S2<int>::static_inline_method
new FAIL: gdb.cp/local-static.exp: c++: print S2<int>::static_method
new FAIL: gdb.cp/local-static.exp: c++: print S::inline_method
new FAIL: gdb.cp/local-static.exp: c++: print S::method
new FAIL: gdb.cp/local-static.exp: c++: print S::static_inline_method
new FAIL: gdb.cp/local-static.exp: c++: print S::static_method
new FAIL: gdb.cp/local-static.exp: c++: print free_func
new FAIL: gdb.cp/local-static.exp: c++: print free_func::FF_s_var_aggregate
new FAIL: gdb.cp/local-static.exp: c++: print free_func::FF_s_var_float
new FAIL: gdb.cp/local-static.exp: c++: print free_func::FF_s_var_int
new FAIL: gdb.cp/local-static.exp: c++: print free_inline_func
new KFAIL: gdb.cp/local.exp: ptype InnerLocal::NestedInnerLocal
new KFAIL: gdb.cp/oranking.exp: p foo0
new KFAIL: gdb.cp/oranking.exp: p foo10
new KFAIL: gdb.cp/oranking.exp: p foo11
new KFAIL: gdb.cp/oranking.exp: p foo13
new KFAIL: gdb.cp/oranking.exp: p foo14
new KFAIL: gdb.cp/oranking.exp: p foo2
new KFAIL: gdb.cp/rvalue-ref-overload.exp: rvalue reference overload
FAIL -> KFAIL: gdb.cp/templates.exp: ptype fvpchar
new KFAIL: gdb.cp/var-tag.exp: global collision: print global
new KFAIL: gdb.cp/virtfunc.exp: print pEe->D::vg
new FAIL: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
FAIL -> KFAIL: gdb.mi/mi-until.exp: until after while loop
new KFAIL: gdb.opt/inline-cmds.exp: next to second func1
new KFAIL: gdb.opt/inline-locals.exp: info locals above bar 2
new KFAIL: gdb.opt/inline-locals.exp: info locals above bar 3
new FAIL: gdb.python/py-value-cc.exp: u's second field via field
new FAIL: gdb.reverse/step-indirect-call-thunk.exp: reverse-stepi into call thunk
new FAIL: gdb.reverse/step-indirect-call-thunk.exp: reverse-stepi into return thunk
new FAIL: gdb.reverse/step-indirect-call-thunk.exp: stepi into call thunk
new FAIL: gdb.reverse/step-indirect-call-thunk.exp: stepi into return thunk
new FAIL: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
new FAIL: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new KFAIL: gdb.threads/non-ldr-exit.exp: program exits normally
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: continue to breakpoint: _exit
new KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
new KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
new KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
new FAIL: gdb.threads/pthreads.exp: apply backtrace command to all three threads
new FAIL: gdb.threads/pthreads.exp: check backtrace from thread 1
new FAIL: gdb.threads/pthreads.exp: check backtrace from thread 2
new FAIL: gdb.threads/pthreads.exp: run a failing command except in one frame of thread 2,3, -s to silently continue. Do not show thread and frame info
new FAIL: gdb.threads/pthreads.exp: run a failing command except in one frame of thread 2,3, -s to silently continue. Do not show thread information
new FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=taas faas: run a failing command except in one frame of thread 2,3, -s to silently continue
new FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=tfaas: run a failing command except in one frame of thread 2,3, -s to silently continue
new FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=thread apply all -s frame apply all -s: run a failing command except in one frame of thread 2,3, -s to silently continue
new FAIL: gdb.threads/thread-unwindonsignal.exp: wrong thread not unwound
new FAIL: gdb.threads/threadapply.exp: thread apply all backthread
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=331d77c1>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=331d77c1>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use gdbpy_convert_exception in a few more spots
@ 2018-12-27 21:37 sergiodj+buildbot
2018-12-27 21:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec9c2750b7bab8a55aaf7d2386e809d4e81deb03 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ec9c2750b7bab8a55aaf7d2386e809d4e81deb03
Use gdbpy_convert_exception in a few more spots
I noticed a few places were converting a gdb exception to a Python
exception "by hand". It's better to use the existing
gdbpy_convert_exception helper function, as this handles memory errors
correctly, and in the future may be enhanced in other ways.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* python/py-value.c (convert_value_from_python): Use
gdbpy_convert_exception.
* python/py-param.c (parmpy_init): Use gdbpy_convert_exception.
* python/py-cmd.c (cmdpy_init): Use gdbpy_convert_exception.
* python/py-breakpoint.c (bppy_init): Use
gdbpy_convert_exception.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Consolidate some Python exception-printing functions
@ 2018-12-27 21:53 sergiodj+buildbot
2018-12-27 22:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 21:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6ef2312a177ebdfa841e82b515c144975073a501 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6ef2312a177ebdfa841e82b515c144975073a501
Consolidate some Python exception-printing functions
A few places in the Python code would either call gdbpy_print_stack,
or throw a gdb "quit", depending on the pending exception. This patch
consolidates these into a helper function.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* python/python-internal.h (gdbpy_print_stack_or_quit): Declare.
* python/py-unwind.c (pyuw_sniffer): Use
gdbpy_print_stack_or_quit.
* python/py-framefilter.c (throw_quit_or_print_exception):
Remove.
(gdbpy_apply_frame_filter): Use gdbpy_print_stack_or_quit.
* python/python.c (gdbpy_print_stack_or_quit): New function.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit"
@ 2018-12-27 22:36 sergiodj+buildbot
2018-12-27 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 22:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bc543c902f9891f732be68817e16ff379b69566e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bc543c902f9891f732be68817e16ff379b69566e
Translate PyExc_KeyboardInterrupt to gdb "quit"
A while back I typed "info pretty-printers" with a large number of
printers installed, and I typed "q" to stop the pagination. I noticed
that gdb printed a Python exception in this case.
It seems to me that, instead, quitting pagination (or control-c'ing a
Python command generally) should be handled the same way that gdb
normally handles a quit.
This patch implements this idea by changing gdbpy_handle_exception to
treat PyExc_KeyboardInterrupt specially.
gdb/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* python/py-utils.c (gdbpy_handle_exception): Translate
PyExc_KeyboardInterrupt to quit.
gdb/testsuite/ChangeLog
2018-12-27 Tom Tromey <tom@tromey.com>
* gdb.python/py-cmd.exp (test_python_inline_or_multiline): Add
pagination test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR23966, mingw failure due to 32-bit long
@ 2018-12-28 5:38 sergiodj+buildbot
2018-12-28 5:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 5:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: cb87d9f1a49986b2eb92ac381444f4cc7c9d8a4f
PR23966, mingw failure due to 32-bit long
PR 23966
* libbfd.c (SSIZE_MAX): Define.
(bfd_malloc, bfd_realloc): Don't cast size to long to check for
"negative" values, compare against SSIZE_MAX instead.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Avoid internal errors when stepping outside 'main' on MinGW
@ 2018-12-28 7:52 sergiodj+buildbot
2018-12-28 7:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 7:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 156f23669270533e1499e15e49842468800c2681 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 156f23669270533e1499e15e49842468800c2681
Avoid internal errors when stepping outside 'main' on MinGW
When one steps with "next" past the 'main's 'return' statement
in MinGW programs built by mingw.org's tools, PC lands in a
function whose symbol is not in any symtab. GDB then looks
up the nearest symbol, and should find none, because all those
with addresses below PC are not real functions. Having
unresolved symbols, whose address is zero, in minsyms tricked
GDB into using these bogus symbols, which then caused
assertion violation and internal_error. See the discussion at
https://sourceware.org/ml/gdb-patches/2018-12/msg00176.html
for more details.
gdb/ChangeLog
2018-12-28 Eli Zaretskii <eliz@gnu.org>
* coffread.c (coff_symtab_read): Don't record in minsyms symbols
that are unresolved. This avoids triggering an internal error
when stepping outside of 'main' in MinGW programs.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak of set/show verbose doc, avoid xfree of static string
@ 2018-12-28 18:09 sergiodj+buildbot
2018-12-28 17:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 18:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 94f2c73066597f33933bef2d20bdbfbf6fcd8b69 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 94f2c73066597f33933bef2d20bdbfbf6fcd8b69
Fix leak of set/show verbose doc, avoid xfree of static string
In the tests
py-pp-registration/gdb.log
default/gdb.log
foll-fork/gdb.log
setshow/gdb.log
break-interp/gdb.log
Valgrind detects a leak of the doc strings for the set and show verbose cmd.
Here is the stacktrace of the leaked set doc:
==25548== 15 bytes in 1 blocks are definitely lost in loss record 101 of 3,120
==25548== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==25548== by 0x409C27: xmalloc (common-utils.c:44)
==25548== by 0x778AF9: xstrdup (xstrdup.c:34)
==25548== by 0x3F860F: add_setshow_cmd_full(char const*, command_class, var_types, void*, char const*, char const*, char const*, void (*)(char const*, int, cmd_list_element*), void (*)(ui_file*, int, cmd_list_element*, char const*), cmd_list_element**, cmd_list_element**, cmd_list_element**, cmd_list_element**) [clone .constprop.10] (cli-decode.c:495)
==25548== by 0x3F8ADB: add_setshow_boolean_cmd(char const*, command_class, int*, char const*, char const*, char const*, void (*)(char const*, int, cmd_list_element*), void (*)(ui_file*, int, cmd_list_element*, char const*), cmd_list_element**, cmd_list_element**) (cli-decode.c:593)
==25548== by 0x3F7442: _initialize_cli_cmds() (cli-cmds.c:1768)
==25548== by 0x69EED3: initialize_all_files() (init.c:365)
==25548== by 0x658A84: gdb_init(char*) (top.c:2163)
==25548== by 0x5403E1: captured_main_1 (main.c:863)
==25548== by 0x5403E1: captured_main (main.c:1167)
==25548== by 0x5403E1: gdb_main(captured_main_args*) (main.c:1193)
==25548== by 0x289CA7: main (gdb.c:32)
The leak is created by top.c set_verbose 'elaborate joke':
the doc string is changed according to the verbosity:
(gdb) help set verbose
Set verbosity.
(gdb) set verbose on
(gdb) help set verbose
Set verbose printing of informational messages.
(gdb)
set_verbose creates the leak as it replaces the string allocated in
the above stacktrace by a static (non translated) string:
...
if (info_verbose)
{
c->doc = "Set verbose printing of informational messages.";
...
Also, this can possibly trigger a call to 'free' of a static string,
as c->doc_allocated is kept true, while the string is not allocated anymore.
This patch:
* fixes the leak by freeing the previous docs if doc_allocated.
* internationalize the messages.
* properly sets doc_allocated to 0 once doc strings are static.
gdb/ChangeLog
2018-12-28 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* top.c (set_verbose): Free previous docs if doc_allocated.
Internationalize messages. Set doc_allocated to 0.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change wrap buffering to use a std::string
@ 2018-12-28 21:27 sergiodj+buildbot
2018-12-28 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 21:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c5603d506350cca3b1af7ba3a97bf05adeea0508 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c5603d506350cca3b1af7ba3a97bf05adeea0508
Change wrap buffering to use a std::string
Currently wrap buffering is implemented by allocating a string that is
the same width as the window, and then writing characters into it.
However, if gdb emits terminal escapes, then these could possibly
overflow the buffer.
To prevent this, change the wrap buffer to be a std::string and update
the various uses.
This also changes utils.c to always emit characters to the wrap
buffer. This simplifies future patches which emit terminal escape
sequences, and also makes it possible for the "echo" and "printf"
commands to be used to emit terminal escapes and have these work in
the TUI.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* utils.c (filter_initialized): New global.
(wrap_buffer): Now a std::string.
(wrap_pointer): Remove.
(flush_wrap_buffer): New function.
(filtered_printing_initialized, set_width, wrap_here)
(fputs_maybe_filtered): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a "context" argument to add_setshow_enum_cmd
@ 2018-12-28 21:45 sergiodj+buildbot
2018-12-28 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 21:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7170dadf5950e1444ab09cdfc4e07dd2698fc275 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7170dadf5950e1444ab09cdfc4e07dd2698fc275
Add a "context" argument to add_setshow_enum_cmd
This adds a "context" argument to add_setshow_enum_cmd. Now
add_setshow_enum_cmd will call set_cmd_context on both of the new
commands. This is used in a later patch.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* command.h (add_setshow_enum_cmd): Add "context" argument.
* cli/cli-decode.c (add_setshow_enum_cmd): Add "context"
argument. Call set_cmd_context.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change gdb test suite's TERM setting
@ 2018-12-28 22:14 sergiodj+buildbot
2018-12-28 22:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9162a27c5f5828240b53379d735679e2a69a9f41 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9162a27c5f5828240b53379d735679e2a69a9f41
Change gdb test suite's TERM setting
This changes the gdb test suite to set TERM to "dumb" by default.
This setting disables terminal styling, so that the existing tests do
not need to be updated.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* lib/gdb.exp (gdb_init): Set the TERM environment variable to
"dumb".
* gdb.base/readline.exp (operate_and_get_next): Save and restore
the TERM environment variable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add output styles to gdb
@ 2018-12-28 22:24 sergiodj+buildbot
2018-12-28 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cbe5657196d0d3acbeca39973f93f333ecedacda ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cbe5657196d0d3acbeca39973f93f333ecedacda
Add output styles to gdb
This adds some output styling to the CLI.
A style is currently a foreground color, a background color, and an
intensity (dim or bold). (This list could be expanded depending on
terminal capabilities.)
A style can be applied while printing. For ui-out, this is done by
passing the style constant as an argument. For low-level cases,
fprintf_styled and fputs_styled are provided.
Users can control the style via a number of new set/show commands. In
the interest of not typing many nearly-identical documentation
strings, I automated this. On the down side, this is not very
i18n-friendly.
I've chose some default colors to use. I think it would be good to
enable this by default, so that when users start the new gdb, they
will see the new feature.
Stylizing is done if TERM is set and is not "dumb". This could be
improved when the TUI is available by using the curses has_colors
call. That is, the lowest layer could call this without committing to
using curses everywhere; see my other patch for TUI colorizing.
I considered adding a new "set_style" method to ui_file. However,
because the implementation had to interact with the pager code, I
didn't take this approach. But, one idea might be to put the isatty
check there and then have it defer to the lower layers.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* utils.h (set_output_style, fprintf_styled)
(fputs_styled): Declare.
* utils.c (applied_style, desired_style): New globals.
(emit_style_escape, set_output_style): New function.
(prompt_for_continue): Emit style escapes.
(fputs_maybe_filtered): Likewise.
(fputs_styled, fprintf_styled): New functions.
* ui-out.h (enum class ui_out_style_kind): New.
(class ui_out) <field_string, field_stream, do_field_string>: Add
style parameter.
* ui-out.c (ui_out::field_stream, ui_out::field_string): Add style
parameter.
* tui/tui-out.h (class tui_ui_out) <do_field_string>: Add style
parameter.
* tui/tui-out.c (tui_ui_out::do_field_string): Add style
parameter.
(tui_ui_out::do_field_string): Update.
* tracepoint.c (print_one_static_tracepoint_marker): Style
output.
* stack.c (print_frame_info, print_frame): Style output.
* source.c (print_source_lines_base): Style output.
* skip.c (info_skip_command): Style output.
* record-btrace.c (btrace_call_history_src_line): Style output.
(btrace_call_history): Likewise.
* python/py-framefilter.c (py_print_frame): Style output.
* mi/mi-out.h (class mi_ui_out) <do_field_string>: Add style
parameter.
* mi/mi-out.c (mi_ui_out::do_table_header)
(mi_ui_out::do_field_int): Update.
(mi_ui_out::do_field_string): Update.
* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
Style output.
* cli/cli-style.h: New file.
* cli/cli-style.c: New file.
* cli-out.h (class cli_ui_out) <do_field_string>: Add style
parameter.
* cli-out.c (cli_ui_out::do_table_header)
(cli_ui_out::do_field_int, cli_ui_out::do_field_skip): Update.
(cli_ui_out::do_field_string): Add style parameter. Style the
output.
* breakpoint.c (print_breakpoint_location): Style output.
(update_static_tracepoint): Likewise.
* Makefile.in (SUBDIR_CLI_SRCS): Add cli-style.c.
(HFILES_NO_SRCDIR): Add cli-style.h.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: New file.
* gdb.base/style.c: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Reset terminal styles
@ 2018-12-28 22:26 sergiodj+buildbot
2018-12-28 22:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ef1dfa3644f02efffa11d718fe5788c05177587b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ef1dfa3644f02efffa11d718fe5788c05177587b
Reset terminal styles
This adds a function that can be used to reset terminal styles,
regardless of what style the low-level output routines currently think
is applied.
This is used to make "echo" and "printf" work properly when emitting
ANSI terminal escapes -- now gdb will reset the style at the end of
the command.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* utils.h (reset_terminal_style): Declare.
* utils.c (can_emit_style_escape): New function.
(set_output_style): Use it.
(reset_terminal_style): New function.
* printcmd.c (printf_command): Call reset_terminal_style.
* cli/cli-cmds.c (echo_command): Call reset_terminal_style.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style variable names
@ 2018-12-28 22:37 sergiodj+buildbot
2018-12-28 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 80ae204359b707f2914132ed353d3cecbdb58b23 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 80ae204359b707f2914132ed353d3cecbdb58b23
Style variable names
This adds style support for variable names. For the time being, this
is only done in backtraces, not in ptype or print; those places do not
use ui-out and so would need ad hoc changes.
This also adds styling to the names printed for local variables in
"backtrace full". This code does not use ui-out, so the styling is
done using the low-level API.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* ui-out.h (enum class ui_out_style_kind) <VARIABLE>: New global.
* stack.c (print_frame_arg): Style name.
* printcmd.c (print_variable_and_value): Style variable name.
* cli/cli-style.h (variable_name_style): Declare.
* cli/cli-style.c (variable_name_style): New global.
(_initialize_cli_style): Update.
* cli-out.c (cli_ui_out::do_field_string): Update.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add test for variable names.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style locations when setting a breakpoint
@ 2018-12-28 22:50 sergiodj+buildbot
2018-12-28 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 22:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0bb296cb5f3a81b4b5e702208aad911d3b727f8b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0bb296cb5f3a81b4b5e702208aad911d3b727f8b
Style locations when setting a breakpoint
say_where does not use ui-out, so function and file names printed by
it were not styled. This patch changes say_where to use the low-level
style code directly.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* breakpoint.c (say_where): Style file name.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add test for breakpoint setting.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style print_address_symbolic
@ 2018-12-28 23:02 sergiodj+buildbot
2018-12-28 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af79b68d7f935799c956b1a40e92a167385b5380 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af79b68d7f935799c956b1a40e92a167385b5380
Style print_address_symbolic
print_address_symbolic does not use ui-out, so it did not style
function names. This patch changes it to use the low-level style code
directly.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* printcmd.c (print_address_symbolic): Style function name.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add test for print_address_symbolic.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style the gdb welcome message
@ 2018-12-28 23:20 sergiodj+buildbot
2018-12-28 23:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d47032b7ca85852acb1d2bc645f477ffee4373fc ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d47032b7ca85852acb1d2bc645f477ffee4373fc
Style the gdb welcome message
This changes gdb to style the welcome message that is shown by
default. The styling is only done interactively.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* top.c (print_gdb_version): Style gdb version number.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add test for version number styling.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style the "Reading symbols" message
@ 2018-12-28 23:25 sergiodj+buildbot
2018-12-28 23:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47fd17cdc14a0d295a2cbdc02eff144e3fb4e900 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 47fd17cdc14a0d295a2cbdc02eff144e3fb4e900
Style the "Reading symbols" message
The "Reading symbols" message does not use ui-out (perhaps it
should?), so this styles it using the low-level API.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* symfile.c (symbol_file_add_with_addrs): Style file name.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add test for styling of "Reading symbols"
message.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style addresses
@ 2018-12-28 23:40 sergiodj+buildbot
2018-12-28 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 35fb8261b95c07e548a0b03f60b6c2cebf83caf8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 35fb8261b95c07e548a0b03f60b6c2cebf83caf8
Style addresses
This changes gdb to style addresses.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* ui-out.h (enum class ui_out_style_kind) <ADDRESS>: New
constant.
* ui-out.c (ui_out::field_core_addr): Add styling.
* stack.c (print_frame): Add styling.
* printcmd.c (print_address): Add styling.
(print_address_demangle, info_address_command): Likewise.
* cli/cli-style.h (address_style): Declare.
* cli/cli-style.c (address_style): New global.
(_initialize_cli_style): Register new commands.
* cli-out.c (cli_ui_out::do_field_string): Update.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Update test to check for address styling.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use wclrtoeol in tui_show_source_line
@ 2018-12-28 23:58 sergiodj+buildbot
2018-12-28 23:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 23:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c
Use wclrtoeol in tui_show_source_line
This changes tui_show_source_line to use wclrtoeol rather than
manually emitting a sequence of spaces.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.c (tui_show_source_line): Use wclrtoeol.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix the build when GNU Source Highlight is not available
@ 2018-12-29 4:53 sergiodj+buildbot
2018-12-29 5:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-29 4:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 64c45143db4c550e19763edf97ca3441c78f9a05 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 64c45143db4c550e19763edf97ca3441c78f9a05
Fix the build when GNU Source Highlight is not available
The builder pointed out that, when GNU Source Highlight is not
available, get_language_name is not used. This patch makes it
conditional, fixing the build problem.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* source-cache.c (get_language_name): Conditionally compile.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix 'help set/show style' strange layouts/results.
@ 2018-12-30 9:50 sergiodj+buildbot
2018-12-30 9:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-30 9:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ecad3b215d34263968bb7c74701e3ca9483ac710 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ecad3b215d34263968bb7c74701e3ca9483ac710
Fix 'help set/show style' strange layouts/results.
The layout for 'help set address|variable' is strange, e.g.:
(gdb) help set style address
style address
List of show Address display styling
Configure address colors and display intensity subcommands:
show Address display styling
Configure address colors and display intensity background -- Set the background color for this property
show Address display styling
Configure address colors and display intensity foreground -- Set the foreground color for this property
show Address display styling
Configure address colors and display intensity intensity -- Set the display intensity color for this property
Type "help show Address display styling
Configure address colors and display intensity" followed by show Address display styling
Configure address colors and display intensity subcommand name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
(gdb)
The help for 'set style function|filename' gives help for 'Show':
(gdb) help set style filename
Filename display styling
Configure filename colors and display intensity.
List of show style filename subcommands:
show style filename background -- Set the background color for this property
show style filename foreground -- Set the foreground color for this property
show style filename intensity -- Set the display intensity color for this property
The help for 'show style function|filename' is equally strange, as it speaks
about commands, instead of sub commands:
(gdb) help show style filename
Filename display styling
Configure filename colors and display intensity.
List of commands:
background -- Show the background color for this property
foreground -- Show the foreground color for this property
intensity -- Show the display intensity color for this property
Type "help" followed by command name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
(gdb)
This patch fixes all this.
Note that the 'set style' and 'show style' have the same prefix_doc:
(gdb) help show style
Style-specific settings
Configure various style-related variables, such as colors
...
(gdb) help set style
Style-specific settings
Configure various style-related variables, such as colors
...
Other similar commands (such as set|show history) have typically
a more specific prefix:
(gdb) help show history
Generic command for showing command history parameters.
...
(gdb) help set history
Generic command for setting command history parameters.
...
This could be fixed by having set_prefix_doc and show_prefix_doc instead of
the single prefix_doc argument to cli_style_option::add_setshow_commands.
That could be improved if deemed better.
2018-12-29 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* cli/cli-style.c (cli_style_option::add_setshow_commands):
Initialize m_set_prefix with "set", instead of re-assigning
m_show_prefix. Use m_set_prefix for set_list and m_show_prefix
for show_list.
(_initialize_cli_style): Correct the order of arguments in
variable_name_style.add_setshow_commands and
address_style.add_setshow_commands calls.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change input_handler to take a unique_xmalloc_ptr
@ 2018-12-30 16:40 sergiodj+buildbot
2018-12-30 16:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-30 16:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 95bc9f0bf06637cf9c1147008ac32d6b00c42707 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 95bc9f0bf06637cf9c1147008ac32d6b00c42707
Change input_handler to take a unique_xmalloc_ptr
This changes ui::input_handler to take a unique_xmalloc_ptr. This
clarifies the ownership transfer of input_handler's argument.
gdb/ChangeLog
2018-12-30 Tom Tromey <tom@tromey.com>
* event-top.h (command_line_handler): Update.
* top.c (class gdb_readline_wrapper_cleanup) <m_handler_orig>:
Update.
(gdb_readline_wrapper_line): Update.
* top.h (struct ui) <input_handler>: Take a unique_xmalloc_ptr.
(handle_line_of_input): Update.
* event-top.c: Update.
(gdb_readline_no_editing_callback): Update.
(command_line_handler): Take a unique_xmalloc_ptr.
(handle_line_of_input): Take a const char *.
(command_line_append_input_line): Take a const char *.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols
@ 2018-12-31 6:53 sergiodj+buildbot
2018-12-31 7:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-31 6:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 54025d5812ff100f5f0654eb7e1ffd50f2e37f5f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 54025d5812ff100f5f0654eb7e1ffd50f2e37f5f
PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols
PR 24041
* elflink.c (elf_link_add_object_symbols): Don't segfault on
crafted ET_DYN with no program headers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use gdb::unique_xmalloc_ptr<char> in command_line_input to fix a leak
@ 2018-12-31 17:26 sergiodj+buildbot
2018-12-31 17:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2018-12-31 17:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2139e8dc9f8f11aacb3e4b697a3d554b28d50ee6 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 2139e8dc9f8f11aacb3e4b697a3d554b28d50ee6
Use gdb::unique_xmalloc_ptr<char> in command_line_input to fix a leak
Following the change of logic where the input_handler gets a
gdb::unique_xmalloc_ptr<char>, a call to readline directly
followed by a call to handle_line_of_input is missing a free,
and causes the below leak.
Use gdb::unique_xmalloc_ptr<char> to solve the leak.
==16291== VALGRIND_GDB_ERROR_BEGIN
==16291== 64 bytes in 1 blocks are definitely lost in loss record 1,815 of 4,111
==16291== at 0x4C2E2B3: realloc (vg_replace_malloc.c:836)
==16291== by 0x41EB1C: xrealloc (common-utils.c:62)
==16291== by 0x41DBD3: buffer_grow(buffer*, char const*, unsigned long) [clone .part.1] (buffer.c:40)
==16291== by 0x66E8FF: buffer_grow_char (buffer.h:40)
==16291== by 0x66E8FF: gdb_readline_no_editing (top.c:798)
==16291== by 0x66E8FF: command_line_input(char const*, char const*) (top.c:1249)
==16291== by 0x66EBD8: read_command_file(_IO_FILE*) (top.c:421)
==16291== by 0x412C0C: script_from_file(_IO_FILE*, char const*) (cli-script.c:1547)
==16291== by 0x40BE90: source_script_from_stream (cli-cmds.c:569)
==16291== by 0x40BE90: source_script_with_search(char const*, int, int) (cli-cmds.c:606)
==16291== by 0x54D567: catch_command_errors(void (*)(char const*, int), char const*, int) (main.c:379)
==16291== by 0x54EA84: captured_main_1 (main.c:994)
==16291== by 0x54EA84: captured_main (main.c:1167)
==16291== by 0x54EA84: gdb_main(captured_main_args*) (main.c:1193)
==16291== by 0x29DA27: main (gdb.c:32)
==16291==
==16291== VALGRIND_GDB_ERROR_END
gdb/ChangeLog
2018-12-31 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* top.c (command_line_input): Use unique_xmalloc_ptr to
manage memory allocated by readline.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update copyright year range in all GDB files.
@ 2019-01-01 6:42 sergiodj+buildbot
2019-01-01 6:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 6:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 42a4f53d2bf8938c2aeda9f52be7a20534b214a9 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 42a4f53d2bf8938c2aeda9f52be7a20534b214a9
Update copyright year range in all GDB files.
This commit applies all changes made after running the gdb/copyright.py
script.
Note that one file was flagged by the script, due to an invalid
copyright header
(gdb/unittests/basic_string_view/element_access/char/empty.cc).
As the file was copied from GCC's libstdc++-v3 testsuite, this commit
leaves this file untouched for the time being; a patch to fix the header
was sent to gcc-patches first.
gdb/ChangeLog:
Update copyright year range in all GDB files.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] update copyright year printed by gdb, gdbserver and gdbreplay
@ 2019-01-01 6:54 sergiodj+buildbot
2019-01-01 6:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 6:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66d91b39089d606c9589673a7c5419cf37e7d639 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 66d91b39089d606c9589673a7c5419cf37e7d639
update copyright year printed by gdb, gdbserver and gdbreplay
gdb/ChangeLog:
* top.c (print_gdb_version): Update Copyright year in version
message.
gdb/gdbserver/ChangeLog:
* gdbreplay.c (gdbreplay_version): Update copyright year in
version message.
* server.c (gdbserver_version): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix 'Invalid read of size 4' in search_command_helper
@ 2019-01-01 20:25 sergiodj+buildbot
2019-01-01 20:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 20:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b18ca5148b837c878b64306be2b78b15fa730259 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b18ca5148b837c878b64306be2b78b15fa730259
Fix 'Invalid read of size 4' in search_command_helper
Valgrind detects the below error in gdb.base/list.exp.
==14763== Invalid read of size 4
==14763== at 0x60B584: search_command_helper(char const*, int, bool) [clone .constprop.91] (source.c:1601)
==14763== by 0x408888: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
==14763== by 0x668550: execute_command(char const*, int) (top.c:630)
==14763== by 0x4B2F7B: command_handler(char const*) (event-top.c:583)
==14763== by 0x4B326C: command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) (event-top.c:772)
...
==14763== Address 0x6d9f09c is 4 bytes before a block of size 156 alloc'd
==14763== at 0x4C2E2B3: realloc (vg_replace_malloc.c:836)
==14763== by 0x41904C: xrealloc (common-utils.c:62)
==14763== by 0x60A300: find_source_lines(symtab*, int) (source.c:1203)
==14763== by 0x608219: source_cache::get_plain_source_lines(symtab*, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (source-cache.c:51)
==14763== by 0x60A46B: print_source_lines_base(symtab*, int, int, enum_flags<print_source_lines_flag>) (source.c:1350)
==14763== by 0x404E2D: list_command(char const*, int) (cli-cmds.c:1080)
....
Add the missing condition to end the loop once line 1 has been
reversed-searched.
gdb/ChangeLog
2019-01-01 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* source.c (search_command_helper): Stop reverse search
when line 1 has been searched.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Split ISA and ABI features
@ 2019-01-01 23:17 sergiodj+buildbot
2019-01-01 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 23:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 113b7b8142427cf7a9ad85fbc39e1319b52649b5 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 113b7b8142427cf7a9ad85fbc39e1319b52649b5
gdb/riscv: Split ISA and ABI features
The goal of this commit is to allow RV64 binaries compiled for the 'F'
extension to run on a target that supports both the 'F' and 'D'
extensions.
The 'D' extension depends on the 'F' extension and chapter 9 of the
RISC-V ISA manual implies that running a program compiled for 'F' on
a 'D' target should be fine.
To support this the gdbarch now holds two feature sets, one represents
the features that are present on the target, and one represents the
features requested in the ELF flags.
The existing error checks are relaxed slightly to allow binaries
compiled for 32-bit 'F' extension to run on targets with the 64-bit
'D' extension.
A new set of functions called riscv_abi_{xlen,flen} are added to
compliment the existing riscv_isa_{xlen,flen}, and some callers to the
isa functions now call the abi functions when that is appropriate.
In riscv_call_arg_struct two asserts are removed, these asserts no
longer make sense. The asserts were both like this:
gdb_assert (TYPE_LENGTH (ainfo->type)
<= (cinfo->flen + cinfo->xlen));
And were made in two cases, when passing structures like these:
struct {
integer field1;
float field2;
};
or,
struct {
float field1;
integer field2;
};
When running on an RV64 target which only has 32-bit float then the
integer field could be 64-bits, while if the float field is 32-bits
the overall size of the structure can be 128-bits (with 32-bits of
padding). In this case the assertion would fail, however, the code
isn't incorrect, so its safe to just remove the assertion.
This was tested by running on an RV64IMFDC target using a compiler
configured for RV64IMFC, and comparing the results with those obtained
when using a compiler configured for RV64IMFDC. The only regressions
I see (now) are in gdb.base/store.exp and are related too different
code generation choices GCC makes between the two targets.
Finally, this commit does not make any attempt to support running
binaries compiled for RV32 on an RV64 target, though nothing in here
should prevent that being supported in the future.
gdb/ChangeLog:
* arch/riscv.h (struct riscv_gdbarch_features) <hw_float_abi>:
Delete.
<operator==>: Update with for removed field.
<hash>: Likewise.
* riscv-tdep.h (struct gdbarch_tdep) <features>: Renamed to...
<isa_features>: ...this.
<abi_features>: New field.
(riscv_isa_flen): Update comment.
(riscv_abi_xlen): New declaration.
(riscv_abi_flen): New declaration.
* riscv-tdep.c (riscv_isa_xlen): Update to get answer from
isa_features.
(riscv_abi_xlen): New function.
(riscv_isa_flen): Update to get answer from isa_features.
(riscv_abi_flen): New function.
(riscv_has_fp_abi): Update to get answer from abi_features.
(riscv_call_info::riscv_call_info): Use abi xlen and flen, not isa
xlen and flen.
(riscv_call_info) <xlen, flen>: Update comment.
(riscv_call_arg_struct): Remove invalid assertions
(riscv_features_from_gdbarch_info): Update now hw_float_abi field
is removed.
(riscv_gdbarch_init): Gather isa features and abi features
separately, ensure both match on the gdbarch when reusing an old
gdbarch. Relax an error check to allow 32-bit abi float to run on
a target with 64-bit float hardware.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Style improvements in gdb/python
@ 2019-01-02 16:47 sergiodj+buildbot
2019-01-02 16:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 16:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8833fbf05c5b93fb3ccf666d5a3bd0e51e75d1bd ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8833fbf05c5b93fb3ccf666d5a3bd0e51e75d1bd
Style improvements in gdb/python
This fixes a few minor style issues I found in gdb/python: some
unnecessary casts, the removal of an unnecessary local variable, and
one instance of incorrect formatting.
Tested by rebuilding and re-running gdb.python.
gdb/ChangeLog
2019-01-02 Tom Tromey <tom@tromey.com>
* python/py-inferior.c (gdbpy_initialize_inferior): Fix
indentation.
* python/py-frame.c (frapy_older): Remove cast.
(frapy_newer): Likewise.
* python/py-breakpoint.c (local_setattro): Remove cast.
* python/py-arch.c (archpy_name): Remove local variable.
* python/py-type.c (gdbpy_lookup_type): Remove cast.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix search of debug files for remote debuggee
@ 2019-01-02 20:08 sergiodj+buildbot
2019-01-02 20:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 20:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5d36dfb949751663bcb814b3cc780ed8f47442b4 ***
Author: Andrey Utkin <autkin@undo.io>
Branch: master
Commit: 5d36dfb949751663bcb814b3cc780ed8f47442b4
Fix search of debug files for remote debuggee
When using remote debugging server, and when debuggee filename is
inferred via qXfer:exec-file:read request, or sysroot starts with
"target:", this "target:" prefix of filepaths is not treated correctly
during debug file search - it appears in the middle of the looked up
paths.
In the following example, unpatched GDB can't find separate debug files for
neither the executable, nor standard libraries:
$ gdb -ex 'set debug separate-debug-file 1' -ex 'set sysroot target:/' -ex 'set debug-file-directory /usr/lib/debug:/home/j/hide' -ex 'target remote :3333' -ex 'break main' -ex 'continue' -ex 'bt' -ex 'info sharedlibrary' -ex 'set confirm off' -ex 'quit'
GNU gdb (Gentoo 9999 vanilla) 8.2.50.20181109-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Remote debugging using :3333
Reading /home/j/test from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /home/j/test from remote target...
Reading symbols from target:/home/j/test...
Looking for separate debug info (debug link) for target:/home/j/test
Trying target:/home/j/test.debug
Reading /home/j/test.debug from remote target...
Trying target:/home/j/.debug/test.debug
Reading /home/j/.debug/test.debug from remote target...
Trying /usr/lib/debug/target:/home/j/test.debug
Trying /home/j/hide/target:/home/j/test.debug
(No debugging symbols found in target:/home/j/test)
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading symbols from target:/lib64/ld-linux-x86-64.so.2...
Looking for separate debug info (debug link) for target:/lib64/ld-linux-x86-64.so.2
Trying target:/lib64/ld-2.27.so.debug
Reading /lib64/ld-2.27.so.debug from remote target...
Trying target:/lib64/.debug/ld-2.27.so.debug
Reading /lib64/.debug/ld-2.27.so.debug from remote target...
Trying /usr/lib/debug/target:/lib64/ld-2.27.so.debug
Trying /home/j/hide/target:/lib64/ld-2.27.so.debug
(No debugging symbols found in target:/lib64/ld-linux-x86-64.so.2)
Looking for separate debug info (build-id) for system-supplied DSO at 0x7ffff7ffa000
Trying /usr/lib/debug/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
Trying /home/j/hide/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
0x00007ffff7dd7000 in ?? () from target:/lib64/ld-linux-x86-64.so.2
Breakpoint 1 at 0x4005eb
Continuing.
Reading /lib64/libpthread.so.0 from remote target...
Reading /lib64/libc.so.6 from remote target...
Looking for separate debug info (debug link) for target:/lib64/libpthread.so.0
Trying target:/lib64/libpthread-2.27.so.debug
Reading /lib64/libpthread-2.27.so.debug from remote target...
Trying target:/lib64/.debug/libpthread-2.27.so.debug
Reading /lib64/.debug/libpthread-2.27.so.debug from remote target...
Trying /usr/lib/debug/target:/lib64/libpthread-2.27.so.debug
Trying /home/j/hide/target:/lib64/libpthread-2.27.so.debug
Looking for separate debug info (debug link) for target:/lib64/libc.so.6
Trying target:/lib64/libc-2.27.so.debug
Reading /lib64/libc-2.27.so.debug from remote target...
Trying target:/lib64/.debug/libc-2.27.so.debug
Reading /lib64/.debug/libc-2.27.so.debug from remote target...
Trying /usr/lib/debug/target:/lib64/libc-2.27.so.debug
Trying /home/j/hide/target:/lib64/libc-2.27.so.debug
Breakpoint 1, 0x00000000004005eb in main ()
#0 0x00000000004005eb in main ()
From To Syms Read Shared Object Library
0x00007ffff7dd6e80 0x00007ffff7df4650 Yes (*) target:/lib64/ld-linux-x86-64.so.2
0x00007ffff7bbbb70 0x00007ffff7bcbfee Yes (*) target:/lib64/libpthread.so.0
0x00007ffff780f200 0x00007ffff7962d7c Yes (*) target:/lib64/libc.so.6
(*): Shared library is missing debugging information.
With current fix, the paths used always have target: in the beginning
and this helps to find all debug files:
$ gdb -ex 'set debug separate-debug-file 1' -ex 'set sysroot target:/' -ex 'set debug-file-directory /usr/lib/debug:/home/j/hide' -ex 'target remote :3333' -ex 'break main' -ex 'continue' -ex 'bt' -ex 'info sharedlibrary' -ex 'set confirm off' -ex 'quit'
GNU gdb (Gentoo 9999 vanilla) 8.2.50.20181109-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Remote debugging using :3333
Reading /home/j/test from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /home/j/test from remote target...
Reading symbols from target:/home/j/test...
Looking for separate debug info (debug link) for target:/home/j/test
Trying target:/home/j/test.debug
Reading /home/j/test.debug from remote target...
Trying target:/home/j/.debug/test.debug
Reading /home/j/.debug/test.debug from remote target...
Trying target:/usr/lib/debug//home/j/test.debug
Reading /usr/lib/debug//home/j/test.debug from remote target...
Trying target:/home/j/hide//home/j/test.debug
Reading /home/j/hide//home/j/test.debug from remote target...
Reading /home/j/hide//home/j/test.debug from remote target...
Reading symbols from target:/home/j/hide//home/j/test.debug...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading symbols from target:/lib64/ld-linux-x86-64.so.2...
Looking for separate debug info (debug link) for target:/lib64/ld-linux-x86-64.so.2
Trying target:/lib64/ld-2.27.so.debug
Reading /lib64/ld-2.27.so.debug from remote target...
Trying target:/lib64/.debug/ld-2.27.so.debug
Reading /lib64/.debug/ld-2.27.so.debug from remote target...
Trying target:/usr/lib/debug//lib64/ld-2.27.so.debug
Reading /usr/lib/debug//lib64/ld-2.27.so.debug from remote target...
Reading /usr/lib/debug//lib64/ld-2.27.so.debug from remote target...
Reading symbols from target:/usr/lib/debug//lib64/ld-2.27.so.debug...
Looking for separate debug info (build-id) for system-supplied DSO at 0x7ffff7ffa000
Trying /usr/lib/debug/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
Trying /home/j/hide/.build-id/fd/03d584bc1a90ba28be457635a02662c9f9c1f2.debug
0x00007ffff7dd7000 in _start () from target:/lib64/ld-linux-x86-64.so.2
Breakpoint 1 at 0x4005ef: file test/test16.c, line 13.
Continuing.
Reading /lib64/libpthread.so.0 from remote target...
Reading /lib64/libc.so.6 from remote target...
Looking for separate debug info (debug link) for target:/lib64/libpthread.so.0
Trying target:/lib64/libpthread-2.27.so.debug
Reading /lib64/libpthread-2.27.so.debug from remote target...
Trying target:/lib64/.debug/libpthread-2.27.so.debug
Reading /lib64/.debug/libpthread-2.27.so.debug from remote target...
Trying target:/usr/lib/debug//lib64/libpthread-2.27.so.debug
Reading /usr/lib/debug//lib64/libpthread-2.27.so.debug from remote target...
Reading /usr/lib/debug//lib64/libpthread-2.27.so.debug from remote target...
Looking for separate debug info (debug link) for target:/lib64/libc.so.6
Trying target:/lib64/libc-2.27.so.debug
Reading /lib64/libc-2.27.so.debug from remote target...
Trying target:/lib64/.debug/libc-2.27.so.debug
Reading /lib64/.debug/libc-2.27.so.debug from remote target...
Trying target:/usr/lib/debug//lib64/libc-2.27.so.debug
Reading /usr/lib/debug//lib64/libc-2.27.so.debug from remote target...
Reading /usr/lib/debug//lib64/libc-2.27.so.debug from remote target...
Breakpoint 1, main () at test/test16.c:13
13 for ( i=0; i<10; ++i)
#0 main () at test/test16.c:13
From To Syms Read Shared Object Library
0x00007ffff7dd6e80 0x00007ffff7df4650 Yes target:/lib64/ld-linux-x86-64.so.2
0x00007ffff7bbbb70 0x00007ffff7bcbfee Yes target:/lib64/libpthread.so.0
0x00007ffff780f200 0x00007ffff7962d7c Yes target:/lib64/libc.so.6
gdb/ChangeLog:
2018-11-09 Andrey Utkin <autkin@undo.io>
* symfile.c (find_separate_debug_file): Fix search of debug files for
remote debuggee.
Signed-off-by: Andrey Utkin <autkin@undo.io>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak of struct call_thread_fsm in call_function_by_hand_dummy.
@ 2019-01-02 21:27 sergiodj+buildbot
2019-01-02 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 21:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e3319240732bc9543af8ced9d80ec89d0b629b2e ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e3319240732bc9543af8ced9d80ec89d0b629b2e
Fix leak of struct call_thread_fsm in call_function_by_hand_dummy.
When the call does not complete, the call_thread_fsm allocated
by new_call_thread_fsm is not cleaned up and deleted, which causes
the following leak e.g. in gdb.base/callfuncs.exp:
==29263== 560 bytes in 7 blocks are definitely lost in loss record 2,833 of 3,341
==29263== at 0x4C2E0BC: calloc (vg_replace_malloc.c:762)
==29263== by 0x405110: xcalloc (common-utils.c:84)
==29263== by 0x4E67EB: xcnew<call_thread_fsm> (poison.h:122)
==29263== by 0x4E67EB: new_call_thread_fsm (infcall.c:516)
==29263== by 0x4E67EB: call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) (infcall.c:1154)
==29263== by 0x4E784E: call_function_by_hand(value*, type*, gdb::array_view<value*>) (infcall.c:693)
==29263== by 0x496111: eval_call(expression*, noside, int, value**, char const*, type*) [clone .isra.5] (eval.c:835)
Fix the leak by similarly doing cleanup/destroy when restoring
previous state machine.
Tested on debian/amd64, natively and under valgrind.
2019-01-02 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* infcall.c (call_function_by_hand_dummy): cleanup/destroy sm
in case of call that did not complete.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Place displaced step data directly in inferior structure
@ 2019-01-02 22:46 sergiodj+buildbot
2019-01-02 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 22:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d20172fc53017cef12d64b21aa2fdac72072558c ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: d20172fc53017cef12d64b21aa2fdac72072558c
Place displaced step data directly in inferior structure
This patch moves the per-inferior data related to displaced stepping to
be directly in the inferior structure, rather than in a container on the
side.
On notable difference is that previously, we deleted the state on
inferior exit, which guaranteed a clean state if re-using the inferior
for a new run or attach. We now need to reset the state manually.
At the same time, I changed step_saved_copy to be a gdb::byte_vector, so
it is automatically freed on destruction (which should plug the leak
reported here [1]).
[1] https://sourceware.org/ml/gdb-patches/2018-11/msg00202.html
gdb/ChangeLog:
* inferior.h (class inferior) <displaced_step_state>: New field.
* infrun.h (struct displaced_step_state): Move here from
infrun.c. Initialize fields, add constructor.
<inf>: Remove field.
<reset>: New method.
* infrun.c (struct displaced_step_inferior_state): Move to
infrun.h.
(displaced_step_inferior_states): Remove.
(get_displaced_stepping_state): Adust.
(displaced_step_in_progress_any_inferior): Adjust.
(displaced_step_in_progress_thread): Adjust.
(displaced_step_in_progress): Adjust.
(add_displaced_stepping_state): Remove.
(get_displaced_step_closure_by_addr): Adjust.
(remove_displaced_stepping_state): Remove.
(infrun_inferior_exit): Call displaced_step_state.reset.
(use_displaced_stepping): Don't check for NULL.
(displaced_step_prepare_throw): Call
get_displaced_stepping_state.
(displaced_step_fixup): Don't check for NULL.
(prepare_for_detach): Don't check for NULL.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change inferior_to_inferior_object to return a gdbpy_ref
@ 2019-01-02 23:46 sergiodj+buildbot
2019-01-02 23:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 23:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 61fd3e738919700c8d0fbb942519d72a767d90b1 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61fd3e738919700c8d0fbb942519d72a767d90b1
Change inferior_to_inferior_object to return a gdbpy_ref
Most callers of inferior_to_inferior_object already use a gdbpy_ref,
so this changes inferior_to_inferior_object to return one. Doing this
revealed that create_thread_object was not correctly handling the case
where inferior_to_inferior_object failed, so this patch fixes this as
well.
gdb/ChangeLog
2019-01-02 Tom Tromey <tom@tromey.com>
* python/python-internal.h (inferior_to_inferior_object): Change
return type.
* python/py-exitedevent.c (create_exited_event_object): Update.
* python/py-inferior.c (inferior_to_inferior_object): Return
gdbpy_ref.
(python_new_inferior, python_inferior_deleted)
(thread_to_thread_object, delete_thread_object)
(build_inferior_list, gdbpy_selected_inferior): Update.
* python/py-infthread.c (create_thread_object): Update. Also fail
if inferior_to_inferior_object fails.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanups from linespec.c
@ 2019-01-02 23:59 sergiodj+buildbot
2019-01-02 23:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 23:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a6ae42d4e4ecfd2441cf9b978b2a54ad6767cb7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3a6ae42d4e4ecfd2441cf9b978b2a54ad6767cb7
Remove cleanups from linespec.c
This removes the remaining cleanups from linespec.c. This adds a
constructor and destructor to linespec_parser, but in a minimal way --
the parser could still benefit from a bit more C++-ification.
gdb/ChangeLog
2019-01-02 Tom Tromey <tom@tromey.com>
* linespec.c (struct linespec_parser): Rename from ls_parser. Add
constructor, destructor.
(linespec_parser): Remove typedef.
(~linespec_parser): Rename from linespec_parser_delete.
(linespec_lex_to_end, linespec_complete_label)
(linespec_complete): Update.
(decode_line_full): Remove cleanups.
(decode_line_1): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove a cleanup from target-descriptions.c
@ 2019-01-03 0:11 sergiodj+buildbot
2019-01-03 0:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 0:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c55d06ec95961fadd9deeffae519ff0f20f237d3 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c55d06ec95961fadd9deeffae519ff0f20f237d3
Remove a cleanup from target-descriptions.c
This removes a cleanup from target-descriptions.c, by changing it to
use a unique_ptr instead. Note that a deletion adapter is used, even
though target_desc is allocated with new, to avoid moving target_desc
to target-descriptions.h.
gdb/ChangeLog
2019-01-02 Tom Tromey <tom@tromey.com>
* xml-tdesc.c (xml_cache): Hold a target_desc_up.
(tdesc_parse_xml): Remove cleanups.
* target-descriptions.h (make_cleanup_free_target_description):
Don't declare.
(target_desc_deleter): New struct.
(target_desc_up): New typedef.
* target-descriptions.c (target_desc_deleter::operator()): Rename
from free_target_description.
(make_cleanup_free_target_description): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add 'extern C' if simulator is written in C++
@ 2019-01-03 14:58 sergiodj+buildbot
2019-01-03 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 14:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 444b3faef5397eee5a06fe0e683d2ac3e6628fdc ***
Author: <kryukov@frtk.ru>
Branch: master
Commit: 444b3faef5397eee5a06fe0e683d2ac3e6628fdc
Add 'extern C' if simulator is written in C++
sim/common/Changelog:
2018-12-31 Pavel I. Kryukov <kryukov@frtk.ru>
* sim-base.h: Add 'extern C' if header is compiled with C++
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Fix wrong use of s0 register name.
@ 2019-01-03 19:31 sergiodj+buildbot
2019-01-03 19:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 19:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 592d8c0a5d193d3aad03437942a54a667477acea ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 592d8c0a5d193d3aad03437942a54a667477acea
RISC-V: Fix wrong use of s0 register name.
s0 is listed as both an int register name and an FP register name. The FP reg
name is wrong. This looks like a simple editting error, and has an easy fix.
Tested with riscv64-linux build and check, with no regressions.
gdb/
* riscv-tdep.c (riscv_freg_feature): Drop s0 name from f8.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/remote: Remove a cleanup in remote_check_symbols
@ 2019-01-03 21:41 sergiodj+buildbot
2019-01-03 21:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 21:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66644cd32ba63e7fda70e455766b438631ec0b61 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 66644cd32ba63e7fda70e455766b438631ec0b61
gdb/remote: Remove a cleanup in remote_check_symbols
Convert one of the variables that requires a cleanup from a 'char *'
to a 'gdb::char_vector' in remote_target::remote_check_symbols.
Tested on x86-64/Linux with target_board native-gdbserver and
native-extended-gdbserver.
gdb/ChangeLog:
* remote.c (remote_target::remote_check_symbols): Convert `msg` to
gdb::char_vector, remove cleanup, and update uses of `msg`.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove a cleanup from find_overload_match
@ 2019-01-03 21:54 sergiodj+buildbot
2019-01-03 21:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 21:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 06d3e5b0046d69e3da3450d2eb07c29f0c1a189a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 06d3e5b0046d69e3da3450d2eb07c29f0c1a189a
gdb: Remove a cleanup from find_overload_match
This patch changes cp-support.c:cp_func_name to return a
'gdb::unique_xmalloc_ptr<char>' instead of a 'char *'. This allows a
cleanup to be removed from valops.c:find_overload_match.
gdb/ChangeLog:
* compile/compile-cplus-types.c
(compile_cplus_instance::decl_name): Handle changes to
cp_func_name.
* cp-support.c (cp_func_name): Update header comment, update
return type.
* cp-support.h (cp_func_name): Update return type in declaration.
* valops.c (find_overload_match): Move temp_func local to top
level of function and change its type. Use temp_func to hold and
delete temporary string obtained from cp_func_name.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove final cleanup from find_overload_match
@ 2019-01-03 22:06 sergiodj+buildbot
2019-01-03 22:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 22:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26089c494f0d6fa8d4afeab2e2e53b25d299bb9f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 26089c494f0d6fa8d4afeab2e2e53b25d299bb9f
gdb: Remove final cleanup from find_overload_match
This patch removes the setup of a null_cleanup in
valops.c:find_overload_match, and all the calls to do_cleanups.
gdb/ChangeLog:
* valops.c (find_overload_match): Remove use of null_cleanup, and
calls to do_cleanups.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove cleanup from linux-fork.c:inferior_call_waitpid
@ 2019-01-03 22:19 sergiodj+buildbot
2019-01-03 22:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 22:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a07c88800e88e26fc3a746739f0d2cc8abd30c5d ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a07c88800e88e26fc3a746739f0d2cc8abd30c5d
gdb: Remove cleanup from linux-fork.c:inferior_call_waitpid
Replace cleanup in linux-fork.c:inferior_call_waitpid with a RAII
object.
gdb/ChangeLog:
* linux-fork.c (class scoped_switch_fork_info): New class.
(inferior_call_waitpid): Update to use scoped_switch_fork_info.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use a wrapper for PyErr_Fetch
@ 2019-01-03 22:53 sergiodj+buildbot
2019-01-03 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 22:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5c329e6ab4c7bba9b83155571b150756210001df ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5c329e6ab4c7bba9b83155571b150756210001df
Use a wrapper for PyErr_Fetch
This introduces a new class that wraps PyErr_Fetch and PyErr_Restore,
and then changes all the callers in gdb to use it. This reduces the
amount of explicit reference counting that is done in the Python code.
I also found and fixed a latent bug in gdbpy_print_stack -- it was not
correctly checking some error conditions, nor clearing the exception
when needed.
gdb/ChangeLog
2019-01-03 Tom Tromey <tom@tromey.com>
* python/python.c (gdbpy_enter, ~gdbpy_enter): Update.
(gdbpy_print_stack): Use gdbpy_err_fetch.
* python/python-internal.h (class gdbpy_err_fetch): New class.
(class gdbpy_enter) <m_error_type, m_error_value,
m_error_traceback>: Remove.
<m_error>: New member.
(gdbpy_exception_to_string): Don't declare.
* python/py-varobj.c (py_varobj_iter_next): Use gdbpy_err_fetch.
* python/py-value.c (convert_value_from_python): Use
gdbpy_err_fetch.
* python/py-utils.c (gdbpy_err_fetch::to_string): Rename from
gdbpy_exception_to_string.
(gdbpy_handle_exception): Use gdbpy_err_fetch.
* python/py-prettyprint.c (print_stack_unless_memory_error): Use
gdbpy_err_fetch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove more uses of explicit reference counting in Python
@ 2019-01-03 23:06 sergiodj+buildbot
2019-01-03 23:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 23:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2a3c71d68d452bb6b06d199d0eb7bc0cbc2b9b25 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2a3c71d68d452bb6b06d199d0eb7bc0cbc2b9b25
Remove more uses of explicit reference counting in Python
This changes some more place in the Python code to use gdbpy_ref
rather than explicit reference counting. While doing this I found a
latent bug in typy_fields_items -- it was not checking for errors in
one spot. I also changed valpy_dealloc to use Py_XDECREF rather than
an explicit "if".
gdb/ChangeLog
2019-01-03 Tom Tromey <tom@tromey.com>
* python/py-value.c (valpy_dealloc): Use Py_XDECREF.
* python/py-type.c (typy_fields_items): Use gdbpy_ref.
* python/py-progspace.c (pspy_set_printers): Use gdbpy_ref.
(pspy_set_frame_filters, pspy_set_frame_unwinders)
(pspy_set_type_printers): Likewise.
* python/py-function.c (fnpy_init): Use gdbpy_ref.
* python/py-cmd.c (cmdpy_init): Use gdbpy_ref.
* python/py-objfile.c (objfpy_set_printers): Use gdbpy_ref.
(objfpy_set_frame_filters, objfpy_set_frame_unwinders)
(objfpy_set_type_printers): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify gdbpy_stop_recording
@ 2019-01-03 23:17 sergiodj+buildbot
2019-01-03 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 23:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ea41325b7d134e91648e340d8297e8f6ee5fe26a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ea41325b7d134e91648e340d8297e8f6ee5fe26a
Simplify gdbpy_stop_recording
This simplifies gdbpy_stop_recording, by having it use Py_RETURN_NONE
rather than writing it out manually, and by usin the idiomatic
GDB_PY_HANDLE_EXCEPTION.
gdb/ChangeLog
2019-01-03 Tom Tromey <tom@tromey.com>
* python/py-record.c (gdbpy_stop_recording): Use Py_RETURN_NONE.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Improve reference counting in py-type.c
@ 2019-01-03 23:30 sergiodj+buildbot
2019-01-03 23:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 23:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1b20edf043c62759a4c78e40b03846e9bafd584c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1b20edf043c62759a4c78e40b03846e9bafd584c
Improve reference counting in py-type.c
This improves the reference counting in py-type.c by using gdbpy_ref
and gdbpy_ref::new_reference in more places.
gdb/ChangeLog
2019-01-03 Tom Tromey <tom@tromey.com>
* python/py-type.c (convert_field): Use new_reference. Return
gdbpy_ref.
(make_fielditem): Return gdbpy_ref.
(typy_fields): Update.
(typy_getitem): Update.
(field_name): Return gdbpy_ref. Use new_reference.
(typy_iterator_iternext): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting
@ 2019-01-04 2:21 sergiodj+buildbot
2019-01-04 2:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 2:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 677bd4c69d0eda4f2ae635d793f23c0b1413a9e9 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 677bd4c69d0eda4f2ae635d793f23c0b1413a9e9
PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting
Mode field should be read in octal, all the rest in decimal. Do so.
PR 24061
PR 21786
* coff-rs6000.c (GET_VALUE_IN_FIELD): Add base parameter and
adjust all callers.
(EQ_VALUE_IN_FIELD): Likewise.
* coff64-rs6000.c (GET_VALUE_IN_FIELD): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change the default for the CSKY target to be little endian.
@ 2019-01-04 14:11 sergiodj+buildbot
2019-01-04 14:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 14:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d9858c37914e104401071b12b060765024008fe4 ***
Author: Lifang Xia <lifang_xia@c-sky.com>
Branch: master
Commit: d9858c37914e104401071b12b060765024008fe4
Change the default for the CSKY target to be little endian.
* config.bfd (csky-*-elf* | csky-*-linux*): Modify the csky
default target, little endian target is more suitable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use upper case for more metasyntactic variables in gdb
@ 2019-01-04 21:57 sergiodj+buildbot
2019-01-04 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 21:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 48c5e7e239fba27bea134f6cd5f414300b7cd3ac ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 48c5e7e239fba27bea134f6cd5f414300b7cd3ac
Use upper case for more metasyntactic variables in gdb
I noticed a few places where a Usage line in gdb did not use upper
case for metasyntactic variables. This patch fixes all the instances
I found.
Tested on x86-64 Fedora 28.
gdb/ChangeLog
2019-01-04 Tom Tromey <tom@tromey.com>
* compile/compile.c (_initialize_compile): Use upper case for
metasyntactic variables.
* symmisc.c (_initialize_symmisc): Use upper case for
metasyntactic variables.
* psymtab.c (_initialize_psymtab): Use upper case for
metasyntactic variables.
* demangle.c (demangle_command): Use upper case for metasyntactic
variables.
(_initialize_demangler): Likewise.
* ax-gdb.c (_initialize_ax_gdb): Use upper case for metasyntactic
variables.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] GDB crash re-running program on Windows (native)
@ 2019-01-05 8:10 sergiodj+buildbot
2019-01-05 8:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-05 8:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2eab46b176fa315ebc07569280f020c3348c2aa2 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 2eab46b176fa315ebc07569280f020c3348c2aa2
GDB crash re-running program on Windows (native)
Running any program twice on Windows current results in GDB crashing:
$ gdb -q any_program
(gdb) run
$ gdb dummy -batch -ex run -ex run
[New Thread 684960.0xe5878]
[New Thread 684960.0xd75ac]
[New Thread 684960.0xddac8]
[New Thread 684960.0xc1f50]
[Thread 684960.0xd75ac exited with code 0]
[Thread 684960.0xddac8 exited with code 0]
[Thread 684960.0xc1f50 exited with code 0]
[Inferior 1 (process 684960) exited normally]
(gdb) run
Segmentation fault
The crash happens while processing the CREATE_PROCESS_DEBUG_EVENT
for the second run; in particular, we have in get_windows_debug_event:
| case CREATE_PROCESS_DEBUG_EVENT:
| [...]
| if (main_thread_id)
| windows_delete_thread (ptid_t (current_event.dwProcessId, 0,
| main_thread_id),
| 0);
The problem is that main_thread_id is the TID of the main thread from
the *previous* inferior, and this code is trying to delete that
thread. The problem is that it is constructing a PTID by pairing
the TID of the previous inferior with the PID of the new inferior.
As a result, when we dig inside windows_delete_thread to see
how it would handle that, we see...
| delete_thread (find_thread_ptid (ptid));
Since the PTID is bogus, we end up calling delete_thread with
a NULL thread_info. It used to be harmless, turning the delete_thread
into a nop, but the following change...
| commit 080363310650c93ad8e93018bcb6760ba5d32d1c
| Date: Thu Nov 22 16:09:14 2018 +0000
| Subject: Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.
... changed delete_thread to get the list of threads from
the inferior, which itself is now accessed via the given
thread_info. This is the corresponding diff that shows the change:
| - for (tp = thread_list; tp; tpprev = tp, tp = tp->next)
| + for (tp = thr->inf->thread_list; tp; tpprev = tp, tp = tp->next)
As a result of this, passing a NULL thread_info is no longer
an option!
Stepping back a bit, the reason behind deleting the thread late
could be found in a patch from Dec 2003, which laconically explains:
| commit 87a45c96062d658ca83b50aa060a648bf5f5f1ff
| Date: Fri Dec 26 00:39:04 2003 +0000
|
| * win32-nat.c (get_child_debug_event): Keep main thread id around
| even after thread exits since Windows insists on continuing to
| report events against it.
A look at the gdb-patches archives did not provide any additional
clues (https://www.sourceware.org/ml/gdb-patches/2003-12/msg00478.html).
It is not clear whether this is still needed or not. This patch
assumes that whatever isue there was, the versions of Windows
we currently support no longer have it.
With that in mind, this commit fixes the issue by deleting the thread
when the inferior sends the exit-process event as opposed to deleting it
later, while starting a new inferior.
This also restores the printing of the thread-exit notification for
the main thread, which was missing before. Looking at the transcript
of the example shown above, we can see 4 thread creation notifications,
and only 3 notifications for thread exits. Now creation and exit
notifications are balanced.
In the handling of EXIT_THREAD_DEBUG_EVENT, the main_thread_id
check is removed because deemed unnecessary: The main thread was
introduced by a CREATE_PROCESS_DEBUG_EVENT, and thus the kernel
is expected to report its death via EXIT_PROCESS_DEBUG_EVENT.
And finally, because the behavior of delete_thread did change
(albeit when getting a value we probably never expected to receive),
this patch also adds a gdb_assert. The purpose is to provide some
immediate information in case there are other callers that mistakenly
call delete_thread with a NULL thread info. This can be useful
information when direct debugging of GDB isn't an option.
gdb/ChangeLog:
* thread.c (delete_thread_1): Add gdb_assert that THR is not
NULL. Initialize tpprev to NULL instead of assigning it
to NULL on the next statement.
* windows-nat.c (windows_delete_thread): Remove check for
main_thread_id before printing thread exit notifications.
(get_windows_debug_event) <EXIT_THREAD_DEBUG_EVENT>:
Remove thread ID check against main_thread_id.
<CREATE_PROCESS_DEBUG_EVENT>: Remove call to
windows_delete_thread.
<EXIT_PROCESS_DEBUG_EVENT>: Add call to windows_delete_thread.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RX: include - Add RXv3 support.
@ 2019-01-05 14:07 sergiodj+buildbot
2019-01-05 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-05 14:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 59581069b4d070ab0ac61047177ee119110d678e ***
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Branch: master
Commit: 59581069b4d070ab0ac61047177ee119110d678e
RX: include - Add RXv3 support.
* elf/rx.h (EF_RX_CPU_MASK): Update new bits.
(E_FLAG_RX_V3): New RXv3 type.
* opcode/rx.h (RX_Size): Add double size.
(RX_Operand_Type): Add double FPU registers.
(RX_Opcode_ID): Add new instuctions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix crash in "finish"
@ 2019-01-06 16:48 sergiodj+buildbot
2019-01-06 16:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 16:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f097f5ad808bd535236a65077f40e9d082a4ec0b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f097f5ad808bd535236a65077f40e9d082a4ec0b
Fix crash in "finish"
PR gdb/28155 notes a crash in "finish" that occurs with a particular
source file compiled by clang.
The bug is the typical gdb problem of a missing call to check_typedef.
clang emits a function whose return type is a typedef to void.
get_return_value asserts that the return type is not void, but the
callers were not using check_typedef first.
gdb/ChangeLog
2019-01-06 Tom Tromey <tom@tromey.com>
PR gdb/28155:
* python/py-finishbreakpoint.c (bpfinishpy_init): Use
check_typedef.
* infcmd.c (finish_command_fsm_should_stop): Use check_typedef.
(print_return_value): Likewise.
gdb/testsuite/ChangeLog
2019-01-06 Tom Tromey <tom@tromey.com>
PR gdb/28155:
* gdb.dwarf2/typedef-void-finish.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use std::vector in type stacks
@ 2019-01-06 17:00 sergiodj+buildbot
2019-01-06 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 17:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 02e12e3806bc60f66e3c446c4dfa9c06a400e604 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 02e12e3806bc60f66e3c446c4dfa9c06a400e604
Use std::vector in type stacks
This removes the use of VEC from parse.c and, at the same time,
removes some related cleanups from c-exp.y.
gdb/ChangeLog
2019-01-06 Tom Tromey <tom@tromey.com>
* parser-defs.h (type_ptr): Remove typedef. Don't declare VEC.
(union type_stack_elt) <typelist_val>: Now a pointer to
std::vector.
(type_stack_cleanup): Don't declare.
(push_typelist): Update.
* parse.c (pop_typelist): Return a std::vector.
(push_typelist): Take a std::vector.
(follow_types): Update. Do not free args.
(type_stack_cleanup): Remove.
* c-exp.y (struct c_parse_state): New.
(cpstate): New global.
(type_aggregate_p, exp, ptr_operator, parameter_typelist)
(nonempty_typelist): Update.
(func_mod): Create a new vector.
(c_parse): Create a c_parse_state.
(check_parameter_typelist): Do not delete params.
(function_method): Update. Do not delete type_list.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] s12z regen
@ 2019-01-07 4:49 sergiodj+buildbot
2019-01-07 4:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-07 4:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7e9ca91e006d57bd39838ca5196c1bd0db3ef170 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 7e9ca91e006d57bd39838ca5196c1bd0db3ef170
s12z regen
* configure: Regenerate.
* po/POTFILES.in: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert "Sync libiberty sources with master version in gcc repository. Updated stabs demangling and cxxfilt tests to match."
@ 2019-01-07 23:35 sergiodj+buildbot
2019-01-07 23:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-07 23:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ae80ffc55cd44fe9a5527403f07fee70307b2d7 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 4ae80ffc55cd44fe9a5527403f07fee70307b2d7
Revert "Sync libiberty sources with master version in gcc repository. Updated stabs demangling and cxxfilt tests to match."
The previous commit breaks the GDB build, which is still using functions
cplus_demangle_opname & co. Since removing these usages is not an
obvious fix, let's revert this patch until we get rid of them.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Fix skip of `\r` before `\n` in source output
@ 2019-01-08 12:34 sergiodj+buildbot
2019-01-08 12:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 62ea19c1000856c2633a952c52269fca4143931a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 62ea19c1000856c2633a952c52269fca4143931a
gdb: Fix skip of `\r` before `\n` in source output
In this commit:
commit 62f29fda90cf1d5a1899f57ef78452471c707fd6
Date: Tue Oct 9 22:21:05 2018 -0600
Highlight source code using GNU Source Highlight
A bug was introduced such that when displaying source code from a file
with lines `\r\n` GDB would print `^M` at the end of each line.
This caused a regression on the test gdb.fortran/nested-funcs.exp,
which happens to have `\r\n` line endings.
gdb/ChangeLog:
* source.c (print_source_lines_base): Fix skip of '\r' if next
character is '\n'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Handle requests to print source lines backward
@ 2019-01-08 12:49 sergiodj+buildbot
2019-01-08 12:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec98a4ad5bfcba33deb5cb786c023082adbbfb46 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ec98a4ad5bfcba33deb5cb786c023082adbbfb46
gdb: Handle requests to print source lines backward
...by which I mean from high line number to low, not, actually
backward character by character!
Commit:
commit 62f29fda90cf1d5a1899f57ef78452471c707fd6
Date: Tue Oct 9 22:21:05 2018 -0600
Highlight source code using GNU Source Highlight
introduced a regression in the test gdb.linespec/explicit.exp, in
which a request is made to GDB to print a reverse sequence of lines,
from +10 to -10 from the current line number. The expected behaviour
is that GDB prints nothing. The above commit changed this so that GDB
now prints:
Line number 32 out of range; /path/to/gdb/testsuite/gdb.linespec/explicit.c has 71 lines.
which is a little confusing.
This commit fixes the regression, and restores the behaviour that GDB
prints nothing.
While I was passing I noticed a call to `back` on a std::string that I
was concerned could be empty if the request for source lines returns
an empty string. I don't know if it would be possible for a request
for lines to return an empty string, I guess it should be impossible,
in which case, maybe this should be an assertion, but adding a `empty`
check, seems like an easy and cheap safety net.
gdb/ChangeLog:
* source.c (print_source_lines_base): Handle requests to print
reverse line number sequences, and guard against empty lines
string.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Move declarations from symtab.h to source.h
@ 2019-01-08 13:01 sergiodj+buildbot
2019-01-08 13:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 13:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 583068ca1d855abd09ac979c688f48b0ddaabe0f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 583068ca1d855abd09ac979c688f48b0ddaabe0f
gdb: Move declarations from symtab.h to source.h
Declarations for functions in source.c are split between source.h and
symtab.h. This commit moves the small number that are in symtab.h
into source.h. There's just one file that needs to add an include of
source.h in order to build.
I've moved the function header comments from source.c to source.h
inline with the recommended GDB style.
gdb/ChangeLog:
* source.c (select_source_symtab): Move header comment to
declaration in source.h.
(forget_cached_source_info_for_objfile): Likewise.
(forget_cached_source_info): Likewise.
(identify_source_line): Likewise.
* source.h (identify_source_line): Move declaration from symtab.h
and add comment from source.c
(print_source_lines): Likewise.
(forget_cached_source_info_for_objfile): Likewise.
(forget_cached_source_info): Likewise.
(select_source_symtab): Likewise.
(enum print_source_lines_flag): Move definition from symtab.h.
* symtab.h (identify_source_line): Move declaration to source.h.
(print_source_lines): Likewise.
(forget_cached_source_info_for_objfile): Likewise.
(forget_cached_source_info): Likewise.
(select_source_symtab): Likewise.
(enum print_source_lines_flag): Move definition to source.h.
* tui/tui-hooks.c: Add 'source.h' include.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Adjust bfd/warning.m4 egrep patterns
@ 2019-01-09 3:39 sergiodj+buildbot
2019-01-09 3:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 3:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3107326d3df950b0578a895bb835b2a8dfa8fab7 ***
Author: Andrew Paprocki <andrew@ishiboo.com>
Branch: master
Commit: 3107326d3df950b0578a895bb835b2a8dfa8fab7
Adjust bfd/warning.m4 egrep patterns
Adjust the `bfd/warning.m4` `egrep` patterns to handle preprocessors
that do not define `__GNUC__`, leaving the string in the output.
bfd/
* warning.m4: Adjust egrep pattern for non-GNU compilers.
* configure: Regenerate.
binutils/
* configure: Regenerate.
gas/
* configure: Regenerate.
gold/
* configure: Regenerate.
gprof/
* configure: Regenerate.
ld/
* configure: Regenerate.
opcodes/
* configure: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Remove interactive prompt case from mi_gdb_test
@ 2019-01-09 10:50 sergiodj+buildbot
2019-01-09 10:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 10:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d820d0c37beda1c29ff50bb1f2ebc1d23114d735 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d820d0c37beda1c29ff50bb1f2ebc1d23114d735
gdb/testsuite: Remove interactive prompt case from mi_gdb_test
I noticed that when running this test:
make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"
I would occasionally see some UNRESOLVED test results like this:
(gdb)
PASS: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint at main
Expecting: ^(kill[
]+)?(.*[
]+[(]gdb[)]
[ ]*)
kill
&"kill\n"
~"Kill the program being debugged? (y or n) [answered Y; input not from terminal]\n"
=thread-group-exited,id="i1"
ERROR: Got interactive prompt.
UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=separate:
The problem appears to be that the expect buffer fills up to include
the '(y or n)' prompt without including the following lines.
The pattern supplied by the outer test script is looking for the
following lines. As the following lines are not present then expect
matches on the interactive prompt case rather than the case for the
user supplied pattern.
The problem with this is that we are not really at an interactive
prompt, GDB is providing an answer for us and then moving on. When I
examine a successful run of the test the output from GDB is identical,
the only difference is where expect happens to buffer the output from
GDB.
This patch remove all special handling of the interactive prompt
case. This means that if we ever break GDB and start seeing an
unexpected interactive prompt then tests will rely on a timeout to
fail, instead of having dedicated interactive prompt detection, but
this solves the problem that an auto-answered prompt looks very
similar to an interactive prompt.
With this patch in place I can now leave the following loop running
indefinitely, where before it would fail usually after ~10
iterations.
while make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"; \
do /bin/true; \
done
gdb/testsuite/ChangeLog:
* lib/mi-support.exp (mi_gdb_test): Remove interactive prompt
case.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: Fix disassembly of indexed OPR operands with zero index.
@ 2019-01-09 19:35 sergiodj+buildbot
2019-01-09 19:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 19:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 39f286cd585226ad98c2cd94ee0f96988b3696ce ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 39f286cd585226ad98c2cd94ee0f96988b3696ce
S12Z: Fix disassembly of indexed OPR operands with zero index.
gas/
* testsuite/gas/s12z/jsr.s: New case.
* testsuite/gas/s12z/jsr.d: New case.
opcodes/
* s12z-dis.c (opr_emit_disassembly): Do not omit an index if it is
zero.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: Don't crash when disassembling invalid instructions.
@ 2019-01-09 20:05 sergiodj+buildbot
2019-01-09 20:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 20:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 448b8ca86519cce1216c9db5f0236604a6a33320 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 448b8ca86519cce1216c9db5f0236604a6a33320
S12Z: Don't crash when disassembling invalid instructions.
Check for null before dereferencing an operand pointer. Normally
this situation should never arise, but could happen if a "partial"
instruction is encountered at the end of a file or section.
opcodes/
* s12z-dis.c (print_insn_s12z): Do not dereference an
operand if it is null.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Merge from gcc: use "cannot" instead of "can not" in libiberty and include.
@ 2019-01-09 22:15 sergiodj+buildbot
2019-01-09 22:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 22:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a08da33eb3f69dec01810440a40c77ed56a79b69 ***
Author: Sandra Loosemore <sandra@codesourcery.com>
Branch: master
Commit: a08da33eb3f69dec01810440a40c77ed56a79b69
Merge from gcc: use "cannot" instead of "can not" in libiberty and include.
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
Merge from GCC:
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
PR other/16615 [2/5]
include/
* libiberty.h: Mechanically replace "can not" with "cannot".
* plugin-api.h: Likewise.
libiberty/
* cp-demangle.c: Mechanically replace "can not" with "cannot".
* floatformat.c: Likewise.
* strerror.c: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce all_objfiles and next_iterator
@ 2019-01-10 1:52 sergiodj+buildbot
2019-01-10 1:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 1:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 217083254a26b9e1dc42c43f573054740988c2cf ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 217083254a26b9e1dc42c43f573054740988c2cf
Introduce all_objfiles and next_iterator
This introduces an iterable object which can be used to iterate over
objfiles. It also introduces a generic "next_iterator", which can be
used to iterate over types that have a "next" field.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* common/next-iterator.h: New file.
* objfiles.h (class all_objfiles): New.
(struct objfile_iterator): New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_PSPACE_OBJFILES
@ 2019-01-10 2:24 sergiodj+buildbot
2019-01-10 2:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 2:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 99d89cdea6c296bdd94ce532350d139d3900ff78 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 99d89cdea6c296bdd94ce532350d139d3900ff78
Remove ALL_PSPACE_OBJFILES
This removes the ALL_PSPACE_OBJFILES macro in favor of ranged for
loops.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* probe.c (parse_probes_in_pspace): Use all_objfiles.
* guile/scm-progspace.c (gdbscm_progspace_objfiles): Use
all_objfiles.
* objfiles.h (ALL_PSPACE_OBJFILES): Remove.
* symmisc.c (print_symbol_bcache_statistics)
(print_objfile_statistics, maintenance_print_objfiles)
(maintenance_info_symtabs, maintenance_check_symtabs)
(maintenance_expand_symtabs, maintenance_info_line_tables): Use
all_objfiles.
* source.c (forget_cached_source_info): Use all_objfiles.
* symfile-debug.c (set_debug_symfile): Use all_objfiles.
* elfread.c (elf_gnu_ifunc_resolve_by_cache)
(elf_gnu_ifunc_resolve_by_got): Use all_objfiles.
* objfiles.c (update_section_map): Use all_objfiles.
(shared_objfile_contains_address_p): Likewise.
* psymtab.c (maintenance_info_psymtabs): Use all_objfiles.
* python/py-progspace.c (pspy_get_objfiles): Use all_objfiles.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove most uses of ALL_OBJFILES
@ 2019-01-10 2:36 sergiodj+buildbot
2019-01-10 2:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 2:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aed57c537116ae91f553ac835b3f96d1f87b3bb0 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: aed57c537116ae91f553ac835b3f96d1f87b3bb0
Remove most uses of ALL_OBJFILES
This removes most uses of ALL_OBJFILES, replacing them with ranged for
loops. The remaining uses are all in macros, and will be removed in
subsequent patches.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.c (iterate_over_symtabs, matching_obj_sections)
(expand_symtab_containing_pc, lookup_static_symbol)
(basic_lookup_transparent_type, find_pc_sect_compunit_symtab)
(find_symbol_at_address, find_line_symtab, find_main_name): Use
all_objfiles.
* probe.c (find_probe_by_pc, collect_probes): Use all_objfiles.
* breakpoint.c (create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Use all_objfiles.
* linux-thread-db.c (try_thread_db_load_from_pdir)
(has_libpthread): Use all_objfiles.
* ada-lang.c (add_nonlocal_symbols): Use all_objfiles.
* linespec.c (iterate_over_all_matching_symtabs)
(search_minsyms_for_name): Use all_objfiles.
* maint.c (maintenance_info_sections): Use all_objfiles.
* main.c (captured_main_1): Use all_objfiles.
* spu-tdep.c (spu_objfile_from_frame): Use all_objfiles.
* guile/scm-objfile.c (gdbscm_objfiles): Use all_objfiles.
* guile/scm-pretty-print.c
(ppscm_find_pretty_printer_from_objfiles): Use all_objfiles.
* solib-spu.c (append_ocl_sos): Use all_objfiles.
* symmisc.c (maintenance_print_symbols): Use all_objfiles.
(maintenance_print_msymbols): Use all_objfiles.
* source.c (select_source_symtab): Use all_objfiles.
* jit.c (jit_find_objf_with_entry_addr): Use all_objfiles.
* symfile.c (remove_symbol_file_command)
(expand_symtabs_matching, map_symbol_filenames): Use
all_objfiles.
* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created): Use
all_objfiles.
* dwarf2-frame.c (dwarf2_frame_find_fde): Use all_objfiles.
* objc-lang.c (find_methods): Use all_objfiles.
* objfiles.c (have_partial_symbols, have_full_symbols)
(have_minimal_symbols, qsort_cmp)
(default_iterate_over_objfiles_in_search_order): Use
all_objfiles.
* hppa-tdep.c (find_unwind_entry): Use all_objfiles.
* psymtab.c (maintenance_print_psymbols): Use all_objfiles.
(maintenance_check_psymtabs): Use all_objfiles.
(ALL_PSYMTABS): Remove.
* compile/compile-object-run.c (do_module_cleanup): Use
all_objfiles.
* blockframe.c (find_pc_partial_function): Use all_objfiles.
* cp-support.c (add_symbol_overload_list_qualified): Use
all_objfiles.
* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
Use all_objfiles.
* dwarf-index-write.c (save_gdb_index_command): Use all_objfiles.
* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): Use
all_objfiles.
* python/py-objfile.c (objfpy_lookup_objfile_by_name)
(objfpy_lookup_objfile_by_build_id): Use all_objfiles.
* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
Uses all_objfiles.
* solib.c (solib_read_symbols): Use all_objfiles
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS
@ 2019-01-10 2:59 sergiodj+buildbot
2019-01-10 2:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 2:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5325b9bf1ee283c40f076334eb3ea66e1f0a6ade ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5325b9bf1ee283c40f076334eb3ea66e1f0a6ade
Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS
This removes the ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS macros,
replacing their uses with ranged for loops.
In a couple of spots, a new declaration was needed in order to work
around shadowing; these are just temporary and are removed in a
subsequent patch.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.c (search_symbols)
(default_collect_symbol_completion_matches_break_on): Use
objfile_msymbols.
* ada-lang.c (ada_lookup_simple_minsym)
(ada_collect_symbol_completion_matches): Use objfile_msymbols.
* minsyms.c (find_solib_trampoline_target): Use objfile_msymbols.
* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Use
objfile_msymbols.
* coffread.c (coff_symfile_read): Use objfile_msymbols.
* symmisc.c (dump_msymbols): Use objfile_msymbols.
* objc-lang.c (find_methods): Use objfile_msymbols.
(info_selectors_command, info_classes_command): Likewise.
* stabsread.c (scan_file_globals): Use objfile_msymbols.
* objfiles.h (class objfile_msymbols): New.
(ALL_OBJFILE_MSYMBOLS): Remove.
(ALL_MSYMBOLS): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_COMPUNITS
@ 2019-01-10 3:12 sergiodj+buildbot
2019-01-10 3:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 3:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 592553c46959c98bf5981ad245d0fbb97f373d2a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 592553c46959c98bf5981ad245d0fbb97f373d2a
Remove ALL_OBJFILE_COMPUNITS
This removes ALL_OBJFILE_COMPUNITS, replacing its uses with ranged for
loops. Because ALL_COMPUNITS is also updated, in some places a
declaration must be deleted to avoid shadowing.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* source.c (select_source_symtab)
(forget_cached_source_info_for_objfile): Remove declaration.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
declaration.
* maint.c (count_symtabs_and_blocks): Remove declaration.
* cp-support.c (add_symbol_overload_list_qualified): Remove
declaration.
* coffread.c (coff_symtab_read): Remove declaration.
* symtab.c (lookup_symbol_in_objfile_symtabs)
(basic_lookup_transparent_type_1): Use objfile_compunits.
(lookup_objfile_from_block, find_pc_sect_compunit_symtab)
(info_sources_command, search_symbols)
(default_collect_symbol_completion_matches_break_on)
(make_source_files_completion_list): Remove declaration.
* ada-lang.c (add_nonlocal_symbols): Use objfile_compunits.
(ada_collect_symbol_completion_matches)
(ada_add_global_exceptions): Remove declaration.
* linespec.c (iterate_over_all_matching_symtabs): Use
objfile_compunits.
* objfiles.h (ALL_OBJFILE_COMPUNITS): Remove.
(class objfile_compunits): New.
(ALL_COMPUNITS): Use objfile_compunits.
* symmisc.c (print_objfile_statistics, maintenance_info_symtabs)
(maintenance_check_symtabs, maintenance_info_line_tables): Use
objfile_compunits.
* objfiles.c (objfile_relocate1): Use objfile_compunits.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_COMPUNITS
@ 2019-01-10 3:25 sergiodj+buildbot
2019-01-10 3:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 3:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d8aeb77f040ced7d37ab83f032b2e4ded2c81ca5 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d8aeb77f040ced7d37ab83f032b2e4ded2c81ca5
Remove ALL_COMPUNITS
This removes the ALL_COMPUNITS, replacing its uses with two nested
ranged for loops.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.c (lookup_objfile_from_block)
(find_pc_sect_compunit_symtab, search_symbols)
(default_collect_symbol_completion_matches_break_on): Use
objfile_compunits.
* objfiles.h (ALL_COMPUNITS): Remove.
* maint.c (count_symtabs_and_blocks): Use objfile_compunits.
* cp-support.c (add_symbol_overload_list_qualified): Use
objfile_compunits.
* ada-lang.c (ada_collect_symbol_completion_matches)
(ada_add_global_exceptions): Use objfile_compunits.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_COMPUNIT_FILETABS
@ 2019-01-10 3:56 sergiodj+buildbot
2019-01-10 3:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 3:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5accd1a07e080c386918da413e0f9e90c4cab58a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5accd1a07e080c386918da413e0f9e90c4cab58a
Remove ALL_COMPUNIT_FILETABS
This removes ALL_COMPUNIT_FILETABS, replacing its uses with ranged for
loops.
Because this is still used in the ALL_OBJFILE_FILETABS macro, in some
places a declaration had to be removed or renamed to avoid shadowing.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.h (ALL_COMPUNIT_FILETABS): Remove.
(compunit_filetabs): New.
* symtab.c (iterate_over_some_symtabs, find_pc_sect_line): Use
compunit_filetabs.
(info_sources_command, make_source_files_completion_list): Remove
declaration.
* symmisc.c (print_objfile_statistics, dump_objfile)
(maintenance_print_symbols): Remove declaration.
(maintenance_info_symtabs): Use compunit_filetabs.
(maintenance_info_line_tables): Likewise.
* source.c (select_source_symtab): Change local variable name.
(forget_cached_source_info_for_objfile): Remove declaration.
* objfiles.h (ALL_OBJFILE_FILETABS): Use compunit_filetabs.
* objfiles.c (objfile_relocate1): Remove declaration.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
declaration.
* maint.c (count_symtabs_and_blocks): Use compunit_filetabs.
* coffread.c (coff_symtab_read): Remove declaration.
* buildsym.c (buildsym_compunit::end_symtab_with_blockvector): Use
compunit_filetabs.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILES and ALL_FILETABS
@ 2019-01-10 4:18 sergiodj+buildbot
2019-01-10 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 4:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8b31193aa9752ba60d63cedaba943370d76ce543 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8b31193aa9752ba60d63cedaba943370d76ce543
Remove ALL_OBJFILES and ALL_FILETABS
This removes the ALL_OBJFILES and ALL_FILETABS macros, replacing them
with ranged for loops.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.c (find_line_symtab, info_sources_command)
(make_source_files_completion_list): Use objfile_compunits.
* source.c (select_source_symtab): Use objfile_compunits.
* objfiles.h (struct objfile): Update comment.
(ALL_OBJFILES): Remove.
(ALL_FILETABS): Remove.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Use
objfile_compunits.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_OBJSECTIONS
@ 2019-01-10 4:31 sergiodj+buildbot
2019-01-10 4:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 4:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3b9d3ac236dcc418619785e0660fc0063e6489b8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3b9d3ac236dcc418619785e0660fc0063e6489b8
Remove ALL_OBJSECTIONS
This removes the ALL_OBJSECTIONS macro, replacing its uses with ranged
for loops.
The special code in this macro for noticing a "break" from the inner
loop was only needed in a single place; so rather than try to
replicate this, I've simply replaced that use with a "goto".
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symfile.c (overlay_invalidate_all, find_pc_overlay)
(find_pc_mapped_section, list_overlays_command)
(map_overlay_command, unmap_overlay_command)
(simple_overlay_update): Use all_objfiles.
* spu-tdep.c (spu_overlay_update): Use all_objfiles.
* printcmd.c (info_symbol_command): Use all_objfiles.
* objfiles.h (ALL_OBJSECTIONS): Remove.
* maint.c (maintenance_translate_address): Use all_objfiles.
* gcore.c (gcore_create_callback): Use all_objfiles.
(objfile_find_memory_regions): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS
@ 2019-01-10 4:42 sergiodj+buildbot
2019-01-10 4:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 4:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b22a7c6ab6173fe4fa1352e14d00a234bbf50346 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b22a7c6ab6173fe4fa1352e14d00a234bbf50346
Remove ALL_OBJFILE_PSYMTABS
This removes the ALL_OBJFILE_PSYMTABS macro, replacing its uses with
ranged for loops.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* dbxread.c (dbx_end_psymtab): Use objfile_psymtabs.
* mdebugread.c (parse_partial_symbols): Use objfile_psymtabs.
* psymtab.c (ALL_OBJFILE_PSYMTABS_REQUIRED): Remove.
(psym_map_symtabs_matching_filename, find_pc_sect_psymtab)
(psym_lookup_symbol, psym_find_last_source_symtab)
(psym_forget_cached_source_info, psym_print_stats)
(psym_expand_symtabs_for_function, psym_expand_all_symtabs)
(psym_expand_symtabs_with_fullname, psym_map_symbol_filenames)
(psym_map_matching_symbols, psym_expand_symtabs_matching)
(psym_find_compunit_symtab_by_address)
(maintenance_print_psymbols, maintenance_info_psymtabs)
(maintenance_check_psymtabs): Use ranged for.
* psymtab.h (class objfile_psymtabs): New.
(require_partial_symbols): Return objfile_psymtabs.
* psympriv.h (ALL_OBJFILE_PSYMTABS): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Sync libiberty sources with gcc master versions.
@ 2019-01-10 10:21 sergiodj+buildbot
2019-01-10 10:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 10:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1910070b298052d7ca8e4024891465824588c1e9 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 1910070b298052d7ca8e4024891465824588c1e9
Sync libiberty sources with gcc master versions.
. * libiberty: Sync with gcc. Bring in:
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
PR other/16615
* cp-demangle.c: Mechanically replace "can not" with "cannot".
* floatformat.c: Likewise.
* strerror.c: Likewise.
2018-12-22 Jason Merrill <jason@redhat.com>
Remove support for demangling GCC 2.x era mangling schemes.
* cplus-dem.c: Remove cplus_mangle_opname, cplus_demangle_opname,
internal_cplus_demangle, and all subroutines.
(libiberty_demanglers): Remove entries for ancient GNU (pre-3.0),
Lucid, ARM, HP, and EDG demangling styles.
(cplus_demangle): Remove 'work' variable. Don't call
internal_cplus_demangle.
include * Merge from GCC:
2018-12-22 Jason Merrill <jason@redhat.com>
* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
ARM, HP, and EDG demangling styles.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move some declarations to mdebugread.h
@ 2019-01-10 14:26 sergiodj+buildbot
2019-01-10 14:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0e8f53badb3df16f4104890395d9324a5bcf568d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0e8f53badb3df16f4104890395d9324a5bcf568d
Move some declarations to mdebugread.h
This moves a couple of mdebugread-related declarations from symfile.h
to mdebugread.h, which seemed more appropriate.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* symfile.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
Don't declare.
* mipsread.c: Include mdebugread.h.
* mdebugread.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
Declare.
* elfread.c: Include mdebugread.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some unneeded psymtab initializations
@ 2019-01-10 14:38 sergiodj+buildbot
2019-01-10 14:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT baa62830ed84d45b414ff677b7bce900a21923ce ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: baa62830ed84d45b414ff677b7bce900a21923ce
Remove some unneeded psymtab initializations
allocate_psymtab has long cleared the new psymtab that is returned.
This patch documents this behavior and then removes some redundant
initializations.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_end_psymtab): Remove some initializations.
* psymtab.c (allocate_psymtab): Add comment.
* psympriv.h (allocate_psymtab): Add comment.
* dwarf2read.c (dwarf2_create_include_psymtab): Remove some
initializations.
* dbxread.c (dbx_end_psymtab): Remove some initializations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove parameters from start_psymtab_common
@ 2019-01-10 14:53 sergiodj+buildbot
2019-01-10 14:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 939652a515a10654b16b97e7e2ea39c013714850 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 939652a515a10654b16b97e7e2ea39c013714850
Remove parameters from start_psymtab_common
start_psymtab_common takes references to the global_psymbols and
static_psymbols vectors, but it also has an objfile parameter. This
is redundant, so this patch simplifies the function by removing those
reference parameters.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_start_psymtab): Remove global_psymbols and
static_psymbols parameters.
(scan_xcoff_symtab): Update.
* psymtab.c (start_psymtab_common): Remove global_psymbols and
static_psymbols parameters.
* psympriv.h (start_psymtab_common): Update.
* mdebugread.c (parse_partial_symbols): Update.
* dwarf2read.c (create_partial_symtab): Update.
* dbxread.c (read_dbx_symtab): Update.
(start_psymtab): Remove global_psymbols and static_psymbols
parameters.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change add_psymbol_to_list to use an enum
@ 2019-01-10 15:05 sergiodj+buildbot
2019-01-10 15:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 75aedd27e6a2c58734ab44cc7cad8491f19d059a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 75aedd27e6a2c58734ab44cc7cad8491f19d059a
Change add_psymbol_to_list to use an enum
This changes add_psymbol_to_list to use an enum, rather than a pointer
to a vector, to decide where to put the new symbol. This reduces the
number of direct references to the static_psymbols and global_psymbols
members of the objfile, which is handy in a later patch.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* xcoffread.c (scan_xcoff_symtab): Update.
* psymtab.c (add_psymbol_to_list): Replace "list" parameter with
"where".
* mdebugread.c (parse_partial_symbols)
(handle_psymbol_enumerators): Update.
* dwarf2read.c (add_partial_symbol, load_partial_dies): Update.
* dbxread.c (read_dbx_symtab): Update.
* psympriv.h (psymbol_placement): New enum.
(add_psymbol_to_list): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify calls to init_psymbol_list
@ 2019-01-10 15:18 sergiodj+buildbot
2019-01-10 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6eee24ce30f8e95335c2ad8586f9a64398eb2cd4 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6eee24ce30f8e95335c2ad8586f9a64398eb2cd4
Simplify calls to init_psymbol_list
Existing callers to init_psymbol_list were checking to see if psymbols
had already been initialized. It seemed better to me to do this check
directly in init_psymbol_list, simplifying the callers.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_initial_scan): Unconditionally call
init_psymbol_list.
* psymtab.c (init_psymbol_list): Do nothing if already called.
* psympriv.h (init_psymbol_list): Add comment.
* dwarf2read.c (dwarf2_build_psymtabs): Unconditionally call
init_psymbol_list.
* dbxread.c (dbx_symfile_read): Unconditionally call
init_psymbol_list.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change create_demangled_names_hash to take an objfile_per_bfd_storage
@ 2019-01-10 15:30 sergiodj+buildbot
2019-01-10 15:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0f14768a2a6ba894ae81010e8e70c99ecdb39a73 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0f14768a2a6ba894ae81010e8e70c99ecdb39a73
Change create_demangled_names_hash to take an objfile_per_bfd_storage
This changes create_demangled_names_hash to take an
objfile_per_bfd_storage parameter. This makes it clearer where it is
storing the objects it allocates.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* symtab.c (create_demangled_names_hash): Change argument to be an
objfile_per_bfd_storage.
(symbol_set_names): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change symbol_set_names to take an objfile_per_bfd_storage
@ 2019-01-10 15:41 sergiodj+buildbot
2019-01-10 15:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 15:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1d94a5a36a614cf7ebe259d7660f4fa725f38ee2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1d94a5a36a614cf7ebe259d7660f4fa725f38ee2
Change symbol_set_names to take an objfile_per_bfd_storage
This changes symbol_set_names to take an objfile_per_bfd_storage
argument, and updates the users. It also changes PSYMBOL_SET_NAMES to
take this argument directly; I feel this clarifies the storage
location of objects created in psymtab.c.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* symtab.h (SYMBOL_SET_NAMES): Update.
(symbol_set_names): Update.
(MSYMBOL_SET_NAMES): Update.
* symtab.c (symbol_set_names): Change argument to be an
objfile_per_bfd_storage.
* psymtab.c (add_psymbol_to_bcache): Update.
* psympriv.h (PSYMBOL_SET_NAMES): Take per_bfd argument.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce objfile::reset_psymtabs
@ 2019-01-10 16:06 sergiodj+buildbot
2019-01-10 16:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6d6a12bf87bc6dd89b2533b5d0490fdcc00df9ad ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6d6a12bf87bc6dd89b2533b5d0490fdcc00df9ad
Introduce objfile::reset_psymtabs
This introduces a new method, objfile::reset_psymtabs, and changes
reread_symbols to use it. This method simply destroys the existing
partial symbols and recreates the psymtab_storage object.
This patch fixes a latent bug -- namely, that reread_symbols should
clear objfile::psymbol_map, but does not. I can submit that
separately if you'd prefer.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* symfile.c (reread_symbols): Call objfile->reset_psymtabs.
* objfiles.h (objfile::reset_psymtabs): New method.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Allocate the address map on the psymtab obstack
@ 2019-01-10 16:18 sergiodj+buildbot
2019-01-10 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5923a04c0c489054d275e3b0441626ce1ae7344a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5923a04c0c489054d275e3b0441626ce1ae7344a
Allocate the address map on the psymtab obstack
After this patch, the psymtab address map will now be allocated on the
psymtab obstack rather than the objfile obstack. This also changes
the psymtab storage object to make the obstack private; this will be
used later.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* psymtab.h (psymtab_storage::obstack): New method.
<m_obstack>: Rename from obstack; now private.
* psymtab.c (psymtab_storage): Update.
* dwarf2read.c (create_addrmap_from_index)
(create_addrmap_from_aranges, dwarf2_build_psymtabs_hard):
Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move more allocations to psymtab obstack
@ 2019-01-10 16:31 sergiodj+buildbot
2019-01-10 16:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5af70966484d6b26fa7824c0cda110140cd4959b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5af70966484d6b26fa7824c0cda110140cd4959b
Move more allocations to psymtab obstack
This moves a couple more psymtab-related allocations to the psymtab
obstack.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* psymtab.c (add_psymbol_to_bcache): Pass psymtab obstack to
PSYMBOL_SET_LANGUAGE.
(allocate_psymtab): Allocate psymtab on the psymtab obstack.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add psymtab_storage::allocate_dependencies
@ 2019-01-10 16:43 sergiodj+buildbot
2019-01-10 16:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 16:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9342b62885d5119593fa4330924e031e14c6406 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a9342b62885d5119593fa4330924e031e14c6406
Add psymtab_storage::allocate_dependencies
This adds a new method to psymtab_storage to allocate storage for
psymtab dependencies, then changes the symbol readers to use it. This
has the effect of moving the storage to the psymtab storage obstack.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_end_psymtab): Use allocate_dependencies.
* psymtab.h (psymtab_storage::allocate_dependencies): New method.
* mdebugread.c (parse_partial_symbols): Use
allocate_dependencies.
* dwarf2read.c (dwarf2_create_include_psymtab): Use
allocate_dependencies.
(process_psymtab_comp_unit_reader)
(build_type_psymtab_dependencies): Likewise.
* dbxread.c (dbx_end_psymtab): Use allocate_dependencies.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move psymtabs to their own obstack
@ 2019-01-10 17:09 sergiodj+buildbot
2019-01-10 17:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 17:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8d7bcccb82d9a7efccd75d9552d007c62031e855 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8d7bcccb82d9a7efccd75d9552d007c62031e855
Move psymtabs to their own obstack
Previously, the psymtab obstack was just a pointer to the objfile
obstack. This patch changes psymtabs to use their own obstack,
instead. A gdb::optional is used to avoid unnecessary allocation when
the obstack is not needed.
After this patch, the psymtab code lifetime model is that, in the core
psymtab code, objects allocated on the psymtab obstack may point to
other such objects, or to objects on the per-BFD obstack -- but never
to the objfile obstack.
Note however that this invariant is only obeyed the core psymtab code,
and even there not quite fully: there is still a link from the psymtab
to the full symtab.
Symbol readers are free to work however they like; and in particular,
even after this patch, in practice all symbol readers violate this
invariant via the read_symtab_private field.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* objfiles.h (objfile::reset_psymtabs): Update.
* objfiles.c (objfile::objfile): Update.
* psymtab.h (psymtab_storage::obstack): Update.
(psymtab_storage::m_obstack): Use gdb::optional.
(class psymtab_storage): Update comment. Remove objfile
parameter.
* psymtab.c (psymtab_storage::psymtab_storage): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak in mdebugread.c
@ 2019-01-10 18:20 sergiodj+buildbot
2019-01-10 18:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 18:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 36cb72375cc371b786ceaec588ec26f8c55ae2ec ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 36cb72375cc371b786ceaec588ec26f8c55ae2ec
Fix leak in mdebugread.c
Coverity points out that all the "continue;" statements in the switch
case in parse_partial_symbols leak STABSTRING. This is because we
only release STABSTRING at the end of the scope, with:
if (stabstring
&& stabstring != debug_info->ss + fh->issBase + sh.iss)
xfree (stabstring);
but that bit of code is skipped if a case in the switch statement ends
with "continue".
Fix this by using gdb::unique_xmalloc_ptr to manage the heap-allocated
version of 'stabsstring'.
I don't know how to test this.
gdb/ChangeLog:
2019-01-10 Pedro Alves <palves@redhat.com>
* mdebugread.c (parse_partial_symbols): Use
gdb::unique_xmalloc_ptr to manage heap-allocated 'stabsstring'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak in solib-target.c:library_list_start_library
@ 2019-01-10 18:32 sergiodj+buildbot
2019-01-10 18:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 18:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2f667667e24357ff54701f3e046820cf08d649cf ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 2f667667e24357ff54701f3e046820cf08d649cf
Fix leak in solib-target.c:library_list_start_library
lm_info_target::name is nowadays std::string, so we're leaking the
result of xstrdup.
gdb/ChangeLog:
2019-01-10 Pedro Alves <palves@redhat.com>
* solib-target.c (library_list_start_library): Don't xstrdup name.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix tracepoint.c:parse_tracepoint_definition leak (and one more)
@ 2019-01-10 18:44 sergiodj+buildbot
2019-01-10 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 18:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 67aa1f3c2881e607081d9e1b57be3e7544c2c45c ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 67aa1f3c2881e607081d9e1b57be3e7544c2c45c
Fix tracepoint.c:parse_tracepoint_definition leak (and one more)
Coverity points out that gdb/tracepoint.c:parse_tracepoint_definition
can leak 'cond' in this line:
cond = (char *) xmalloc (2 * xlen + 1);
That can leak because we're in a loop and 'cond' may have already been
xmalloc'ed into in a previous iteration. That won't normally happen,
because we don't expect to see a tracepoint definition with multiple
conditions listed, but, it doesn't hurt to be pedantically correct,
in case some stub manages to send something odd back to GDB.
At first I thought I'd just replace the xmalloc call with:
cond = (char *) xrealloc (cond, 2 * xlen + 1);
and be done with it. However, my pedantic self realizes that
warning() can throw as well (due to pagination + Ctrl-C), so I fixed
it using gdb::unique_xmalloc_ptr instead.
While doing this, I noticed that these vectors in struct uploaded_tp:
std::vector<char *> actions;
std::vector<char *> step_actions;
hold heap-allocated strings, but nothing is freeing the strings,
AFAICS.
So I ended up switching all the heap-allocated strings in uploaded_tp
to unique pointers. This patch is the result of that.
I also wrote an alternative, but similar patch that uses std::string
throughout instead of gdb::unique_xmalloc_ptr, but in the end reverted
it because the code didn't look that much better, and I kind of
dislike replacing pointers with fat std::string's (3 or 4 times the
size of a pointer) in structures.
gdb/ChangeLog:
2019-01-10 Pedro Alves <palves@redhat.com>
* breakpoint.c (read_uploaded_action)
(create_tracepoint_from_upload): Adjust to use
gdb::unique_xmalloc_ptr.
* ctf.c (ctf_write_uploaded_tp):
(SET_ARRAY_FIELD): Use emplace_back.
(SET_STRING_FIELD): Adjust to use gdb::unique_xmalloc_ptr.
* tracefile-tfile.c (tfile_write_uploaded_tp):
* tracepoint.c (parse_tracepoint_definition): Adjust to use
gdb::unique_xmalloc_ptr.
* tracepoint.h (struct uploaded_tp) <cond, actions, step_actions,
at_string, cond_string, cmd_strings>: Replace char pointers
with gdb::unique_xmalloc_ptr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/23712: Introduce multidictionary's
@ 2019-01-10 22:27 sergiodj+buildbot
2019-01-10 22:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 22:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c7748ee9ceb5a394658cd07aeb0445924599e442 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: c7748ee9ceb5a394658cd07aeb0445924599e442
gdb/23712: Introduce multidictionary's
gdb/23712 is a new manifestation of the now-infamous (at least to me)
symtab/23010 assertion failure (DICT_LANGUAGE == SYMBOL_LANGAUGE).
An example of the problem (using test case from symtab/23010):
Reading symbols from /home/rdiez/rdiez/arduino/JtagDue/BuildOutput/JtagDue-obj-release/firmware.elf...done.
(gdb) p SysTick_Handler
dwarf2read.c:9715: internal-error: void dw2_add_symbol_to_list(symbol*, pending**): Assertion `(*listhead) == NULL || (SYMBOL_LANGUAGE ((*listhead)->symbol[0]) == SYMBOL_LANGUAGE (symbol))' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
This assertion was added specifically to catch this condition (of adding
symbols of different languages to a single pending list).
The problems we're now seeing on systems utilizing DWARF debugging seem to
be caused by the use of LTO, which adds a CU with an artificial DIE of
language C99 which references DIEs in other CUs of language C++.
Thus, we create a dictionary containing symbols of C99 but end up
stuffing C++ symbols into it, and the dw2_add_symbol_to_list triggers.
The approach taken here to fix this is to introduce multi-language
dictionaries to "replace" the standard, single-language dictionaries
used today.
Note to reviewers: This patch introduces some temporary functions to
aide with review. This and other artifacts (such as "See dictionary.h"
which appear incorrect) will all be valid at the end of the series.
This first patch introduces the new multidictionary and its API (which
is, by design, identical to the old dictionary interface). It also
mutates dict_create_hashed and dict_create_linear so that they take
a std::vector instead of the usual struct pending linked list. This will
be needed later on.
This patch does /not/ actually enable multidictionary's. That is left
for a subsequent patch in the series.
I've done exhaustive performance testing with this approach, and I've
attempted to minimize the overhead for the (overwhelmingly) most common
one-language scenario.
On average, a -g3 -O0 GDB (the one we developers use) will see
approximately a 4% slowdown when initially reading symbols. [I've
tested only GDB and firefox with -readnow.] When using -O2, this
difference shrinks to ~0.5%. Since a number of runs with these
patches actually run /faster/ than unpatched GDB, I conclude that
these tests have at least a 0.5% error margin.
On our own gdb.perf test suite, again, results appear to be pretty
negligible. Differences to unpatched GDB range from -7.8% (yes,
patched version is again faster than unpatched) to 27%. All tests
lying outside "negligible," such as the 27% slowdown, involve a total
run time of 0.0007 (or less) with smaller numbers of CUs/DSOs (usually 10
or 100). In all cases, the follow-up tests with more CUs/DSOs is never
more than 3% difference to the baseline, unpatched GDB.
In my opinion, these results are satisfactory.
gdb/ChangeLog:
PR gdb/23712
PR symtab/23010
* dictionary.c: Include unordered_map.
(pending_to_vector): New function.
(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
Rewrite the non-"_1" functions to take vector instead
of linked list.
(dict_create_hashed, dict_create_linear, dict_add_pending): Use the
"new" _1 versions of the same name.
(multidictionary): Define.
(std::hash<enum language): New definition.
(collate_pending_symbols_by_language, mdict_create_hashed)
(mdict_create_hashed_expandable, mdict_create_linear)
(mdict_create_linear_expandable, mdict_free)
(find_language_dictionary, create_new_language_dictionary)
(mdict_add_symbol, mdict_add_pending, mdict_iterator_first)
(mdict_iterator_next, mdict_iter_match_first, mdict_iter_match_next)
(mdict_size, mdict_empty): New functions.
* dictionary.h (mdict_iterator): Define.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/23712: Use new multidictionary API
@ 2019-01-10 22:39 sergiodj+buildbot
2019-01-10 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 22:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b026f59345a336cabf74719fce9f96cab7c7ab4d ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: b026f59345a336cabf74719fce9f96cab7c7ab4d
gdb/23712: Use new multidictionary API
This patch builds on the previous by enabling the `new' multidictionary
API. A lot of the hunks are simply textual replacements of "dict_"
with "mdict_" and similar transformations.
A word of warning, even with the use of multidictionaries, the code
still does not satisfactorily fix the reported problems with gdb/23712
(or gdb/23010). We still have additional changes to make before that
happens.
gdb/ChangeLog:
PR gdb/23712
PR symtab/23010
* dictionary.h (struct dictionary): Replace declaration with
multidictionary.
(dict_create_hashed, dict_create_hashed_expandable)
(dict_create_linear, dict_create_linear_expandable)
(dict_free, dict_add_symbol, dict_add_pending, dict_empty)
(dict_iterator_first, dict_iterator_next, dict_iter_match_first)
(dict_iter_match_next, dict_size): Rename to "mdict_" versions
taking multidictionary argument.
[ALL_DICT_SYMBOLS]: Update for multidictionary.
* block.h (struct block) <dict>: Change to multidictionary
and rename `multidict'.
* block.c, buildsym.c, jit.c, mdebugread.c, objfiles.c,
symmisc.c: Update all dictionary references to multidictionary.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list
@ 2019-01-10 23:02 sergiodj+buildbot
2019-01-10 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 23:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d3cb68081112a4976979df3f8eae7ca926e76519 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: d3cb68081112a4976979df3f8eae7ca926e76519
gdb/23712: Remove dw2_add_symbol_to_list
Finally, we can remove dw2_add_symbol_to_list since the wrapper function
originally introduced to catch this multi-language scenario is no longer
needed. With multi-language dictionaries, we can now support adding
symbols of multiple languages, negating the need for the assertion
entirely.
This patch should now fix gdb/23712 (and symtab/23010). At least it will
if the NULL buildsym_compunit problem doesn't strike first (see gdb/23773).
gdb/ChangeLog:
PR gdb/23712
PR symtab/23010
* dwarf2read.c (dw2_add_symbol_to_list): Remove.
(fixup_go_packaging, new_symbol): Use add_symbol_to_list.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace inf_threads_iterator with next_iterator
@ 2019-01-10 23:27 sergiodj+buildbot
2019-01-10 23:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 23:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7cf47dc46635d8ec14c315e1f17480b56f4808b8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7cf47dc46635d8ec14c315e1f17480b56f4808b8
Replace inf_threads_iterator with next_iterator
This changes inf_threads_iterator and some range adapters in
thread-iter.h to use next_iterator and next_adapter instead.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* thread-iter.h (inf_threads_iterator): Use next_iterator.
(basic_inf_threads_range): Remove.
(inf_threads_range, inf_non_exited_threads_range)
(safe_inf_threads_range): Use next_adapter.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix 'obj' may be used uninitialized warning in symtab.c:matching_obj_sections.
@ 2019-01-12 7:17 sergiodj+buildbot
2019-01-12 7:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 7:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d7c67bfbde3b948704b46f8a6fd479e98ecf2c8 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 9d7c67bfbde3b948704b46f8a6fd479e98ecf2c8
Fix 'obj' may be used uninitialized warning in symtab.c:matching_obj_sections.
Fix warning:
gdb/symtab.c: In function int matching_obj_sections(obj_section*, obj_section*):
gdb/symtab.c:1024:12: warning: obj may be used uninitialized in this function [-Wmaybe-uninitialized]
if (obj->separate_debug_objfile_backlink != NULL
2019-01-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* symtab.c (matching_obj_sections): Initialize obj,
declare it closer to its usage.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Don't allow paths to appear in test name
@ 2019-01-12 11:31 sergiodj+buildbot
2019-01-12 11:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 11:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6eb6fb6787430a2589e0382aa3e2e4f6f2a0a600 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6eb6fb6787430a2589e0382aa3e2e4f6f2a0a600
gdb/testsuite: Don't allow paths to appear in test name
Having paths in the test names makes it harder to compare results
between two runs in different directories. Give the test a name so
that the path doesn't appear.
gdb/ChangeLog:
* gdb.base/style.exp: Don't include path in testname.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add RXv3 instructions.
@ 2019-01-12 16:44 sergiodj+buildbot
2019-01-12 16:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 16:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ce8c66d19abec8a768add7f6102e856157a3952 ***
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Branch: master
Commit: 4ce8c66d19abec8a768add7f6102e856157a3952
Add RXv3 instructions.
* rx-decode.opc (DSIZE): New. double size.
(_ld): New. dmov size attribute.
(PSCALE): Add double size.
(DCR, DDR, DDRH, DDRL, DCND): New. Double FPU registers.
(SCR, SDR, SDRH, SDRL): Likewise.
(S2DR, S2CR): Likewise.
(SDD): New. double displacement.
(DL): New. Set dmov size attribute.
(rx_decode_opcode): Add RXv3 instructions.
* rx-decode.c: Regenerate.
* rx-dis.c (size_names): Add double entry.
(opsize_names): Likewise.
(double_register_names): New. Double FPU registers.
(double_register_high_names): Likewise.
(double_register_low_names): Likewise.
(double_register_control_names): Likewise.
(double_condition_names): dcmp condition.
(print_insn_rx): Add bfmov / bfmovz output.
Add double FPU output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Implement help/show values for 'set|show style'.
@ 2019-01-12 21:26 sergiodj+buildbot
2019-01-12 21:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 21:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d73cff189ddc3725697e614d4d247819f754f096 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: d73cff189ddc3725697e614d4d247819f754f096
Implement help/show values for 'set|show style'.
Currently, the behaviour is:
(gdb) show style
(gdb) set style
(gdb) show style address
(gdb) set style address
(gdb)
With this patch, the behaviour is:
(gdb) show style
style address background: The "address" background color is: none
style address foreground: The "address" foreground color is: blue
style address intensity: The "address" display intensity is: normal
enabled: CLI output styling is enabled.
style filename background: The "filename" background color is: none
style filename foreground: The "filename" foreground color is: green
style filename intensity: The "filename" display intensity is: normal
style function background: The "function" background color is: none
style function foreground: The "function" foreground color is: yellow
style function intensity: The "function" display intensity is: normal
style variable background: The "variable" background color is: none
style variable foreground: The "variable" foreground color is: cyan
style variable intensity: The "variable" display intensity is: normal
(gdb) set style
"set style" must be followed by an appropriate subcommand.
List of set style subcommands:
set style address -- Address display styling
set style enabled -- Set whether CLI styling is enabled
set style filename -- Filename display styling
set style function -- Function name display styling
set style variable -- Variable name display styling
Type "help set style" followed by set style subcommand name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
(gdb) show style address
background: The "filename" background color is: none
foreground: The "filename" foreground color is: green
intensity: The "filename" display intensity is: normal
(gdb) set style address
List of set style address subcommands:
set style address background -- Set the background color for this property
set style address foreground -- Set the foreground color for this property
set style address intensity -- Set the display intensity color for this property
Type "help set style address" followed by set style address subcommand name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
(gdb)
gdb/ChangeLog
* cli/cli-style.h (class cli_style_option): <add_setshow_commands>
Remove arg prefixname, add do_set and do_show.
Add member functions set_list and show_list.
* cli/cli-style.c (class cli_style_option): Update accordingly.
(style_set_list): Move to file scope.
(style_show_list): Likewise.
(set_style): Call help_list.
(show_style): Call cmd_show_list.
(_initialize_cli_style): New macro STYLE_ADD_SETSHOW_COMMANDS.
Update to use the new macro.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: xtensa: fix register counters for xtensa-linux
@ 2019-01-13 21:50 sergiodj+buildbot
2019-01-13 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-13 21:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1a782351162b1158484923493b567231d1aec7d2 ***
Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: 1a782351162b1158484923493b567231d1aec7d2
gdb: xtensa: fix register counters for xtensa-linux
Commit 37d9e0623102 ("gdb: xtensa: handle privileged registers") changed
how the tdep->num_regs and tdep->num_pseudo_regs are calculated, but
didn't update these numbers in the gdbarch for the xtensa-linux target.
As a result xtensa-linux-gdb behaves as xtensa-elf-gdb and cannot
communicate with the linux gdbserver.
Fix tdep->num_pseudo_regs calculation and call set_gdbarch_num_regs and
set_gdbarch_num_pseudo_regs in xtensa_linux_init_abi.
gdb/
2019-01-13 Max Filippov <jcmvbkbc@gmail.com>
* xtensa-linux-tdep.c (xtensa_linux_init_abi): Update
tdep->num_pseudo_regs. Add calls to set_gdbarch_num_regs and
set_gdbarch_num_pseudo_regs.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Sync config.guess, config.sub from GCC
@ 2019-01-14 15:04 sergiodj+buildbot
2019-01-14 15:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 15:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d63f2be21bfbedb8a83b5c5f317896bf2bb19a95 ***
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Branch: master
Commit: d63f2be21bfbedb8a83b5c5f317896bf2bb19a95
Sync config.guess, config.sub from GCC
Merge from GCC:
PR target/88535
* config.guess: Import upstream version 2019-01-03.
* config.sub: Import upstream version 2019-01-01.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add support to GNU ld to separate got related plt entries from normal ones in order to be able to switch the non-plt got entries to read-only after startup, conforming to revised Linux for zSeries ABI.
@ 2019-01-14 16:15 sergiodj+buildbot
2019-01-14 16:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 16:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5a12586d44fa8d5dfc74cbca4f2f36a273a16335 ***
Author: Maamoun Tarsha <maamountk@hotmail.com>
Branch: master
Commit: 5a12586d44fa8d5dfc74cbca4f2f36a273a16335
Add support to GNU ld to separate got related plt entries from normal ones in order to be able to switch the non-plt got entries to read-only after startup, conforming to revised Linux for zSeries ABI.
PR 20133
* emulparams/elf64_s390.sh (SEPARATE_GOTPLT): Define.
* emulparams/elf_s390.sh (SEPARATE_GOTPLT): Define.
* testsuite/ld-s390/gotreloc_31-1.dd: Update expected output.
* testsuite/ld-s390/tlsbin.dd: Likewise.
* testsuite/ld-s390/tlsbin.rd: Likewise.
* testsuite/ld-s390/tlsbin.sd: Likewise.
* testsuite/ld-s390/tlsbin_64.dd: Likewise.
* testsuite/ld-s390/tlsbin_64.rd: Likewise.
* testsuite/ld-s390/tlsbin_64.sd: Likewise.
* testsuite/ld-s390/tlspic.dd: Likewise.
* testsuite/ld-s390/tlspic.rd: Likewise.
* testsuite/ld-s390/tlspic.sd: Likewise.
* testsuite/ld-s390/tlspic_64.dd: Likewise.
* testsuite/ld-s390/tlspic_64.rd: Likewise.
* testsuite/ld-s390/tlspic_64.sd: Likewise.
* testsuite/ld-s390/s390.exp: Skip s390 tests for tpf targets.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp
@ 2019-01-14 19:46 sergiodj+buildbot
2019-01-14 19:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 19:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7b8d68257c52281b08d9d858805e15667be6606 ***
Author: Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
Branch: master
Commit: a7b8d68257c52281b08d9d858805e15667be6606
[PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp
This patch fixes one of the tests in gdb.arch/altivec-regs.exp that
was passing an incorrect list to gdb_expect_list, which always
matched.
gdb/testsuite/ChangeLog:
2019-01-14 Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
* gdb.arch/altivec-regs.exp: Fix the list passed to
gdb_expect_list when testing "info vector".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Include <string.h> to dis-asm.h to get strchr declaration
@ 2019-01-14 21:59 sergiodj+buildbot
2019-01-14 22:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 21:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8f0a21480babea5b22cba13a3bee722408ca57e3 ***
Author: <kryukov@frtk.ru>
Branch: master
Commit: 8f0a21480babea5b22cba13a3bee722408ca57e3
Include <string.h> to dis-asm.h to get strchr declaration
Include <string.h> to dis-asm.h to get strchr declaration
include/Changelog:
2019-01-11 Pavel I. Kryukov <kryukov@frtk.ru>
* dis-asm.h: include <string.h>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-01-14 21:59 [binutils-gdb] Include <string.h> to dis-asm.h to get strchr declaration sergiodj+buildbot
@ 2019-01-14 22:00 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 22:00 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9113>
Commit(s) tested:
8f0a21480babea5b22cba13a3bee722408ca57e3
Author(s) (in the same order as the commits):
Ðавел ÐÑÑков <kryukov@frtk.ru>
Subject:
Include <string.h> to dis-asm.h to get strchr declaration
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/8f/8f0a21480babea5b22cba13a3bee722408ca57e3/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=33ed2433>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=33ed2433>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix placement of output in TUI mode
@ 2019-01-14 23:32 sergiodj+buildbot
2019-01-14 23:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-14 23:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bbd94648f2115338bd94e9800ba0e37f09d98a79 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bbd94648f2115338bd94e9800ba0e37f09d98a79
Fix placement of output in TUI mode
The fix for PR tui/28819 regressed gdb command output a bit. In
"nonl" mode, pressing the Enter key will result in a newline not being
echoed properly, so that gdb output for the command will begin on the
same line as the input.
This patch changes gdb_wgetch to echo the newline. I have only tested
this interactively, as the TUI doesn't have automated tests in
general.
gdb/ChangeLog
2019-01-14 Tom Tromey <tom@tromey.com>
PR tui/28819:
* tui/tui-io.c (gdb_wgetch): Print \r when needed.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify target_pass_signals and target_program_signals
@ 2019-01-15 0:51 sergiodj+buildbot
2019-01-15 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-15 0:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 491adecac48c5960fe29582f5046c015ff92c211 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 491adecac48c5960fe29582f5046c015ff92c211
Constify target_pass_signals and target_program_signals
This constifies the final parameter to target_pass_signals and
target_program_signals and updates the rest of gdb.
Note that I have no way to test the nto-procfs.c change.
gdb/ChangeLog
2019-01-14 Tom Tromey <tom@tromey.com>
* target-debug.h (target_debug_print_signals): Constify.
* nto-procfs.c (nto_procfs_target::pass_signals): Update.
* procfs.c (procfs_target::pass_signals): Update.
* linux-nat.c (linux_nat_target::pass_signals): Update.
* linux-nat.h (class linux_nat_target) <pass_signals>: Update.
* target-delegates.c: Rebuild.
* remote.c (remote_target::program_signals): Update.
(remote_target::pass_signals): Update.
* target.c (target_pass_signals): Constify argument.
(target_program_signals): Likewise.
* target.h (struct target_ops) <pass_signals, program_signals>:
Constify argument.
(target_pass_signals, target_program_signals): Constify argument.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify remote_console_output
@ 2019-01-15 1:04 sergiodj+buildbot
2019-01-15 1:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-15 1:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 05be00a884850c5fe314004c9b91609f480308f6 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 05be00a884850c5fe314004c9b91609f480308f6
Constify remote_console_output
This constifies the parameter to remote_console_output.
gdb/ChangeLog
2019-01-14 Tom Tromey <tom@tromey.com>
* remote.c (remote_console_output): Make parameter const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify some remote-notif functions
@ 2019-01-15 1:15 sergiodj+buildbot
2019-01-15 1:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-15 1:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bb27775165d9b992120371383012404e213b1981 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bb27775165d9b992120371383012404e213b1981
Constify some remote-notif functions
This constifies the "buf" arguments to various remote-notif functions
and updates the users.
gdb/ChangeLog
2019-01-14 Tom Tromey <tom@tromey.com>
* remote-notif.c (handle_notification, remote_notif_ack)
(remote_notif_parse): Make "buf" const.
* remote-notif.h (struct notif_client) <parse, ack>: Make "buf"
const.
(remote_notif_parse, remote_notif_ack, handle_notification):
Likewise.
* remote.c (remote_notif_stop_parse): Make "buf" const.
(remote_target::remote_parse_stop_reply): Make "buf" const.
(remote_notif_stop_ack): Make "buf" const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE
@ 2019-01-15 23:04 sergiodj+buildbot
2019-01-15 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-15 23:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dc7e818497f0af0a3ee569f6eee0ad74e19b4bc2 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: dc7e818497f0af0a3ee569f6eee0ad74e19b4bc2
sim: Fix definition of SIM_ARANGE_INLINE
If HAVE_INLINE is false, SIM_ARANGE_INLINE is currently defined as
#define SIM_ARANGE_INLINE EXTERN
However, EXTERN is not defined anywhere, leading to errors such as:
In file included from
/mipt-mips/simulator/../../sim/common/sim-basics.h:147:0,
from /mipt-mips/simulator/export/gdb/sim-main.h:13,
from /mipt-mips/simulator/export/gdb/gdb_interface.cpp:7:
/mipt-mips/simulator/../../sim/common/sim-arange.h:71:27: error: EXTERN
does not name a type; did you mean EUSERS?
#define SIM_ARANGE_INLINE EXTERN
^
/mipt-mips/simulator/../../sim/common/sim-arange.h:76:1: note: in expansion
of macro SIM_ARANGE_INLINE
SIM_ARANGE_INLINE int
^~~~~~~~~~~~~~~~~
I (Simon) have reproduced the problem by simply removing the HAVE_INLINE
definition. This was originally reported by Pavel I. Kryukov
<kryukov@frtk.ru>.
sim/common/ChangeLog:
* sim-arange.h (SIM_ARANGE_INLINE): Change EXTERN to extern.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.
@ 2019-01-16 13:55 sergiodj+buildbot
2019-01-16 13:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 13:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d5dcaf1b59e77047e10a1f246095d6b21f7d9772 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: d5dcaf1b59e77047e10a1f246095d6b21f7d9772
S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.
When assembling instructions which involve OPR references, emit
RELOC_S12Z_OPR instead of RELOC_EXT24.
bfd/
* bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
* libbfd.h: regen.
* elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
source field. (md_apply_fix): Apply final fix
to BFD_RELOC_S12Z_OPR.
* reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
gas/
* config/tc-s12z.c (emit_opr): Emit BFD_RELOC_S12Z_OPR instead of
BFD_RELOC_24.
* testsuite/gas/s12z/opr-indirect-expr.d: Expect R_S12Z_OPR instead
of R_S12Z_EXT24.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce dwarf2_cu::get_builder
@ 2019-01-16 19:54 sergiodj+buildbot
2019-01-16 19:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 19:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c24bdb023c8e1fa969d6eb945059fa8ed0d490c7 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: c24bdb023c8e1fa969d6eb945059fa8ed0d490c7
Introduce dwarf2_cu::get_builder
This patch is an attempt to deal with a variety of bugs reported where
GDB segfaults attempting to access a dwarf2_cu's builder. In certain
circumstances, this builder can be NULL. This is especially common
when inheriting DIEs via inlined subroutines in other CUs. The test
case demonstrates one such situation reported by users. See gdb/23773,
rhbz1638798, and dups for other concrete examples.
The approach taken here is to save the ancestor CU into the dwarf2_cu of
all CUs with DIEs that are "imported." This can happen whenever
follow_die_offset and friends are called. This essentially introduces a
chain of CUs that caused the importation of a DIE from a CU. Whenever
a builder is requested of a CU that has none, the ancestors are searched
for the first one with a builder.
A design side effect of this is that the builder can now only be
accessed by getter and setter methods because the builder itself
is private.
The bulk of the patch is relatively mindless text conversion from
"cu->builder" to "cu->get_builder ()". I've included one test which
was derived from one (of the many) bugs reported on the issue in both
sourceware and Fedora bugzillas.
gdb/ChangeLog:
PR gdb/23773
* dwarf2read.c (dwarf2_cu) <ancestor>: New field.
<builder>: Rename to ..
<m_builder>: ... this and make private.
(dwarf2_cu::get_builder): New method. Change all users of
`builder' to use this method.
(dwarf2_start_symtab): Move to ...
(dwarf2_cu::start_symtab): ... here. Update all callers
(setup_type_unit_groups): Move to ...
(dwarf2_cu::setup_type_unit_groups): ... here. Update all
callers.
(dwarf2_cu::reset_builder): New method.
(process_full_compunit, process_full_type_unit): Use
dwarf2_cu::reset_builder.
(follow_die_offset): Record the ancestor CU if it is different
from the followed DIE's CU.
(follow_die_sig_1): Likewise.
gdb/testsuite/ChangeLog:
PR gdb/23773
* gdb.dwarf2/inlined_subroutine-inheritance.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Merge ELF attribute for ld.
@ 2019-01-16 21:51 sergiodj+buildbot
2019-01-16 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 21:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7d7a7d7ccf6047cc5b480064e9eb9489542c0dd7 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 7d7a7d7ccf6047cc5b480064e9eb9489542c0dd7
RISC-V: Merge ELF attribute for ld.
2019-01-16 Kito Cheng <kito@andestech.com>
Nelson Chu <nelson@andestech.com>
bfd/
* elfnn-riscv.c (in_subsets): New.
(out_subsets): Likewise.
(merged_subsets): Likewise.
(riscv_std_ext_p): Likewise.
(riscv_non_std_ext_p): Likewise.
(riscv_std_sv_ext_p): Likewise.
(riscv_non_std_sv_ext_p): Likewise.
(riscv_version_mismatch): Likewise.
(riscv_i_or_e_p): Likewise.
(riscv_merge_std_ext): Likewise.
(riscv_merge_non_std_and_sv_ext): Likewise.
(riscv_merge_arch_attr_info): Likewise.
(riscv_merge_attributes): Likewise.
(_bfd_riscv_elf_merge_private_bfd_data): Merge attribute.
ld/
* testsuite/ld-elf/orphan-region.d: XFAIL for RISC-V, because add new
section.
* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add new tests.
* testsuite/ld-riscv-elf/attr-merge-arch-01.d: New test.
* testsuite/ld-riscv-elf/attr-merge-arch-01a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-01b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-02a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-02b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec-b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-priv-spec.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align-a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align-b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align-failed-a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align-failed-b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align-failed.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04b.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05a.s: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05b.s: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't emit vendor attribute section if there is no attribute to emit.
@ 2019-01-16 22:04 sergiodj+buildbot
2019-01-16 22:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 22:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a4bf3d0720b1093dd148b7a728f92ce690a8a034 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: a4bf3d0720b1093dd148b7a728f92ce690a8a034
Don't emit vendor attribute section if there is no attribute to emit.
2019-01-16 Kito Cheng <kito@andestech.com>
bfd/
* elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
for OBJ_ATTR_PROC.
gas/
* testsuite/gas/riscv/attribute-empty.d: New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P
@ 2019-01-16 22:21 sergiodj+buildbot
2019-01-16 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 22:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b84bb29de922b727ae8c37e88c670b299a3c52d8 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: b84bb29de922b727ae8c37e88c670b299a3c52d8
Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P
I applied the patch "Do not expand macros to 'defined'" by hand because
I couldn't apply it with git-am, and of course forgot to remove the
macro definitions. This patch fixes it, and also makes the ChangeLog
entry a bit cleaner.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace "the the" with "the"
@ 2019-01-17 17:38 sergiodj+buildbot
2019-01-17 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 17:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6471e7d23de333a63a119220d59b920c6aaef562 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6471e7d23de333a63a119220d59b920c6aaef562
Replace "the the" with "the"
This replaces "the the" with "the" in various comments.
Tested by rebuilding. This didn't test the solib-dsbt.c change, but
it looks harmless.
gdb/ChangeLog
2019-01-17 Tom Tromey <tromey@bapiya>
* valprint.c: Replace "the the" with "the".
* symtab.c: Replace "the the" with "the".
* solib.c: Replace "the the" with "the".
* solib-dsbt.c: Replace "the the" with "the".
* linespec.c: Replace "the the" with "the".
* dwarf2loc.h: Replace "the the" with "the".
* amd64-windows-tdep.c: Replace "the the" with "the".
* aarch64-tdep.c: Replace "the the" with "the".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanups from solib-target.c
@ 2019-01-17 17:50 sergiodj+buildbot
2019-01-17 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 17:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 776489e0a79a14cb3f1138d4e4158ab9a8c7ecf3 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 776489e0a79a14cb3f1138d4e4158ab9a8c7ecf3
Remove cleanups from solib-target.c
This removes the remaining cleanups from solib-target.c, plus a VEC,
by using std::vector and std::unique_ptr.
Tested by the buildbot.
gdb/ChangeLog
2019-01-17 Tom Tromey <tom@tromey.com>
* solib-target.c (lm_info_target_p): Remove typedef. Don't
declare VEC.
(solib_target_parse_libraries): Change return type.
(library_list_start_segment, library_list_start_section)
(library_list_end_library, library_list_start_library); Update.
(solib_target_free_library_list): Remove.
(solib_target_parse_libraries): Remove cleanup. Change return
type.
(solib_target_current_sos): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change all_objfiles adapter to be a method on program_space
@ 2019-01-17 23:38 sergiodj+buildbot
2019-01-17 23:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 23:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2030c079717475f5b6fad837bb81758891f3b802 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2030c079717475f5b6fad837bb81758891f3b802
Change all_objfiles adapter to be a method on program_space
This changes the all_objfiles range adapter to be a method on the
program space, and fixes up all the users.
gdb/ChangeLog
2019-01-17 Tom Tromey <tom@tromey.com>
* progspace.h (program_space) <objfiles_range>: New typedef.
<objfiles>: New method.
<objfiles_head>: Rename from objfiles.
(object_files): Update.
* guile/scm-progspace.c (gdbscm_progspace_objfiles): Update.
* guile/scm-pretty-print.c
(ppscm_find_pretty_printer_from_objfiles): Update.
* guile/scm-objfile.c (gdbscm_objfiles): Update.
* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers):
Update.
* python/py-progspace.c (pspy_get_objfiles): Update.
* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
Update.
* python/py-objfile.c (objfpy_lookup_objfile_by_name)
(objfpy_lookup_objfile_by_build_id): Update.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update.
* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
Update.
* symtab.c (iterate_over_symtabs, matching_obj_sections)
(expand_symtab_containing_pc, lookup_objfile_from_block)
(lookup_static_symbol, basic_lookup_transparent_type)
(find_pc_sect_compunit_symtab, find_symbol_at_address)
(find_line_symtab, info_sources_command)
(default_collect_symbol_completion_matches_break_on)
(make_source_files_completion_list, find_main_name): Update.
* symmisc.c (print_symbol_bcache_statistics)
(print_objfile_statistics, maintenance_print_symbols)
(maintenance_print_msymbols, maintenance_print_objfiles)
(maintenance_info_symtabs, maintenance_check_symtabs)
(maintenance_expand_symtabs, maintenance_info_line_tables):
Update.
* symfile.c (remove_symbol_file_command, overlay_invalidate_all)
(find_pc_overlay, find_pc_mapped_section, list_overlays_command)
(map_overlay_command, unmap_overlay_command)
(simple_overlay_update, expand_symtabs_matching)
(map_symbol_filenames): Update.
* symfile-debug.c (set_debug_symfile): Update.
* spu-tdep.c (spu_overlay_update, spu_objfile_from_frame):
Update.
* source.c (select_source_symtab, forget_cached_source_info):
Update.
* solib.c (solib_read_symbols): Update.
* solib-spu.c (append_ocl_sos): Update.
* psymtab.c (maintenance_print_psymbols)
(maintenance_info_psymtabs, maintenance_check_psymtabs): Update.
* probe.c (parse_probes_in_pspace, find_probe_by_pc): Update.
* printcmd.c (info_symbol_command): Update.
* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created):
Update.
* objfiles.h (class all_objfiles): Remove.
* objfiles.c (have_partial_symbols, have_full_symbols)
(have_minimal_symbols, qsort_cmp, update_section_map)
(shared_objfile_contains_address_p)
(default_iterate_over_objfiles_in_search_order): Update.
* objc-lang.c (info_selectors_command, info_classes_command)
(find_methods): Update.
* minsyms.c (find_solib_trampoline_target): Update.
* maint.c (maintenance_info_sections)
(maintenance_translate_address, count_symtabs_and_blocks):
Update.
* main.c (captured_main_1): Update.
* linux-thread-db.c (try_thread_db_load_from_pdir)
(has_libpthread): Update.
* linespec.c (iterate_over_all_matching_symtabs)
(search_minsyms_for_name): Update.
* jit.c (jit_find_objf_with_entry_addr): Update.
* hppa-tdep.c (find_unwind_entry)
(hppa_lookup_stub_minimal_symbol): Update.
* gcore.c (gcore_create_callback, objfile_find_memory_regions):
Update.
* elfread.c (elf_gnu_ifunc_resolve_by_cache)
(elf_gnu_ifunc_resolve_by_got): Update.
* dwarf2-frame.c (dwarf2_frame_find_fde): Update.
* dwarf-index-write.c (save_gdb_index_command): Update.
* cp-support.c (add_symbol_overload_list_qualified): Update.
* breakpoint.c (create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Update.
* blockframe.c (find_pc_partial_function): Update.
* ada-lang.c (ada_lookup_simple_minsym, add_nonlocal_symbols)
(ada_collect_symbol_completion_matches)
(ada_add_global_exceptions): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add compunits range adapter to objfile
@ 2019-01-18 0:03 sergiodj+buildbot
2019-01-18 0:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-18 0:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b669c95337903d39aa2254e8ea0405c0ac117d24 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b669c95337903d39aa2254e8ea0405c0ac117d24
Add compunits range adapter to objfile
This removes the objfile_compunits range adapter in favor of using a
method on objfile.
2019-01-15 Tom Tromey <tom@tromey.com>
* symtab.c (lookup_objfile_from_block)
(lookup_symbol_in_objfile_symtabs)
(basic_lookup_transparent_type_1, find_pc_sect_compunit_symtab)
(find_line_symtab, info_sources_command)
(default_collect_symbol_completion_matches_break_on)
(make_source_files_completion_list): Update.
* symmisc.c (print_objfile_statistics, dump_objfile)
(maintenance_print_symbols, maintenance_info_symtabs)
(maintenance_check_symtabs, maintenance_info_line_tables):
Update.
* source.c (select_source_symtab)
(forget_cached_source_info_for_objfile): Update.
* objfiles.h (class objfile_compunits): Remove.
(struct objfile) <compunits_range>: New typedef.
(compunits): New method.
* objfiles.c (objfile_relocate1): Update.
* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update.
* maint.c (count_symtabs_and_blocks): Update.
* linespec.c (iterate_over_all_matching_symtabs): Update.
* cp-support.c (add_symbol_overload_list_qualified): Update.
* coffread.c (coff_symtab_read): Update.
* ada-lang.c (add_nonlocal_symbols)
(ada_collect_symbol_completion_matches)
(ada_add_global_exceptions): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make psymtab range adapter a method on objfile
@ 2019-01-18 0:16 sergiodj+buildbot
2019-01-18 0:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-18 0:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f252c6d5dc49cb27838e153e863f16ea7895859e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f252c6d5dc49cb27838e153e863f16ea7895859e
Make psymtab range adapter a method on objfile
This removes the objfile_psymtabs class in favor of a method on
objfile and on psymtab_storage.
2019-01-16 Tom Tromey <tom@tromey.com>
* objfiles.h (struct objfile) <psymtabs>: New method.
(class objfile_psymtabs): Remove.
* psymtab.h (class psymtab_storage) <partial_symtab_range>: New
typedef.
<range>: New method.
(require_partial_symbols): Change return type.
* psymtab.c (require_partial_symbols)
(psym_expand_symtabs_matching): Update.
* mdebugread.c (parse_partial_symbols): Update.
* dbxread.c (dbx_end_psymtab): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make minimal symbol range adapter a method on objfile
@ 2019-01-18 0:41 sergiodj+buildbot
2019-01-18 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-18 0:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7932255de56fb99836b2e712e7dbcfdd5e1f1309 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7932255de56fb99836b2e712e7dbcfdd5e1f1309
Make minimal symbol range adapter a method on objfile
This removes class objfile_msymbols in favor of a method on the
objfile.
2019-01-16 Tom Tromey <tom@tromey.com>
* objfiles.h (struct minimal_symbol_iterator): Rename. Move
earlier.
(struct objfile) <msymbols_range>: Move from top level.
<msymbols>: New method.
(class objfile_msymbols): Remove.
* symtab.c (default_collect_symbol_completion_matches_break_on):
Update.
* symmisc.c (dump_msymbols): Update.
* stabsread.c (scan_file_globals): Update.
* objc-lang.c (info_selectors_command, info_classes_command)
(find_methods): Update.
* minsyms.c (find_solib_trampoline_target): Update.
* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Update.
* coffread.c (coff_symfile_read): Update.
* ada-lang.c (ada_lookup_simple_minsym)
(ada_collect_symbol_completion_matches): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add markers for 2.32 branch to NEWS and ChangeLog files.
@ 2019-01-19 16:11 sergiodj+buildbot
2019-01-19 16:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-19 16:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f974f26cb16cc6fe3946f163c787a05e713fb77b ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: f974f26cb16cc6fe3946f163c787a05e713fb77b
Add markers for 2.32 branch to NEWS and ChangeLog files.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change version to 2.32.51 and regenerate configure and pot files.
@ 2019-01-19 17:08 sergiodj+buildbot
2019-01-19 17:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-19 17:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f48dfe417e2ceb2251825336fe8769897a4d4b05 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: f48dfe417e2ceb2251825336fe8769897a4d4b05
Change version to 2.32.51 and regenerate configure and pot files.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [MIPS] fix typo in mips_arch_choices.
@ 2019-01-20 2:52 sergiodj+buildbot
2019-01-20 2:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-20 2:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 57299f4831b9afe5923c808534003af665659a31 ***
Author: Chenghua Xu <paul.hua.gm@gmail.com>
Branch: master
Commit: 57299f4831b9afe5923c808534003af665659a31
[MIPS] fix typo in mips_arch_choices.
opcodes/
* mips-dis.c (mips_arch_choices): Fix typo in
gs464, gs464e and gs264e descriptors.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Ensure stack protection is off for GCC
@ 2019-01-21 11:00 sergiodj+buildbot
2019-01-21 11:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 11:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fc65c7dbe0607dfb1fc3d1019c46df73854cc896 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: fc65c7dbe0607dfb1fc3d1019c46df73854cc896
Testsuite: Ensure stack protection is off for GCC
Using -fstack-protector-strong will cause GDB to break on the wrong line
when placing a breakpoint on a function. This is due to inadequate dwarf
line numbering, and is being tracked by the GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88432
GCC (and Clang) provided by Debian/Ubuntu default to stack protector
being enabled.
Ensure that when running the GDB testsuite, stack protector is always
turned off for GCC 4.1.0 (when stack protector was added) and above.
Ensure that this does not cause infinite recursion due to
test_compiler_info having to compile a file itself.
Add a test to explicitly test breakpoints with various levels of stack
protection on both GCC and Clang, with xfail for the known errors.
Restore change in ovldbreak.exp which worked around the issue.
gdb/testsuite/ChangeLog:
2019-01-18 Alan Hayward <alan.hayward@arm.com>
* gdb.base/stack-protector.c: New test.
* gdb.base/stack-protector.exp: New file.
* gdb.cp/ovldbreak.exp: Only allow a single break line.
* lib/gdb.exp (get_compiler_info): Use getting_compiler_info
option.
(gdb_compile): Remove stack protector for GCC and prevent
recursion.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix spelling mistakes in BFD library.
@ 2019-01-21 12:52 sergiodj+buildbot
2019-01-21 12:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 12:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT acef8081ec2ce5dc387ee55a04f75fb27ade94ec ***
Author: Yuri Chornoivan <yurchor@ukr.net>
Branch: master
Commit: acef8081ec2ce5dc387ee55a04f75fb27ade94ec
Fix spelling mistakes in BFD library.
PR 24108
bfd * elf32-nds32.c (nds32_relocate_section): Add space between words
in error message.
* elfnn-riscv.c (riscv_version_mismatch): Fix spelling mistake in
error message.
(riscv_i_or_e_p): Likewise.
(riscv_merge_arch_attr_info): Likewise.
ld * testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Update
expected error message.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Updated translations for various binutils subdirectories.
@ 2019-01-21 13:15 sergiodj+buildbot
2019-01-21 13:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 13:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 375cd4233dd1576d48acf93309125183e2c9ec9e ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 375cd4233dd1576d48acf93309125183e2c9ec9e
Updated translations for various binutils subdirectories.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64 AAPCS: Empty structs have non zero size in C++
@ 2019-01-21 16:18 sergiodj+buildbot
2019-01-21 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 73021deb50855f31bb312241899a464c62155f6a ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 73021deb50855f31bb312241899a464c62155f6a
AArch64 AAPCS: Empty structs have non zero size in C++
When gdb.base/infcall-nested-structs.c is complied as C++, the compiler
will not pass structs containing empty structs via float arguments.
This is because structs in C++ have a minimum size of 1, causing padding
in the struct once compiled. The AAPCS does not allow structs with
padding to be passed in float arguments.
Add padding checks to AArch64 and add C++ compile variant to the test.
Some of the tests fail on X86_64. This has been raised as bug gdb/24104.
gdb/ChangeLog:
* aarch64-tdep.c (aapcs_is_vfp_call_or_return_candidate_1): Check
for padding.
gdb/testsuite/ChangeLog:
* gdb.base/infcall-nested-structs.exp: Test C++ in addition to C.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak in splay-tree
@ 2019-01-21 16:36 sergiodj+buildbot
2019-01-21 16:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 16:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d7167c671da0323daf31a8e07945c57c25f858d2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d7167c671da0323daf31a8e07945c57c25f858d2
Fix leak in splay-tree
Philippe Waroquiers noticed a memory leak in gdb, which he tracked
down to a bug in splay-tree. splay_tree_remove does not call the
`delete_key' function when it removes the old node; but it should.
I looked at every splay tree in GCC and there is only one that passes
a non-NULL delete function -- the one in lto.c. That file does not
call splay_tree_remove. So, I think this is safe to check in.
I re-ran the LTO tests to double check.
libiberty/
* splay-tree.c (splay_tree_remove): Delete the key if necessary.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove duplicate or commented-out #includes
@ 2019-01-21 18:41 sergiodj+buildbot
2019-01-21 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 18:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT be6d4f74c77c6f521afc873d226480e001cb99c2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: be6d4f74c77c6f521afc873d226480e001cb99c2
Remove duplicate or commented-out #includes
I wrote a little script to detect duplicate or commented-out #includes
and ran it on gdb. This patch is the result. Tested by rebuilding.
gdb/ChangeLog
2019-01-21 Tom Tromey <tom@tromey.com>
* ui-out.c: Fix includes.
* tui/tui-source.c: Fix includes.
* target.c: Fix includes.
* remote.c: Fix includes.
* regcache.c: Fix includes.
* python/py-block.c: Fix includes.
* printcmd.c: Fix includes.
* or1k-tdep.c: Fix includes.
* mi/mi-main.c: Fix includes.
* m32r-tdep.c: Fix includes.
* csky-tdep.c: Fix includes.
* compile/compile-cplus-types.c: Fix includes.
* cli/cli-interp.c: Fix includes.
gdb/gdbserver/ChangeLog
2019-01-21 Tom Tromey <tom@tromey.com>
* tracepoint.c: Fix includes.
* remote-utils.c: Fix includes.
* linux-x86-low.c: Fix includes.
gdb/stubs/ChangeLog
2019-01-21 Tom Tromey <tom@tromey.com>
* ia64vms-stub.c: Fix includes.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak in event-top.c history expansion
@ 2019-01-21 20:44 sergiodj+buildbot
2019-01-21 20:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-21 20:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b6fb1ee51c9a773d2d6044993af6c0fd7499638f ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b6fb1ee51c9a773d2d6044993af6c0fd7499638f
Fix leak in event-top.c history expansion
E.g. in gdb.base/default.exp, valgrind detects leaks such as
==17663== 1,438 bytes in 101 blocks are definitely lost in loss record 2,804 of 2,884
==17663== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==17663== by 0x418A17: xmalloc (common-utils.c:44)
==17663== by 0x4E6F19C: history_expand (histexpand.c:1061)
==17663== by 0x4B4490: handle_line_of_input(buffer*, char const*, int, char const*) (event-top.c:685)
==17663== by 0x4B4562: command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) (event-top.c:753)
...
Fix the leak by using an unique_xmalloc_ptr for history_value.
gdb/ChangeLog
2019-01-22 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* event-top.c (handle_line_of_input): use unique_xmalloc_ptr for
history_value.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove the EXTERN define from stabsread.h
@ 2019-01-22 23:15 sergiodj+buildbot
2019-01-22 23:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-22 23:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d65d5705cd6e972067dfa7ccf1f9e0950c1538ff ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d65d5705cd6e972067dfa7ccf1f9e0950c1538ff
Remove the EXTERN define from stabsread.h
This removes the EXTERN define from stabsread.h. This is the only
spot that still uses this approach, and it interfered with sorting the
includes in stabsread.c.
Tested by rebuilding.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* stabsread.c (EXTERN): Do not define.
(symnum, next_symbol_text_func, processing_gcc_compilation)
(within_function, global_sym_chain, global_stabs)
(previous_stab_code, this_object_header_files)
(n_this_object_header_files)
(n_allocated_this_object_header_files): Define.
* stabsread.h (EXTERN): Never define. Use "extern".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use "struct bcache" in objfiles.h
@ 2019-01-23 4:29 sergiodj+buildbot
2019-01-23 4:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 4:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6b4d77743349028e471334da3d63df09cddfd820 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6b4d77743349028e471334da3d63df09cddfd820
Use "struct bcache" in objfiles.h
If objfiles.h is included after bcache.h, then the "bcache" function
will cause a compiler error because "bcache" will be seen as a
function, not a type. Fix this error by using the "struct" keyword.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* objfiles.h (struct objfile_per_bfd_storage): Use "struct"
keyword for bcache.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Do not include py-ref.h in most files
@ 2019-01-23 4:41 sergiodj+buildbot
2019-01-23 4:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 4:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3fabc0163acbdffd9d77d7608604f737fc981399 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3fabc0163acbdffd9d77d7608604f737fc981399
Do not include py-ref.h in most files
py-ref.h can really only be included from a specific spot in
python-internal.h. The other includes are not useful, and cause
compilation errors if the includes are ever sorted. So, remove these
includes.
Arguably, py-ref.h should simply not be a separate header.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* python/py-arch.c: Do not include py-ref.h.
* python/py-bpevent.c: Do not include py-ref.h.
* python/py-cmd.c: Do not include py-ref.h.
* python/py-continueevent.c: Do not include py-ref.h.
* python/py-event.h: Do not include py-ref.h.
* python/py-evtregistry.c: Do not include py-ref.h.
* python/py-finishbreakpoint.c: Do not include py-ref.h.
* python/py-frame.c: Do not include py-ref.h.
* python/py-framefilter.c: Do not include py-ref.h.
* python/py-function.c: Do not include py-ref.h.
* python/py-infevents.c: Do not include py-ref.h.
* python/py-linetable.c: Do not include py-ref.h.
* python/py-objfile.c: Do not include py-ref.h.
* python/py-param.c: Do not include py-ref.h.
* python/py-prettyprint.c: Do not include py-ref.h.
* python/py-progspace.c: Do not include py-ref.h.
* python/py-symbol.c: Do not include py-ref.h.
* python/py-symtab.c: Do not include py-ref.h.
* python/py-type.c: Do not include py-ref.h.
* python/py-unwind.c: Do not include py-ref.h.
* python/py-utils.c: Do not include py-ref.h.
* python/py-value.c: Do not include py-ref.h.
* python/py-varobj.c: Do not include py-ref.h.
* python/py-xmethods.c: Do not include py-ref.h.
* python/python.c: Do not include py-ref.h.
* varobj.c: Do not include py-ref.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Declare remote_target in remote-fileio.h
@ 2019-01-23 4:51 sergiodj+buildbot
2019-01-23 4:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 4:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 37b3ab5b547de7e727c5426c6615ece0284168c7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 37b3ab5b547de7e727c5426c6615ece0284168c7
Declare remote_target in remote-fileio.h
remote-fileio.h refers to remote_target, so forward-declare it.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* remote-fileio.h (struct remote_target): Declare.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Rename "lines" parameter in source-cache.h
@ 2019-01-23 5:02 sergiodj+buildbot
2019-01-23 5:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 5:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 38561778f3c6a6af98355925bcfd5d3c1e39a484 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 38561778f3c6a6af98355925bcfd5d3c1e39a484
Rename "lines" parameter in source-cache.h
A compile in the TUI somehow had "lines" defined as a macro. This
caused a compile error when including source-cache.h after whatever
header did that. I tracked this down to a #define in
/usr/include/term.h, so I just changed source-cache.h to avoid the
clash.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* source-cache.h (class source_cache) <get_source_lines,
get_plain_source_lines, extract_lines>: Rename "lines" parameter.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Include gdb_curses.h in tui-wingeneral.h
@ 2019-01-23 5:14 sergiodj+buildbot
2019-01-23 5:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 5:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 93cc1d53f545e84c279c890c6309f3feddd39212 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 93cc1d53f545e84c279c890c6309f3feddd39212
Include gdb_curses.h in tui-wingeneral.h
tui-wingeneral.h uses WINDOW, which is defined by curses. So, include
gdb_curses.h from tui-wingeneral.h.
2019-01-22 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.h: Include gdb_curses.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Include coff/sym.h from coff/ecoff.h
@ 2019-01-23 5:26 sergiodj+buildbot
2019-01-23 5:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 5:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 71ba91e1c0732e203ba465a2196caa45aa8b2179 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 71ba91e1c0732e203ba465a2196caa45aa8b2179
Include coff/sym.h from coff/ecoff.h
coff/ecoff.h refers to some names defined in coff/sym.h. Include the
latter from the former, so that users of the header don't need to know
this detail.
2019-01-22 Tom Tromey <tom@tromey.com>
* coff/ecoff.h: Include coff/sym.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] corelow.c does not need sys/file.h
@ 2019-01-23 5:38 sergiodj+buildbot
2019-01-23 5:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 5:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7c9855d033996252fc55349fd3e01670cdd7943 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a7c9855d033996252fc55349fd3e01670cdd7943
corelow.c does not need sys/file.h
I did not see any reason that corelow.c should include <sys/file.h>.
The provided explanatory comment seems to be wrong. This patch
removes the include.
2019-01-22 Tom Tromey <tom@tromey.com>
* corelow.c: Do not include sys/file.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Ensure lwp info is created zeroed
@ 2019-01-23 12:06 sergiodj+buildbot
2019-01-23 12:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 12:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6594e122864119d7b1434599c22b112f98e178ca ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 6594e122864119d7b1434599c22b112f98e178ca
AArch64: Ensure lwp info is created zeroed
The code to not set empty hardware BPs/WPs on new threads will only work
if the newly allocated struct is empty.
Ensure the structure is created zeroed.
This patch removes the remaining racy behaviour on gdb.threads tests
when run on AArch64 Ubuntu.
gdb/ChangeLog:
* nat/aarch64-linux.c (aarch64_linux_new_thread): Replace XNEW
with XCNEW.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove a warning from symtab.c
@ 2019-01-23 17:48 sergiodj+buildbot
2019-01-23 17:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 17:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ae73e2e2435cb706b18ba05734aee4137a271b3c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ae73e2e2435cb706b18ba05734aee4137a271b3c
Remove a warning from symtab.c
When building symtab.c, I get:
../../binutils-gdb/gdb/language.h: In function void print_symbol_info(search_domain, symbol*, int, const char*):
../../binutils-gdb/gdb/language.h:738:20: warning: *((void*)& l +4) may be used uninitialized in this function [-Wmaybe-uninitialized]
set_language (m_lang);
~~~~~~~~~~~~~^~~~~~~~
../../binutils-gdb/gdb/symtab.c:4613:41: note: *((void*)& l +4) was declared here
scoped_switch_to_sym_language_if_auto l (sym);
^
This is another instance of the std::optional problem, see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635.
However, it seemed straightforward and inexpensive to me to silence
this one, which is what this patch does.
gdb/ChangeLog
2019-01-23 Tom Tromey <tom@tromey.com>
* language.h (class scoped_switch_to_sym_language_if_auto):
Initialize m_lang in both cases.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Rename ESC -> ESC_PARENS
@ 2019-01-23 19:30 sergiodj+buildbot
2019-01-23 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 19:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cf08fb29f8c484a34c4babb015348b220f80a33b ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: cf08fb29f8c484a34c4babb015348b220f80a33b
Rename ESC -> ESC_PARENS
A following patch will include common/preprocessor.h in some .c file
that also includes readline.h, and that revealed a conflict -- ESC is
defined by readline.h as well (actually readline's chardefs.h) with a
completely unrelated meaning:
#define ESC CTRL('[')
Rename our version to avoid the conflict.
gdb/ChangeLog:
2019-01-23 Pedro Alves <palves@redhat.com>
* common/preprocessor.h (ESC): Rename to ...
(ESC_PARENS): ... this.
* common/valid-expr.h (CHECK_VALID_EXPR_1, CHECK_VALID_EXPR_2)
(CHECK_VALID_EXPR_3, CHECK_VALID_EXPR_4): Adjust.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce scope_exit
@ 2019-01-23 19:40 sergiodj+buildbot
2019-01-23 19:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 19:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 54b65c9b51ec80ef5812dde1a508ce171eeb8ce6 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 54b65c9b51ec80ef5812dde1a508ce171eeb8ce6
Introduce scope_exit
This add a new template class scope_exit. scope_exit is a
general-purpose scope guard that calls its exit function at the end of
the current scope. A scope_exit may be canceled by calling the
"release" method. The API is modeled on P0052R5 - Generic Scope Guard
and RAII Wrapper for the Standard Library, which is itself based on
Andrej Alexandrescu's ScopeGuard/SCOPE_EXIT.
The main advantage of scope_exit is avoiding writing single-use RAII
classes and its boilerplate. Following patches will remove a few of
such classes.
There are two forms available:
- The "make_scope_exit" form allows canceling the scope guard. Use
it like this:
auto cleanup = make_scope_exit ( <function, function object, lambda> );
...
cleanup.release (); // cancel
- If you don't need to cancel the guard, you can use the SCOPE_EXIT
macro, like this:
SCOPE_EXIT { /* any code you like here. */ }
Note: scope_exit instances do not allocate anything on the heap.
gdb/ChangeLog:
2019-01-23 Pedro Alves <palves@redhat.com>
Andrew Burgess <andrew.burgess@embecosm.com>
Tom Tromey <tom@tromey.com>
* common/scope-exit.h: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce forward_scope_exit
@ 2019-01-23 19:52 sergiodj+buildbot
2019-01-23 19:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 19:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5b9b3e53a68f4568dc0b6907e34e763a6c3dd145 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5b9b3e53a68f4568dc0b6907e34e763a6c3dd145
Introduce forward_scope_exit
This adds a template that can be used to automatically instantiate
scope_exit-like types that wrap some cleanup function. The
instantiated type has a ctor that has the same interface as the
wrapped function. While the "magic" is just straight C++11, the
intended use is via the FORWARD_SCOPE_EXIT macro, which is a minimal
macro that avoids spelling out the wrapped function name more than
once:
void some_function (int foo, object *bar);
using some_function_fce = FORWARD_SCOPE_EXIT (some_function);
some_function_fce cleanup (some_int, some_obj_ptr);
The above runs:
some_function (some_int, some_obj_ptr);
at scope exit.
This is mainly useful as opposed to a simpler SCOPE_EXIT when you need
to:
- cancel the scope_exit, in which case you need the object's name
- wrap the scope_exit in a gdb::optional, in which case you need the
scope_exit's type in advance.
More details in the code comments.
gdb/ChangeLog:
2019-01-23 Pedro Alves <palves@redhat.com>
Andrew Burgess <andrew.burgess@embecosm.com>
* common/forward-scope-exit.h: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use forward_scope_exit for scoped_finish_thread_state
@ 2019-01-23 20:03 sergiodj+buildbot
2019-01-23 20:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 20:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 77f0e74cbe2ee7e874432776a0394a3d2a7a4342 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 77f0e74cbe2ee7e874432776a0394a3d2a7a4342
Use forward_scope_exit for scoped_finish_thread_state
This reimplements the manually-written scoped_finish_thread_state
class as a forward_scope_exit instantiation. forward_scope_exit has
the same interface as scoped_finish_thread_state, so nothing else has
to change.
A forward_scope_exit is preferred over make_scope_exit here because
infrun.c:normal_stop needs to wrap scoped_finish_thread_state in a
gdb::optional. Since we need the type there, might as well use it
everywhere.
gdb/ChangeLog:
2019-01-23 Pedro Alves <palves@redhat.com>
Andrew Burgess <andrew.burgess@embecosm.com>
* gdbthread.h: Include "common/forward-scope-exit.h".
(scoped_finish_thread_state): Redefine custom class in terms of
forward_scope_exit.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace delete_longjmp_breakpoint_cleanup with a forward_scope_exit type
@ 2019-01-23 20:46 sergiodj+buildbot
2019-01-23 20:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 20:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5419bdae559360a10044983b06c11a31de8d81f4 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5419bdae559360a10044983b06c11a31de8d81f4
Replace delete_longjmp_breakpoint_cleanup with a forward_scope_exit type
This removes delete_longjmp_breakpoint_cleanup in favor of forward_scope_exit.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Andrew Burgess <andrew.burgess@embecosm.com>
Pedro Alves <palves@redhat.com>
* breakpoint.c (until_break_command): Use
delete_longjmp_breakpoint_cleanup class.
* infcmd.c (delete_longjmp_breakpoint_cleanup): Remove function.
(until_next_command): Use delete_longjmp_breakpoint_cleanup class.
* inferior.h: Include forward-scope-exit.h.
(delete_longjmp_breakpoint_cleanup): Replace function declaration
with FORWARD_SCOPE_EXIT type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c
@ 2019-01-23 20:56 sergiodj+buildbot
2019-01-23 20:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 20:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89f8fb50fa16b0ef510dcd6de9088cee9820116d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 89f8fb50fa16b0ef510dcd6de9088cee9820116d
Remove remaining cleanup from gdb/breakpoint.c
In v3: remove the "have BKPT_CHAIN already discarded" comment too.
The remaining null cleanup in breakpoint.c does not seem to protect
anything, so remove it.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* breakpoint.c (create_breakpoint): Remove cleanup.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove make_bpstat_clear_actions_cleanup
@ 2019-01-23 21:21 sergiodj+buildbot
2019-01-23 21:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 694c6bf5425024a8654a5541dec88e4dd6ddafb5 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 694c6bf5425024a8654a5541dec88e4dd6ddafb5
Remove make_bpstat_clear_actions_cleanup
This removes make_bpstat_clear_actions_cleanup, replacing it with uses
of scope_exit.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Andrew Burgess <andrew.burgess@embecosm.com>
Pedro Alves <palves@redhat.com>
* infrun.c (fetch_inferior_event): Use scope_exit.
* utils.h (make_bpstat_clear_actions_cleanup): Don't declare.
* top.c (execute_command): Use scope_exit.
* breakpoint.c (bpstat_do_actions): Use scope_exit.
* utils.c (do_bpstat_clear_actions_cleanup)
(make_bpstat_clear_actions_cleanup): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint
@ 2019-01-23 21:33 sergiodj+buildbot
2019-01-23 21:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2cc83d1e0eeaad9927553ee157f810e43d47d24f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2cc83d1e0eeaad9927553ee157f810e43d47d24f
Remove cleanup_delete_std_terminate_breakpoint
This removes cleanup_delete_std_terminate_breakpoint, replacing it
with a use of SCOPE_EXIT.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* infcall.c (cleanup_delete_std_terminate_breakpoint): Remove.
(call_function_by_hand_dummy): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanup from linux-nat.c
@ 2019-01-23 21:44 sergiodj+buildbot
2019-01-23 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1db93f14fae0b3a638324e5349fe56a0e625451e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1db93f14fae0b3a638324e5349fe56a0e625451e
Remove cleanup from linux-nat.c
This removes a cleanup from linux-nat.c, replacing it with a
scope_exit.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* linux-nat.c: Include scope-exit.h.
(cleanup_target_stop): Remove.
(linux_nat_target::static_tracepoint_markers_by_strid): Use
SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove clear_symtab_users_cleanup
@ 2019-01-23 21:56 sergiodj+buildbot
2019-01-23 21:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 21:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 286526c1e5f6d54bf6ecc961d7c2d0a32b58fe45 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 286526c1e5f6d54bf6ecc961d7c2d0a32b58fe45
Remove clear_symtab_users_cleanup
This removes clear_symtab_users_cleanup, replacing it with uses of
forward_scope_exit.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* symfile.c: Include forward-scope-exit.h.
(clear_symtab_users_cleanup): Replace forward declaration with
a FORWARD_SCOPE_EXIT.
(syms_from_objfile_1): Use the forward_scope_exit and
gdb::optional instead of cleanup_function.
(reread_symbols): Use the forward_scope_exit instead of
cleanup_function.
(clear_symtab_users_cleanup): Remove function.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanup from stop_all_threads
@ 2019-01-23 22:28 sergiodj+buildbot
2019-01-23 22:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 22:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9885e6bb5b0f6f0147f9b3a15a4bd4516faf4a26 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9885e6bb5b0f6f0147f9b3a15a4bd4516faf4a26
Remove cleanup from stop_all_threads
This removes the cleanup from stop_all_threads, replacing it with a
scope_exit.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* infrun.c (disable_thread_events): Delete.
(stop_all_threads): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove remaining cleanup from fetch_inferior_event
@ 2019-01-23 22:39 sergiodj+buildbot
2019-01-23 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 22:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d238133d0292926b937aaa6f83bf921dd0bbb01c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d238133d0292926b937aaa6f83bf921dd0bbb01c
Remove remaining cleanup from fetch_inferior_event
This removes the remaining cleanup from fetch_inferior_event,
replacing it with a SCOPE_EXIT. This required introducing a new scope
and reindenting.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
Pedro Alves <palves@redhat.com>
* infrun.c (reinstall_readline_callback_handler_cleanup): Remove
parameter.
(fetch_inferior_event): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update an obsolete cleanup comment
@ 2019-01-23 22:51 sergiodj+buildbot
2019-01-23 22:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 22:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 979a0d1304ac7d73c9887f851e811d49752923fb ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 979a0d1304ac7d73c9887f851e811d49752923fb
Update an obsolete cleanup comment
This updates a comment in fetch_inferior_event. The comment refers to
a cleanup that is now a scoped_restore_current_thread.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
* infrun.c (fetch_inferior_event): Update comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update cleanup comment in ui-out.h
@ 2019-01-23 23:02 sergiodj+buildbot
2019-01-23 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 23:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 296bd123f76d7f8474b5a2937a49fd619748a871 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 296bd123f76d7f8474b5a2937a49fd619748a871
Update cleanup comment in ui-out.h
ui-out.h refers to some cleanup functions that no longer exist. This
updates the reference.
gdb/ChangeLog:
2019-01-23 Tom Tromey <tom@tromey.com>
* ui-out.h (class ui_out_emit_type): Update comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64 AAPCS: Ignore static members
@ 2019-01-24 8:41 sergiodj+buildbot
2019-01-24 8:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 8:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 353229bf405113e6ba2fe21f2a691bc63aa94bd8 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 353229bf405113e6ba2fe21f2a691bc63aa94bd8
AArch64 AAPCS: Ignore static members
Static members in C++ structs are global data and therefore not part of the
list of struct members considered for passing in registers.
Note the corresponding code in GCC (from which the GDB AAPCS code is based)
does not have any static member checks due to the static members not being
part of the struct type at that point.
Extend gdb.base/infcall-nested-structs.exp to test structs with static
members when compiled for C++. XFAIL more cases for x86_64 (see gdb/24104).
For completeness, ensure some test cases have both empty structures and
static members.
Also fixes gdb.dwarf2/dw2-cp-infcall-ref-static.exp.
gdb/ChangeLog:
* aarch64-tdep.c (aapcs_is_vfp_call_or_return_candidate_1): Check
for static members.
(pass_in_v_vfp_candidate): Likewise.
gdb/testsuite/ChangeLog:
* gdb.base/infcall-nested-structs.c (struct struct_static_02_01):
New structure.
(struct struct_static_02_02): Likewise.
(struct struct_static_02_03): Likewise.
(struct struct_static_02_04): Likewise.
(struct struct_static_04_01): Likewise.
(struct struct_static_04_02): Likewise.
(struct struct_static_04_03): Likewise.
(struct struct_static_04_04): Likewise.
(struct struct_static_06_01): Likewise.
(struct struct_static_06_02): Likewise.
(struct struct_static_06_03): Likewise.
(struct struct_static_06_04): Likewise.
(cmp_struct_static_02_01): Likewise.
(cmp_struct_static_02_02): Likewise.
(cmp_struct_static_02_03): Likewise.
(cmp_struct_static_02_04): Likewise.
(cmp_struct_static_04_01): Likewise.
(cmp_struct_static_04_02): Likewise.
(cmp_struct_static_04_03): Likewise.
(cmp_struct_static_04_04): Likewise.
(cmp_struct_static_06_01): Likewise.
(cmp_struct_static_06_02): Likewise.
(cmp_struct_static_06_03): Likewise.
(cmp_struct_static_06_04): Likewise.
(call_all): Test new structs.
* gdb.base/infcall-nested-structs.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-01-24 8:41 [binutils-gdb] AArch64 AAPCS: Ignore static members sergiodj+buildbot
@ 2019-01-24 8:41 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 8:41 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9179>
Commit(s) tested:
353229bf405113e6ba2fe21f2a691bc63aa94bd8
Author(s) (in the same order as the commits):
Alan Hayward <alan.hayward@arm.com>
Subject:
AArch64 AAPCS: Ignore static members
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/35/353229bf405113e6ba2fe21f2a691bc63aa94bd8/>
*** Diff to previous build ***
============================
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tc-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tc-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tc: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-td: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tf: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-ti: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tl: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tld: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-tll: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td-ts: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tc: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-td: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tf: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-ti: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tl: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tld: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-tll: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf-ts: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf: p/d check_arg_struct_static_02_01
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-ti-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-ti-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tl-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tl-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tld-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tld-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tll-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-tll-tf: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-ts-td: p/d check_arg_struct_static_02_04
new FAIL: gdb.base/infcall-nested-structs.exp: l=c++: types-ts-tf: p/d check_arg_struct_static_02_04
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=293f8d52>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=293f8d52>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix clang/libc++ build
@ 2019-01-24 18:21 sergiodj+buildbot
2019-01-24 18:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 18:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3046d67a0e29686ec18abd719660969c97973063 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 3046d67a0e29686ec18abd719660969c97973063
Fix clang/libc++ build
This fixes the following build error with clang/libc++, reported at
<https://sourceware.org/ml/gdb-patches/2019-01/msg00537.html>:
(...)
In file included from breakpoint.c:34:
In file included from ./inferior.h:54:
./common/forward-scope-exit.h:98:7: error: no matching constructor for
initialization of 'decltype(std::bind(&delete_longjmp_breakpoint,
std::declval<int>()))' (aka '__bind<void (*)(int), int>')
: m_bind_function (std::bind (function, args...))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./common/gdb_optional.h:155:19: note: in instantiation of member
function 'detail::forward_scope_exit<void (int),
&delete_longjmp_breakpoint, void (int)>::forward_scope_exit' requested
here
new (&m_item) T (std::forward<Args>(args)...);
^
breakpoint.c:11127:18: note: in instantiation of function template
specialization 'gdb::optional<detail::forward_scope_exit<void (int),
&delete_longjmp_breakpoint, void (int)> >::emplace<int &>' requested
here
lj_deleter.emplace (thread);
^
/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2220:7:
note: candidate constructor (the implicit copy constructor) not
viable: no known conversion from '__bind<[...], int &>' to 'const
__bind<[...], int>' for 1st argument
class __bind
^
(...)
I don't really know why I ended up with a copy here. We can just pass
the arguments directly to the being-constructed bind.
gdb/ChangeLog:
2019-01-24 Pedro Alves <palves@redhat.com>
* common/forward-scope-exit.h
(forward_scope_exit::forward_scope_exit): Pass arguments to
m_bind_function directly, instead of creating a std::bind and
copying that.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension.
@ 2019-01-25 15:32 sergiodj+buildbot
2019-01-25 15:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 15:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 550fd7bf6858cd708c54ec90412ffb653a932c3d ***
Author: Sudi Das <sudi.das@arm.com>
Branch: master
Commit: 550fd7bf6858cd708c54ec90412ffb653a932c3d
AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension.
This patch is part of a series of patches to introduce a few changes to the
Armv8.5-A Memory Tagging Extension. This patch removes the LDGV and STGV
instructions. These instructions needed special infrastructure to support
[base]! style for addressing mode. That is also removed now.
Committed on behalf of Sudakshina Das.
*** gas/ChangeLog ***
* config/tc-aarch64.c (parse_address_main): Remove support for
[base]! address expression.
(parse_operands): Remove support for AARCH64_OPND_ADDR_SIMPLE_2.
(warn_unpredictable_ldst): Remove support for ldstgv_indexed.
* testsuite/gas/aarch64/armv8_5-a-memtag.d: Remove tests for ldgv
and stgv.
* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
* testsuite/gas/aarch64/illegal-memtag.s: Likewise.
*** include/ChangeLog ***
* opcode/aarch64.h (enum aarch64_opnd): Remove
AARCH64_OPND_ADDR_SIMPLE_2.
(enum aarch64_insn_class): Remove ldstgv_indexed.
*** opcodes/ChangeLog ***
* aarch64-asm.c (aarch64_ins_addr_simple_2): Remove.
* aarch64-asm.h (ins_addr_simple_2): Likeiwse.
* aarch64-dis.c (aarch64_ext_addr_simple_2): Likewise.
* aarch64-dis.h (ext_addr_simple_2): Likewise.
* aarch64-opc.c (operand_general_constraint_met_p): Remove
case for ldstgv_indexed.
(aarch64_print_operand): Remove case for AARCH64_OPND_ADDR_SIMPLE_2.
* aarch64-tbl.h (struct aarch64_opcode): Remove ldgv and stgv.
(AARCH64_OPERANDS): Remove ADDR_SIMPLE_2.
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Update encodings for stg, st2g, stzg and st2zg.
@ 2019-01-25 15:56 sergiodj+buildbot
2019-01-25 15:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 15:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 69105ce4c42e5644ab92cb9b2765ff5ce6bf7b1b ***
Author: Sudi Das <sudi.das@arm.com>
Branch: master
Commit: 69105ce4c42e5644ab92cb9b2765ff5ce6bf7b1b
AArch64: Update encodings for stg, st2g, stzg and st2zg.
This patch is part of a series of patches to introduce a few changes to the
Armv8.5-A Memory Tagging Extension. This patch updates the st*g instructions
to use a previously reserved field for a new register operand. Thus the
new versions of the instructions are as follows:
- STG Xt, [<Xn|SP>, #<simm>]
- STG Xt, [<Xn|SP>, #<simm>]!
- STG Xt, [<Xn|SP>], #<simm>
- STZG Xt, [<Xn|SP>, #<simm>]
- STZG Xt, [<Xn|SP>, #<simm>]!
- STZG Xt, [<Xn|SP>], #<simm>
- ST2G Xt, [<Xn|SP>, #<simm>]
- ST2G Xt, [<Xn|SP>, #<simm>]!
- ST2G Xt, [<Xn|SP>], #<simm>
- STZ2G Xt, [<Xn|SP>, #<simm>]
- STZ2G Xt, [<Xn|SP>, #<simm>]!
- STZ2G Xt, [<Xn|SP>], #<simm>
Committed on behalf of Sudakshina Das.
*** gas/ChangeLog ***
* config/tc-aarch64.c (warn_unpredictable_ldst): Exempt
stg, st2g, stzg and stz2g from Xt == Xn with writeback warning.
* testsuite/gas/aarch64/armv8_5-a-memtag.d: Change tests for
stg, stzg, st2g and stz2g.
* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
* testsuite/gas/aarch64/illegal-memtag.s: Likewise.
*** opcodes/ChangeLog ***
* aarch64-tbl.h (QL_LDST_AT): Update macro.
(aarch64_opcode): Change encoding for stg, stzg
st2g and st2zg.
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't use -I for common subdirectory
@ 2019-01-25 23:18 sergiodj+buildbot
2019-01-25 23:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 23:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a0707f3c36cab402cd4c3235bedd2b5f7b4c6aed ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a0707f3c36cab402cd4c3235bedd2b5f7b4c6aed
Don't use -I for common subdirectory
This changes the Makefiles to remove the -I for the common/
subdirectory. This will enforce the rule that includes must use the
'common/filename.h' form.
gdb/ChangeLog
2019-01-25 Tom Tromey <tom@tromey.com>
* Makefile.in (GDB_CFLAGS): Don't add -I for common.
gdb/gdbserver/ChangeLog
2019-01-25 Tom Tromey <tom@tromey.com>
* Makefile.in (INCLUDE_CFLAGS): Don't add -I for common.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove duplicate skip_python_tests invocation
@ 2019-01-27 22:08 sergiodj+buildbot
2019-01-27 22:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-27 22:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1dbc40b9d70b95717abb0db6865a12ebd7d91b06 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1dbc40b9d70b95717abb0db6865a12ebd7d91b06
Remove duplicate skip_python_tests invocation
I noticed that py-finish-breakpoint.exp had two calls to
skip_python_tests, in quick succession. This patch removes the second
one.
gdb/testsuite/ChangeLog
2019-01-27 Tom Tromey <tom@tromey.com>
* gdb.python/py-finish-breakpoint.exp: Remove duplicate call to
skip_python_tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace contribution list in CONTRIBUTE file with link
@ 2019-01-28 10:30 sergiodj+buildbot
2019-01-28 10:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 10:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 36c25ffa1ab5d6d5ee0fa3fc32f128a58e78e7a2 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 36c25ffa1ab5d6d5ee0fa3fc32f128a58e78e7a2
Replace contribution list in CONTRIBUTE file with link
The GDB wiki page has a much better contribution checklist than
that in the GDB CONTRIBUTE file. In addition, the wiki is easier
to keep up to date with current processes.
Reduce the CONTRIBUTE file down to a short paragraph followed by
a link to the contribution process. This also ensures anyone
reading the CONTRIBUTE file for a given release has access to the
latest processes.
gdb/ChangeLog:
* CONTRIBUTE: Replace contribution list with wiki link.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders.
@ 2019-01-28 18:32 sergiodj+buildbot
2019-01-28 18:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 18:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7054e2fff6d93e4c2b3b6d0de0d8bda72d3c3d59 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 7054e2fff6d93e4c2b3b6d0de0d8bda72d3c3d59
Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders.
Replace individual calls to trad_frame_set_reg_addr for the general
purpose and floating point registers in signal trampoline frames used
by FreeBSD/aarch64 and FreeBSD/arm with calls to
trad_frame_set_reg_addr using the register maps for the corresponding
register sets.
gdb/ChangeLog:
* aarch64-fbsd-tdep.c (aarch64_fbsd_gregmap)
(aarch64_fbsd_fpregmap): Move earlier.
(AARCH64_MCONTEXT_REG_SIZE, AARCH64_MCONTEXT_FPREG_SIZE): Delete.
(aarch64_fbsd_sigframe_init): Use trad_frame_set_reg_regmap
instead of individual calls to trad_frame_set_reg_addr.
* arm-fbsd-tdep.c (arm_fbsd_gregmap, arm_fbsd_vfpregmap): Move
earlier.
(ARM_MCONTEXT_REG_SIZE, ARM_MCONTEXT_VFP_REG_SIZE): Delete.
(arm_fbsd_sigframe_init): Use trad_frame_set_reg_regmap
instead of individual calls to trad_frame_set_reg_addr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Release the GIL while running a gdb command or expression
@ 2019-01-30 14:51 sergiodj+buildbot
2019-01-30 14:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-30 14:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b5eba2d8c050b39943918057283470959a5d18c3 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b5eba2d8c050b39943918057283470959a5d18c3
Release the GIL while running a gdb command or expression
PR python/23615 points out that gdb.execute_gdb_command does not
release the Python GIL. This means that, while the gdb command is
running, other Python threads do not run.
This patch solves the problem by introducing a new RAII class that can
be used to temporarily release and then re-acquire the GIL, then puts
this into the appropriate places in execute_gdb_command and
gdbpy_parse_and_eval.
This does not include a test case, because after some research I could
not find a way to write one that was not racy.
gdb/ChangeLog
2019-01-30 Tom Tromey <tom@tromey.com>
PR python/23615:
* python/python.c (execute_gdb_command): Use gdbpy_allow_threads.
(gdbpy_parse_and_eval): Likewise.
* python/python-internal.h (gdbpy_allow_threads): New class.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build
@ 2019-01-30 18:16 sergiodj+buildbot
2019-01-30 18:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-01-30 18:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 956cc47c5614b0d50bf538e3dcc88c81560fa64c ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 956cc47c5614b0d50bf538e3dcc88c81560fa64c
[PR gdb/23985] Fix libinproctrace.so build
The IPA objects currently may use gnulib replacement apis, which is
wrong: gnulib is not linked into the produced dso and it cannot be
because it is not built with -fPIC -fvisibility=hidden.
The gnulib replacement detection is broken under cross compilation:
for targets other than *-gnu*, replacements are enabled that depend
on execution time detection. This causes unnecessary build failure
when the target has proper support for the replaced api.
This fix tries to undo the replacements, which is tricky because the
gnulib headers are still used for various compile time fixups and
there is no simple knob in gnulib to only turn the replacements off.
Without this workaround gdb fails to cross build to non-gnu targets:
ld: tracepoint-ipa.o: in function `gdb_agent_helper_thread(void*)':
gdb/gdbserver/tracepoint.c:7221: undefined reference to `rpl_strerror'
...
Makefile:434: recipe for target 'libinproctrace.so' failed
gdb/gdbserver/ChangeLog:
PR gdb/23985
* Makefile.in (IPAGENT_CFLAGS): Add UNDO_GNULIB_CFLAGS.
(UNDO_GNULIB_CFLAGS): Undo gnulib replacements.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Hoist assertion in target_stack::unpush
@ 2019-02-05 13:58 sergiodj+buildbot
2019-02-05 13:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-05 13:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1688cb2916e7bc46c92dd6f5ac2ba0da6c832274 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1688cb2916e7bc46c92dd6f5ac2ba0da6c832274
Hoist assertion in target_stack::unpush
I noticed that target_stack::unpush first uses the target "t", then
later asserts that it is non-NULL:
strata stratum = t->stratum ();
[...]
gdb_assert (t != NULL);
This is backwards, though, as the assertion must come first.
gdb/ChangeLog
2019-02-05 Tom Tromey <tom@tromey.com>
* target.c (target_stack::unpush): Move assertion earlier.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix 'info proc cmdline' for native FreeBSD processes.
@ 2019-02-06 18:05 sergiodj+buildbot
2019-02-06 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-06 18:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 424eb552c27a1574974d9052dff4ff252a7db22d ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 424eb552c27a1574974d9052dff4ff252a7db22d
Fix 'info proc cmdline' for native FreeBSD processes.
The kern.proc.args.<pid> sysctl returns the argv array as a packed
array of arguments, each null terminated. To construct a complete
command line, the arguments must be joined with spaces by converting
the intermediate nul characters to spaces. Previously only the first
argument was shown in cmdline output. Now, all arguments are shown.
gdb/ChangeLog:
* fbsd-nat.c (fbsd_fetch_cmdline): Join arguments with spaces.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak of identifier in macro definition.
@ 2019-02-06 20:21 sergiodj+buildbot
2019-02-06 20:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-06 20:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bb0da2b49689f49f01be2f8c5429945f37e12404 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: bb0da2b49689f49f01be2f8c5429945f37e12404
Fix leak of identifier in macro definition.
Valgrind detects leaks like the following (gdb.base/macscp.exp).
This patch fixes 1 of the 3 leaks (the last one in the list below).
The remaining leaks are better fixed in splay_tree_remove and
splay_tree_insert in libiberty.
Tested on debian/amd64, natively and under valgrind.
==22285== 64 (48 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 737 of 3,377
==22285== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285== by 0x4049E7: xmalloc (common-utils.c:44)
==22285== by 0x533A20: new_macro_key(macro_table*, char const*, macro_source_file*, int) (macrotab.c:355)
==22285== by 0x53438B: macro_define_function(macro_source_file*, int, char const*, int, char const**, char const*) (macrotab.c:822)
==22285== by 0x52F945: macro_define_command(char const*, int) (macrocmd.c:409)
...
==22285== 128 (96 direct, 32 indirect) bytes in 2 blocks are definitely lost in loss record 1,083 of 3,377
==22285== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285== by 0x4049E7: xmalloc (common-utils.c:44)
==22285== by 0x533A20: new_macro_key(macro_table*, char const*, macro_source_file*, int) (macrotab.c:355)
==22285== by 0x534277: macro_define_object_internal(macro_source_file*, int, char const*, char const*, macro_special_kind) (macrotab.c:776)
==22285== by 0x52F7E0: macro_define_command(char const*, int) (macrocmd.c:414)
...
==22285== 177 bytes in 19 blocks are definitely lost in loss record 1,193 of 3,377
==22285== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==22285== by 0x4049E7: xmalloc (common-utils.c:44)
==22285== by 0x52F5BD: extract_identifier(char const**, int) (macrocmd.c:316)
==22285== by 0x52F77D: macro_define_command(char const*, int) (macrocmd.c:355)
gdb/ChangeLog
2019-02-06 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* macrocmd.c (extract_identifier): Return
a gdb::unique_xmalloc_ptr<char> instead of a char *, and update
callers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Factorize macro definition code in macrotab.c
@ 2019-02-06 20:32 sergiodj+buildbot
2019-02-06 20:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-06 20:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ab9268d2f88414f202651eb5ffbd61c7927fb0c3 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ab9268d2f88414f202651eb5ffbd61c7927fb0c3
Factorize macro definition code in macrotab.c
When first fixing splay tree key leaks in macrotab.c, some duplicated code
logic was factorized.
The key leaks will be fixed in libiberty, but the code factorization
is better kept in any case.
gdb/ChangeLog
2019-02-06 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* macrotab.c (macro_define_internal): New function that
factorizes macro_define_object_internal and macro_define_function
code.
(macro_define_object_internal): Use macro_define_internal.
(macro_define_function): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] C++-ify struct thread_fsm
@ 2019-02-07 13:41 sergiodj+buildbot
2019-02-07 13:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 13:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a
C++-ify struct thread_fsm
This C++-ifies struct thread_fsm, replacing the "ops" structure with
virtual methods, and changing all the implementations to derive from
thread_fsm.
gdb/ChangeLog
2019-02-07 Tom Tromey <tom@tromey.com>
* thread.c (thread_cancel_execution_command): Update.
* thread-fsm.h (struct thread_fsm): Add constructor, destructor,
methods.
(struct thread_fsm_ops): Remove.
(thread_fsm_ctor, thread_fsm_delete, thread_fsm_clean_up)
(thread_fsm_should_stop, thread_fsm_return_value)
(thread_fsm_set_finished, thread_fsm_finished_p)
(thread_fsm_async_reply_reason, thread_fsm_should_notify_stop):
Don't declare.
* mi/mi-interp.c (mi_on_normal_stop_1): Update.
* infrun.c (clear_proceed_status_thread)
(clean_up_just_stopped_threads_fsms, fetch_inferior_event)
(print_stop_event): Update.
* infcmd.c (struct step_command_fsm): Inherit from thread_fsm.
Add constructor.
(step_command_fsm_ops): Remove.
(new_step_command_fsm): Remove.
(step_1): Update.
(step_command_fsm::should_stop): Rename from
step_command_fsm_should_stop.
(step_command_fsm::clean_up): Rename from
step_command_fsm_clean_up.
(step_command_fsm::do_async_reply_reason): Rename from
step_command_fsm_async_reply_reason.
(struct until_next_fsm): Inherit from thread_fsm. Add
constructor.
(until_next_fsm_ops): Remove.
(new_until_next_fsm): Remove.
(until_next_fsm::should_stop): Rename from
until_next_fsm_should_stop.
(until_next_fsm::clean_up): Rename from until_next_fsm_clean_up.
(until_next_fsm::do_async_reply_reason): Rename from
until_next_fsm_async_reply_reason.
(struct finish_command_fsm): Inherit from thread_fsm. Add
constructor. Change type of breakpoint.
(finish_command_fsm_ops): Remove.
(new_finish_command_fsm): Remove.
(finish_command_fsm::should_stop): Rename from
finish_command_fsm_should_stop.
(finish_command_fsm::clean_up): Rename from
finish_command_fsm_clean_up.
(finish_command_fsm::return_value): Rename from
finish_command_fsm_return_value.
(finish_command_fsm::do_async_reply_reason): Rename from
finish_command_fsm_async_reply_reason.
(finish_command): Update.
* infcall.c (struct call_thread_fsm): Inherit from thread_fsm.
Add constructor.
(call_thread_fsm_ops): Remove.
(call_thread_fsm::call_thread_fsm): Rename from
new_call_thread_fsm.
(call_thread_fsm::should_stop): Rename from
call_thread_fsm_should_stop.
(call_thread_fsm::should_notify_stop): Rename from
call_thread_fsm_should_notify_stop.
(run_inferior_call, call_function_by_hand_dummy): Update.
* cli/cli-interp.c (should_print_stop_to_console): Update.
* breakpoint.c (struct until_break_fsm): Inherit from thread_fsm.
Add constructor. Change type of location_breakpoint,
caller_breakpoint.
(until_break_fsm_ops): Remove.
(new_until_break_fsm): Remove.
(until_break_fsm::should_stop): Rename from
until_break_fsm_should_stop.
(until_break_fsm::clean_up): Rename from
until_break_fsm_clean_up.
(until_break_fsm::do_async_reply_reason): Rename from
until_break_fsm_async_reply_reason.
(until_break_command): Update.
* thread-fsm.c: Remove.
* Makefile.in (COMMON_SFILES): Remove thread-fsm.c.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make gdb.base/corefile.exp work on terminals with few rows
@ 2019-02-07 14:39 sergiodj+buildbot
2019-02-07 14:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 14:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bd447abb2442f74c2b4886f6cdacd16fce3c9d65 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: bd447abb2442f74c2b4886f6cdacd16fce3c9d65
Make gdb.base/corefile.exp work on terminals with few rows
When creating a pty to spawn a subprocess (such as gdb), Expect
copies the settings of its own controlling terminal, including the
number of rows and columns. If you "make check" on a terminal with just
a few rows (e.g. 4), GDB will paginate before reaching the initial
prompt. In default_gdb_start, used by most tests, this is already
handled: if we see the pagination prompt, we sent \n to continue.
Philippe reported that gdb.base/corefile.exp didn't work in terminals
with just a few rows. This test spawns GDB by hand, because it needs to
check things before the initial prompt, which it couldn't do if it used
default_gdb_start.
In this case I think it's not safe to use the same technique as in
default_gdb_start. Even if we could send a \n if we see a pagination
prompt, we match some multiline regexes in there. So if a pagination
slips in there, it might make the regexes not match and fail the test.
It's also not possible to use -ex "set height 0" or -iex "set height 0",
it is handled after the introduction text is shown.
The simplest way I found to avoid showing the pagination completely is
to set stty_init (documented in expect's man page) to initialize gdb's
pty with a fixed number of rows.
And actually, if we set stty_init in gdb_init, it works nicely as a
general solution applicable to all tests. We can therefore remove the
solution introduced in e882ef3cfc3 ("testsuite: expect possible
pagination when starting gdb") where we matched the pagination prompt
during startup.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (default_gdb_start): Don't match pagination
prompt.
(gdb_init): Set stty_init.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move potentially obsolete BFD targets into the definitely obsolete section. Add a note to the README-how-to-make-a-release document about doing this.
@ 2019-02-07 14:54 sergiodj+buildbot
2019-02-07 14:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 14:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2012bf013b2ce507b181c0d9049ad946b2a59d8a ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 2012bf013b2ce507b181c0d9049ad946b2a59d8a
Move potentially obsolete BFD targets into the definitely obsolete section. Add a note to the README-how-to-make-a-release document about doing this.
bfd * config.bfd: Move the powerpc-lynxos and powerpc-windiss targets
into the definitely obsolete list.
binutils * README-how-to-make-a-release: Add a note about updating the
obsolete targets in the bfd/config.bfd file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdbserver: When attaching, add process before lwps
@ 2019-02-07 15:06 sergiodj+buildbot
2019-02-07 15:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 15:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT df0da8a2b80315485330c03c18b704b8d7b3e9c2 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: df0da8a2b80315485330c03c18b704b8d7b3e9c2
gdbserver: When attaching, add process before lwps
The recent BP/WP changes for AArch64 swapping the order in add_lwp()
so that the process was added before the lwp. This was due to the lwp
creation requiring the process data.
This also needs changing in linux_attach().
Also add additional checks to make sure cannot attach to the same
process twice. Add test case for this - do this by splitting
attach.exp into distinct pass and error case sections.
Fixes gdb.server/ext-attach.exp on Aarch64.
gdb/gdbserver/ChangeLog:
* linux-low.c (linux_attach): Add process before lwp.
* server.c (attach_inferior): Check if already attached.
gdb/testsuite/ChangeLog:
* gdb.base/attach.exp: Add double attach test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Visium: fix bogus overflow check on 32-bit hosts
@ 2019-02-07 16:18 sergiodj+buildbot
2019-02-07 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68a091326f6ac25005c49c4cbda1855080ba1d5f ***
Author: Eric Botcazou <ebotcazou@gcc.gnu.org>
Branch: master
Commit: 68a091326f6ac25005c49c4cbda1855080ba1d5f
Visium: fix bogus overflow check on 32-bit hosts
bfd/
* elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak.
<R_VISIUM_PC16>: Use explicit range test to detect an overflow.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Add verifier for By elem Single and Double sized instructions.
@ 2019-02-07 17:54 sergiodj+buildbot
2019-02-07 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 17:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6456d318aaa7ea35511dad1f2facf0fb984972e5 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 6456d318aaa7ea35511dad1f2facf0fb984972e5
AArch64: Add verifier for By elem Single and Double sized instructions.
The AArch64 instruction set has cut-outs inside instructions encodings for
when a given encoding that would normally fall within the encoding space of
an instruction is instead undefined.
This updates the first few instructions FMLA, FMLA, FMUL and FMULX in the case
where sz:L == 11.
gas/ChangeLog:
PR binutils/23212
* testsuite/gas/aarch64/undefined_by_elem_sz_l.s: New test.
* testsuite/gas/aarch64/undefined_by_elem_sz_l.d: New test.
opcodes/ChangeLog:
PR binutils/23212
* aarch64-opc.h (enum aarch64_field_kind): Add FLD_sz.
* aarch64-opc.c (verify_elem_sd): New.
(fields): Add FLD_sz entr.
* aarch64-tbl.h (_SIMD_INSN): New.
(aarch64_opcode_table): Add elem_sd verifier to fmla, fmls, fmul and
fmulx scalar and vector by element isns.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Compress 3-operand beq/bne against x0.
@ 2019-02-08 21:33 sergiodj+buildbot
2019-02-08 21:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-08 21:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca0bc1509849a3871e99fdf48705b93f18d5fa7b ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: ca0bc1509849a3871e99fdf48705b93f18d5fa7b
RISC-V: Compress 3-operand beq/bne against x0.
This lets us accept an instruction like
beq a2,x0,.Label
and generate a compressed beqz. This will allow some future simplications
to the gcc support, e.g. eliminating some duplicate patterns, and avoiding
adding new duplicate patterns, since currently we have to handle signed
and equality compares against zero specially.
Tested with rv{32,64}-{elf,linux} cross builds and make checks for binutils
and gcc. There were no regressions.
gas/
* config/tc-riscv.c (validate_riscv_insn) <'C'>: Add 'z' support.
(riscv_ip) <'C'>: Add 'z' support.
opcodes/
* riscv-opc.c (riscv_opcodes) <beq>: Use Cz to compress 3 operand form.
<bne>: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Add FP register core file support.
@ 2019-02-08 21:44 sergiodj+buildbot
2019-02-08 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-08 21:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 617126bc8ae3c83b565aef1a454742c8a7237c14 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 617126bc8ae3c83b565aef1a454742c8a7237c14
RISC-V: Add FP register core file support.
This adds fp reg support similar to the existing general reg support.
This fixes one gdb testsuite failure
FAIL: gdb.base/gcore.exp: corefile restored system registers
which fails without the patch because fcsr was missing. Otherwise, no
regressions with riscv64-linux native testsuite run.
gdb/
* riscv-linux-tdep.c (riscv_linux_fregmap): New.
(riscv_linux_fregset): New.
(riscv_linux_iterate_over_regset_sections): Call cb for .reg2 section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [ARC] don't force _init/_fini as DT_INIT/DT_FINI.
@ 2019-02-09 10:19 sergiodj+buildbot
2019-02-09 10:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-09 10:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a0e90a73f0dc7e44c980ef5ea512eb7a3bd0cabc ***
Author: Claudiu Zissulescu <claziss@gmail.com>
Branch: master
Commit: a0e90a73f0dc7e44c980ef5ea512eb7a3bd0cabc
[ARC] don't force _init/_fini as DT_INIT/DT_FINI.
Recent gcc commit b4371b277f1e ("[ARC] Enable init_array support")
inhibits DT_"INIT,FINI} in favor of DT_{INIT,FINI}ARRAY.
Even prior to that, it seems ARC port is the only one with this
special DT_INIT/FINI handling in linker emulation. Removing it
doesn't seem to change any uClibc/glibc testsuite results,
so this can RIP anyways.
bfd/
2019-02-01 Vineet Gupta <vgupta@synopsys.com>
* elf32-arc.c: Delete init_str, fini_str
ld/
2019-02-01 Vineet Gupta <vgupta@synopsys.com>
* emultempl/arclinux.em : Delete special INIT/FINI handling.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] (Ada) -var-update crash for variable whose type is a reference to changeable
@ 2019-02-10 9:13 sergiodj+buildbot
2019-02-10 9:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-10 9:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aff29d1c738c0327e7b40ba9f6885279b75e3eca ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: aff29d1c738c0327e7b40ba9f6885279b75e3eca
(Ada) -var-update crash for variable whose type is a reference to changeable
Consider the following variable, which is a string whose value
is not known at compile time, because it is the return value
from a function call (Get_Name):
A : String := Get_Name;
If one tries to create a varobj for that variable, everything works
as expected:
| (gdb) -var-create a * a
| ^done,name="a",numchild="19",value="[19] \"Some kind of string\"",type="<ref> array (1 .. 19) of character",thread-id="1",has_more="0"
However, try then to request an update, regardless of whether the string
has changed or not, and we get a crash:
| -var-update a
| ~"/[...]/gdb/varobj.c:1379: internal-error: bool install_new_value(varobj*, value*, bool): Assertion `!value_lazy (var->value.get ())' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugging session? (y or n) "
When the varobj gets created (-var-create), the expression is evaluated
and transformed into a value. The debugging information describes our
variables as a reference to an array of characters, so our value has
the corresponding type. We then call varobj.c::install_new_value
to store that value inside our varobj, and we see that this function
pretty starts by determining weither our varobj is changeable, via:
| changeable = varobj_value_is_changeable_p (var);
(where 'var' is the varobj we are building, and where the function
varobj_value_is_changeable_p simply dispatches to the Ada version
of this routine: ada_value_is_changeable_p).
At this point, the varobj doesn't have a value, yet, but it does
have a type which was provided by varobj_create a little bit before
install_new_value was called. So ada_value_is_changeable_p uses that
to determine whether or not our type is changeable.
Since our type is a reference to an array, and that the value of
such objects is displayed as if there weren't a reference, it means
that our object is changeable -- in other words, if an element of
the string changes, then the "value" field of the varobj will change
accordingly. But unfortunately, ada_value_is_changeable_p mistakenly
returns false, because it is missing the handling of reference types.
As a consequence of this, install_new_value doesn't feel it is
necessary to fetch the value's contents, as explained by the following
comment inside that function:
/* The new value might be lazy. If the type is changeable,
that is we'll be comparing values of this type, fetch the
value now. Otherwise, on the next update the old value
will be lazy, which means we've lost that old value. */
This means that a lazy value gets installed inside our varobj
as a result of the mistake in ada_value_is_changeable_p.
Another important detail is that, after determining whether
our varobj is changeable or not, it then purposefully removes
the reference layer from our value:
/* We are not interested in the address of references, and given
that in C++ a reference is not rebindable, it cannot
meaningfully change. So, get hold of the real value. */
if (value)
value = coerce_ref (value);
The consequence of those two facts on shows up only later, when
the user requests an update (-var-update). When doing so, GDB
evaluates the expression again into a value which is once more
a reference to a string, and then calls install_new_value again
to install the new value and report any changes. This time around,
the call to...
| changeable = varobj_value_is_changeable_p (var);
... now gets a varobj which has a value, and one which had the reference
layer removed! So, this time, we classify the varobj correctly, and
say it is changeable. And because it is changeable, we then go into
the section of code in install_new_value which checks for changes,
where we need the varobj's value to not be lazy, as explained by
the comment we quoted above. That's what the assertion was about.
This patch fixes the issues by teaching ada_value_is_changeable_p
to ignore reference layers when evaluating a given varobj's type.
gdb/ChangeLog:
* ada-varobj.c (ada_value_is_changeable_p): Add handling of
TYPE_CODE_REF types.
gdb/testsuite/ChangeLog:
* gdb.ada/mi_ref_changeable: New testcase.
Prior to this patch, this testcase reports 2 unresolved tests
(due to GDB hitting the internal error). With this patch, all
tests in this testcase pass.
Tested on x86_64-linux, no regression.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix type_stack leaks in c expression parsing.
@ 2019-02-10 12:29 sergiodj+buildbot
2019-02-10 12:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-10 12:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ab759ca8db37ffd3e32df5226e0b4ea16a81c849 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ab759ca8db37ffd3e32df5226e0b4ea16a81c849
Fix type_stack leaks in c expression parsing.
Valgrind detects a bunch of leaks in several tests, such as:
==22905== 40 (24 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 531 of 3,268
==22905== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22905== by 0x5893AD: get_type_stack() (parse.c:1509)
==22905== by 0x3F4EAD: c_yyparse() (c-exp.y:1223)
==22905== by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22905== by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22905== by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22905== by 0x588FA1: parse_exp_1 (parse.c:1099)
==22905== by 0x588FA1: parse_expression(char const*) (parse.c:1247)
...
==22395== 456 (168 direct, 288 indirect) bytes in 7 blocks are definitely lost in loss record 2,658 of 2,978
==22395== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22395== by 0x5893AD: get_type_stack() (parse.c:1509)
==22395== by 0x3F4ECF: c_yyparse() (c-exp.y:1230)
==22395== by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22395== by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22395== by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22395== by 0x588FA1: parse_exp_1 (parse.c:1099)
==22395== by 0x588FA1: parse_expression(char const*) (parse.c:1247)
==22395== by 0x67BB9D: whatis_exp(char const*, int) (typeprint.c:515)
...
==22395== VALGRIND_GDB_ERROR_BEGIN
==22395== 144 (24 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 1,016 of 2,978
==22395== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==22395== by 0x5893AD: get_type_stack() (parse.c:1509)
==22395== by 0x3F4E8A: c_yyparse() (c-exp.y:1217)
==22395== by 0x3F71BC: c_parse(parser_state*) (c-exp.y:3308)
==22395== by 0x588CEA: parse_exp_in_context_1(char const**, unsigned long, block const*, int, int, int*) [clone .constprop.89] (parse.c:1205)
==22395== by 0x588FA1: parse_exp_in_context (parse.c:1108)
==22395== by 0x588FA1: parse_exp_1 (parse.c:1099)
==22395== by 0x588FA1: parse_expression(char const*) (parse.c:1247)
==22395== by 0x67BB9D: whatis_exp(char const*, int) (typeprint.c:515)
...
Fix these by storing the allocated type_stack in the cpstate->type_stacks
vector.
Tested on debian/amd64, natively and under valgrind.
gdb/ChangeLog
2019-02-10 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* c-exp.y (direct_abs_decl): Use emplace_back to record the
type_stack.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Detect exit from execve syscall
@ 2019-02-11 17:01 sergiodj+buildbot
2019-02-11 17:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-11 17:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ea638c43121624bb4b09bb89b88314f99c85a48d ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ea638c43121624bb4b09bb89b88314f99c85a48d
AArch64: Detect exit from execve syscall
Checking the syscall number when stopped on entry/exit relies on checking
the value in register X8.
However, on exit from an execve syscall, the registers will all be cleared.
Given this is only checked on syscall entry/exit, then a cleared register
state either means execve exit or syscall 0 (io_setup) entry with invalid
parameters and an invalid FR and LR, which in reality should never happen.
Use this to detect execve exit.
Move function to allow use of aarch64_sys_execve enum, and use newer
regcache functions.
Fixes gdb.base/catch-syscall.exp on Aarch64.
gdb/ChangeLog:
* aarch64-linux-tdep.c (aarch64_linux_get_syscall_number): Check
for execve.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp
@ 2019-02-12 13:20 sergiodj+buildbot
2019-02-12 13:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 13:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e20773049fde7b9a123fda4485259fc06249b22f ***
Author: tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Branch: master
Commit: e20773049fde7b9a123fda4485259fc06249b22f
Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp
When a node is removed from a splay tree, the splay tree was
not using the function splay_tree_delete_key_fn to release the key.
This was causing a leak, fixed by Tom Tromey.
This patch fixes another key leak, that happens when a key equal to
a key already present is inserted. In such a case, we have to release
the old KEY.
Note that this is based on the assumption that the caller always
allocates a new KEY when doing an insert.
Also, clarify the documentation about when the release functions are
called.
2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* splay-tree.h (splay_tree_delete_key_fn): Update comment.
(splay_tree_delete_value_fn): Likewise.
libiberty/ChangeLog
2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* splay-tree.c (splay_tree_insert): Also release old KEY in case
of insertion of a key equal to an already present key.
(splay_tree_new_typed_alloc): Update comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268793 138bc75d-0d04-0410-961f-82ee72b054a4
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use function_name_style to print Ada and C function names
@ 2019-02-12 19:30 sergiodj+buildbot
2019-02-12 19:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 19:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ac8c53cc67724f990003009fd37a3d7dc662fcb3 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ac8c53cc67724f990003009fd37a3d7dc662fcb3
Use function_name_style to print Ada and C function names
Note that ada-typeprint.c print_func_type is called with
types representing functions and is also called to print
a function NAME together with its type. In such a case, the function
name will be printed using function name style.
Similarly, c_print_type_1 is called to print a type, optionally
with the name of an object of this type in the VARSTRING arg.
So, c_print_type_1 uses function name style to print varstring
when the type code indicates that c_print_type_1 TYPE is some
'real code'.
gdb/ChangeLog
2019-02-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* ada-typeprint.c (print_func_type): Print function name
style to print function name.
* c-typeprint.c (c_print_type_1): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Look for separate debug files in debug directories under a sysroot.
@ 2019-02-12 22:12 sergiodj+buildbot
2019-02-12 22:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 402d2bfec425f29c5b54089d5ff98ca9a1b8ec27 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 402d2bfec425f29c5b54089d5ff98ca9a1b8ec27
Look for separate debug files in debug directories under a sysroot.
When an object file is present in a system root, GDB currently looks
for separate debug files under the global debugfile directories. For
example, if the sysroot is set to "/myroot" and hte global debugfile
directory is set to "/usr/lib/debug", GDB will look for a separate
debug file for "/myroot/lib/libc.so.7" in the following paths:
/myroot/lib/libc.so.7.debug
/myroot/lib/.debug/libc.so.7.debug
/usr/lib/debug//myroot/lib/libc.so.7.debug
/usr/lib/debug/lib/libc.so.7.debug
However, some system roots include a full system installation
including a nested global debugfile directory under the sysroot. This
patch adds an additional check to support such systems. In the
example above the additional path searched is:
/myroot/usr/lib/debug/lib/libc.so.7.debug
To try to preserve existing behavior as much as possible, this new
path is searched last for each global debugfile directory.
gdb/ChangeLog:
* symfile.c (find_separate_debug_file): Look for separate debug
files in debug directories under the sysroot.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a new function child_path.
@ 2019-02-12 22:22 sergiodj+buildbot
2019-02-12 22:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT efac4bfe0b2bdd21a27c94ca3464046e9c23f0e4 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: efac4bfe0b2bdd21a27c94ca3464046e9c23f0e4
Add a new function child_path.
child_path returns a pointer to the first component in a child path
that comes after a parent path. This does not depend on trying to
stat() the paths since they may describe remote paths but instead
relies on filename parsing. The function requires that the child path
describe a filename that contains at least one component below the
parent path and returns a pointer to the first component.
gdb/ChangeLog:
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
unittests/child-path-selftests.c.
* common/pathstuff.c (child_path): New function.
* common/pathstuff.h (child_path): New prototype.
* unittests/child-path-selftests.c: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Try to use the canonical version of a sysroot for debug file links.
@ 2019-02-12 22:44 sergiodj+buildbot
2019-02-12 22:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f62318e98d84e79e457920c74515fb73bb013b23 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: f62318e98d84e79e457920c74515fb73bb013b23
Try to use the canonical version of a sysroot for debug file links.
Object file paths passed to find_separate_debug_file are always
canonical paths with symbolic links resolved. If a sysroot path
traverses a symbolic link, it will not match the object file paths.
Generate a canonical version of the sysroot directory. If it is
valid, use it instead of gdb_sysroot with child_path to determine if
an object file is under a system root.
gdb/ChangeLog:
* symfile.c (find_separate_debug_file): Use canonical path of
sysroot with child_path instead of gdb_sysroot if it is valid.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add Andrew Burgess as global maintainer of gdb/ and sim/
@ 2019-02-13 22:36 sergiodj+buildbot
2019-02-13 22:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-13 22:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 007024cc6ae8cd1a22e328eb4150adaa4baf5731 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 007024cc6ae8cd1a22e328eb4150adaa4baf5731
Add Andrew Burgess as global maintainer of gdb/ and sim/
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] (Windows) remove thread notification for main thread of inferior
@ 2019-02-14 3:27 sergiodj+buildbot
2019-02-14 3:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 3:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c559d7096b4b1b9c4e8d78cfd67b1892c1836ffb ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: c559d7096b4b1b9c4e8d78cfd67b1892c1836ffb
(Windows) remove thread notification for main thread of inferior
This is a followup on a recent patch which, among other things
introduced the exit notification of the main thread in order
to be symetrical with the fact that a thread notification was
emitted before signaling its creation.
This patch takes the opposite approach of removing both creation
and exit notifications for that main thread, which is consistent
with what is done on other platforms such as GNU/Linux for instance.
gdb/ChangeLog
* windows-nat.c (windows_add_thread): Add new parameter
"main_thread_p" with default value set to false. Update
function documentation as well as all callers.
(windows_delete_thread): Likewise.
(fake_create_process): Update call to windows_add_thread.
(get_windows_debug_event) <CREATE_THREAD_DEBUG_EVENT>
<CREATE_PROCESS_DEBUG_EVENT>: Likewise.
<EXIT_THREAD_DEBUG_EVENT, EXIT_PROCESS_DEBUG_EVENT>: Update
call to windows_delete_thread.
Tested on x86-windows (MinGW) using AdaCore's testsuite.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Remove long obsolete 'gnu_target_pid_to_str' function declaration
@ 2019-02-14 15:01 sergiodj+buildbot
2019-02-14 15:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 15:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b1041ae0ae8a2f1c51e75b45004686f1956078ed ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: b1041ae0ae8a2f1c51e75b45004686f1956078ed
[gdb, hurd] Remove long obsolete 'gnu_target_pid_to_str' function declaration
... for function definition removed/renamed in 1999. ;-)
gdb/
* config/i386/nm-i386gnu.h (gnu_target_pid_to_str): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class
@ 2019-02-14 15:26 sergiodj+buildbot
2019-02-14 15:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 15:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cabb5f067daa9227bf0323cbf64c6065d6e4796f ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: cabb5f067daa9227bf0323cbf64c6065d6e4796f
[gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class
In file included from ./nm.h:25:0,
from [...]/gdb/defs.h:423,
from [...]/gdb/gdb.c:19:
[...]/gdb/regcache.h:35:46: warning: 'get_thread_regcache' initialized and declared 'extern'
extern struct regcache *get_thread_regcache (thread_info *thread);
^~~~~~~~~~~
[...]/gdb/regcache.h:35:46: error: 'regcache* get_thread_regcache' redeclared as different kind of symbol
[...]
[...]/gdb/gdbarch.h:1203:69: error: 'thread_info' is not a type
extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread);
^~~~~~~~~~~
Fixed with a different (self-contained, more maintainable?) approach compared
to what has been done in commit 7aabaf9d4ad52a1df1f551908fbd8cafc5e7597a
"Create private_thread_info hierarchy", and commit
75cbc781e371279f4403045be93b07fd8fe7fde5 "gdb: For macOS, s/thread_info/struct
thread_info/". We don't want to change all the GDB code to everywhere use
'class thread_info' or 'struct thread_info' instead of plain 'thread_info'.
gdb/
* config/i386/nm-i386gnu.h: Don't "#include" any files.
* gnu-nat.h (mach_thread_info): New function.
* gnu-nat.c (thread_takeover_sc_cmd): Use it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Convert struct target_ops to C++" changes
@ 2019-02-14 15:42 sergiodj+buildbot
2019-02-14 15:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 15:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2d0a338c7c321de6c63be4e7e3f06ba12b783c63 ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: 2d0a338c7c321de6c63be4e7e3f06ba12b783c63
[gdb, hurd] Repair build after "Convert struct target_ops to C++" changes
..., that is commit f6ac5f3d63e03a81c4ff3749aba234961cc9090e causing:
In file included from [...]/gdb/gnu-nat.c:24:0:
[...]/gdb/gnu-nat.h:123:1: error: expected class-name before '{' token
{
^
[...]/gdb/gnu-nat.h:128:16: error: 'inferior' has not been declared
void detach (inferior *, int) override;
^~~~~~~~
[...]/gdb/gnu-nat.h:132:8: error: use of enum 'target_xfer_status' without previous declaration
enum target_xfer_status xfer_partial (enum target_object object,
^~~~~~~~~~~~~~~~~~
[...]/gdb/gnu-nat.h:132:46: error: use of enum 'target_object' without previous declaration
enum target_xfer_status xfer_partial (enum target_object object,
^~~~~~~~~~~~~
[...]/gdb/gnu-nat.h:124:8: error: 'void gnu_nat_target::attach(const char*, int)' marked 'override', but does not override
void attach (const char *, int) override;
^~~~~~
[...]
[...]/gdb/gnu-nat.c: In member function 'virtual void gnu_nat_target::detach(inferior*, int)':
[...]/gdb/gnu-nat.c:2286:34: error: 'ops' was not declared in this scope
inf_child_maybe_unpush_target (ops);
^~~
[...]/gdb/gnu-nat.c:2286:34: note: suggested alternative: 'open'
inf_child_maybe_unpush_target (ops);
^~~
open
[...]/gdb/gnu-nat.c:2286:3: error: 'inf_child_maybe_unpush_target' was not declared in this scope
inf_child_maybe_unpush_target (ops);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]/gdb/gnu-nat.c:2286:3: note: suggested alternative: 'maybe_unpush_target'
inf_child_maybe_unpush_target (ops);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maybe_unpush_target
[...]/gdb/i386-gnu-nat.c:200:1: warning: 'void gnu_store_registers(target_ops*, regcache*, int)' defined but not used [-Wunused-function]
gnu_store_registers (struct target_ops *ops,
^~~~~~~~~~~~~~~~~~~
[...]/gdb/i386-gnu-nat.c:109:1: warning: 'void gnu_fetch_registers(target_ops*, regcache*, int)' defined but not used [-Wunused-function]
gnu_fetch_registers (struct target_ops *ops,
^~~~~~~~~~~~~~~~~~~
[...]
/usr/bin/ld: i386-gnu-nat.o:(.data.rel+0x0): undefined reference to `vtable for i386_gnu_nat_target'
collect2: error: ld returned 1 exit status
gdb/
* gnu-nat.c (gnu_nat_target::detach): Instead of
'inf_child_maybe_unpush_target (ops)' call 'maybe_unpush_target'.
* gnu-nat.h: #include "inf-child.h".
* i386-gnu-nat.c (gnu_fetch_registers): Rename/move to
'i386_gnu_nat_target::fetch_registers'.
(gnu_store_registers): Rename/move to
'i386_gnu_nat_target::store_registers'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout"
@ 2019-02-14 16:25 sergiodj+buildbot
2019-02-14 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 16:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c29ee8d45ec2113821c006a18cfedb9023ef9ce1 ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: c29ee8d45ec2113821c006a18cfedb9023ef9ce1
[gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout"
..., that is commit 00431a78b28f913a9d5c912c49680e39cfd20847 causing:
[...]/gdb/gnu-nat.c: In member function 'virtual void gnu_nat_target::detach(inferior*, int)':
[...]/gdb/gnu-nat.c:2284:23: error: invalid conversion from 'int' to 'inferior*' [-fpermissive]
detach_inferior (pid);
^
In file included from [...]/gdb/gnu-nat.c:61:0:
[...]/gdb/inferior.h:523:13: note: initializing argument 1 of 'void detach_inferior(inferior*)'
extern void detach_inferior (inferior *inf);
^~~~~~~~~~~~~~~
Fixed by inlining the removed code.
gdb/
* gnu-nat.c (gnu_nat_target::detach): Instead of
'detach_inferior (pid)' call
'detach_inferior (find_inferior_pid (pid))'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Address "ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]" diagnostics
@ 2019-02-14 16:36 sergiodj+buildbot
2019-02-14 16:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 16:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 924514e11c21ac5a5805e7a14824b6f3182b2198 ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: 924514e11c21ac5a5805e7a14824b6f3182b2198
[gdb, hurd] Address "ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]" diagnostics
... that appeared with 9bf2a700667c53003ece783c05e8b355801105f2
"-Wwrite-strings: Remove -Wno-write-strings".
gdb/
* gnu-nat.c (gnu_write_inferior, parse_int_arg, _parse_bool_arg)
(check_empty): Use "const char *".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Adjust to Hurd "proc" interface changes
@ 2019-02-14 16:49 sergiodj+buildbot
2019-02-14 16:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 16:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8071c5ce78245eff43f9977a7c3ff8328f7486da ***
Author: David Michael <fedora.dm0@gmail.com>
Branch: master
Commit: 8071c5ce78245eff43f9977a7c3ff8328f7486da
[gdb, hurd] Adjust to Hurd "proc" interface changes
Hurd's commit baf7e5c8ce176aead15c2559952d8bdf0da41ffd "hurd: Use polymorphic
port types to return some rights" causes in the GDB build:
/usr/bin/ld: process_reply_S.o: in function `_Xproc_pid2proc_reply':
[...]/gdb/process_reply_S.c:754: undefined reference to `S_proc_pid2proc_reply'
/usr/bin/ld: [...]/gdb/process_reply_S.c:730: undefined reference to `S_proc_pid2proc_reply'
/usr/bin/ld: process_reply_S.o: in function `_Xproc_task2proc_reply':
[...]/gdb/process_reply_S.c:589: undefined reference to `S_proc_task2proc_reply'
/usr/bin/ld: [...]/gdb/process_reply_S.c:565: undefined reference to `S_proc_task2proc_reply'
/usr/bin/ld: process_reply_S.o: in function `_Xproc_getmsgport_reply':
[...]/gdb/process_reply_S.c:204: undefined reference to `S_proc_getmsgport_reply'
/usr/bin/ld: [...]/gdb/process_reply_S.c:180: undefined reference to `S_proc_getmsgport_reply'
collect2: error: ld returned 1 exit status
gdb/
* gnu-nat.c (S_proc_getmsgport_reply, S_proc_task2proc_reply)
(S_proc_pid2proc_reply): Adjust to Hurd "proc" interface changes.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb, hurd] Avoid using 'PATH_MAX' in 'gdb/remote.c'
@ 2019-02-14 17:20 sergiodj+buildbot
2019-02-14 17:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 17:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b671c7fb21306ce125717a44c30a71686bd24db1 ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: b671c7fb21306ce125717a44c30a71686bd24db1
[gdb, hurd] Avoid using 'PATH_MAX' in 'gdb/remote.c'
..., which is not defined in GNU/Hurd systems, and so commit
94585166dfea8232c248044f9f4b1c217dc4ac2e "Extended-remote follow-exec" caused:
[...]/gdb/remote.c: In member function 'void remote_target::remote_parse_stop_reply(const char*, stop_reply*)':
[...]/gdb/remote.c:7343:22: error: 'PATH_MAX' was not declared in this scope
char pathname[PATH_MAX];
^~~~~~~~
gdb/
* remote.c (remote_target::remote_parse_stop_reply): Avoid using
'PATH_MAX'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Updating test case
@ 2019-02-14 22:41 sergiodj+buildbot
2019-02-14 22:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 22:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d70ffbc5ba41c766ce629447af8e72a5ceba229 ***
Author: Weimin Pan <weimin.pan@oracle.com>
Branch: master
Commit: 9d70ffbc5ba41c766ce629447af8e72a5ceba229
Updating test case
gdb.arch/aarch64-dbreg-contents.exp:
* Replaced "run" with "runto_main + continue".
* Replaced "gdb_compile + clean_restart" with "prepare_for_testing".
* Added comment for case "exited with code 01".
gdb.arch/aarch64-dbreg-contents.c:
* Removed SET_WATCHPOINT marco.
* Removed redundent cleanup ().
* Cleaned up comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] C++-ify bp_location
@ 2019-02-15 20:41 sergiodj+buildbot
2019-02-15 20:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 20:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5f486660101ab09d50fa3bb9a10555f12722f39f ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 5f486660101ab09d50fa3bb9a10555f12722f39f
C++-ify bp_location
Philippe noticed a memory leak coming from ada_catchpoint_location --
it was not freeing the "function_name" member from its base class:
==14141== 114 bytes in 4 blocks are definitely lost in loss record 1,055 of 3,424
==14141== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==14141== by 0x405107: xmalloc (common-utils.c:44)
==14141== by 0x7563F9: xstrdup (xstrdup.c:34)
==14141== by 0x3B82B3: set_breakpoint_location_function(bp_location*, int) (breakpoint.c:7156)
==14141== by 0x3C112B: add_location_to_breakpoint(breakpoint*, symtab_and_line const*) (breakpoint.c:8609)
==14141== by 0x3C127A: init_raw_breakpoint(breakpoint*, gdbarch*, symtab_and_line, bptype, breakpoint_ops const*) (breakpoint.c:7187)
==14141== by 0x3C1B52: init_ada_exception_breakpoint(breakpoint*, gdbarch*, symtab_and_line, char const*, breakpoint_ops const*, int, int, int) (breakpoint.c:11262)
==14141== by 0x381C2E: create_ada_exception_catchpoint(gdbarch*, ada_exception_catchpoint_kind, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int) (ada-lang.c:13255)
This patch fixes the problem by further C++-ifying bp_location. In
particular, bp_location_ops is now removed, and the "dtor" function
pointer is replaced with an ordinary destructor.
gdb/ChangeLog
2019-02-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
Tom Tromey <tromey@adacore.com>
* breakpoint.c (~bp_location): Rename from bp_location_dtor.
(bp_location_ops): Remove.
(base_breakpoint_allocate_location): Update.
(free_bp_location): Update.
* ada-lang.c (class ada_catchpoint_location)
<ada_catchpoint_location>: Remove ops parameter.
(ada_catchpoint_location_dtor): Remove.
(ada_catchpoint_location_ops): Remove.
(allocate_location_exception): Update.
* breakpoint.h (struct bp_location_ops): Remove.
(class bp_location) <bp_location>: Remove bp_location_ops
parameter.
<~bp_location>: Add destructor.
<ops>: Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix memory leak in create_ada_exception_catchpoint
@ 2019-02-15 20:53 sergiodj+buildbot
2019-02-15 20:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 20:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cc12f4a8f97791cf9729ff9341f7c0fbd9d6a79e ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: cc12f4a8f97791cf9729ff9341f7c0fbd9d6a79e
Fix memory leak in create_ada_exception_catchpoint
Phillipe noticed that create_ada_exception_catchpoint was not freeing
the "addr_string" memory:
==14141== 114 bytes in 4 blocks are definitely lost in loss record 1,054 of 3,424
==14141== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==14141== by 0x405107: xmalloc (common-utils.c:44)
==14141== by 0x7563F9: xstrdup (xstrdup.c:34)
==14141== by 0x381B21: ada_exception_sal (ada-lang.c:13217)
==14141== by 0x381B21: create_ada_exception_catchpoint(gdbarch*, ada_exception_catchpoint_kind, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int) (ada-lang.c:13251)
==14141== by 0x3820A8: catch_ada_exception_command(char const*, int, cmd_list_element*) (ada-lang.c:13285)
==14141== by 0x3F4828: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
This patch fixes the problem by changing ada_exception_sal to return a
std::string via its out parameter.
gdb/ChangeLog
2019-02-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_exception_sal): Change addr_string to a
std::string.
(create_ada_exception_catchpoint): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Exception safety in ravenscar-thread.c
@ 2019-02-15 21:22 sergiodj+buildbot
2019-02-15 21:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 21:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5b6ea500d554b173e63e1f8f0344d568ad347463 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 5b6ea500d554b173e63e1f8f0344d568ad347463
Exception safety in ravenscar-thread.c
This changes some code in ravenscar-thread.c to use scoped_restore. I
am not sure if it matters in practice, but this makes these methods
exception-safe in case the methods lower in the target stack can
throw.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (ravenscar_thread_target::stopped_by_sw_breakpoint)
(ravenscar_thread_target::stopped_by_hw_breakpoint)
(ravenscar_thread_target::stopped_by_watchpoint)
(ravenscar_thread_target::stopped_data_address)
(ravenscar_thread_target::core_of_thread): Use scoped_restore.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] C++-ify ravenscar_arch_ops
@ 2019-02-15 21:34 sergiodj+buildbot
2019-02-15 21:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 21:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7657f14df7c697792b626efbd24ac44ad5642485 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 7657f14df7c697792b626efbd24ac44ad5642485
C++-ify ravenscar_arch_ops
This turns ravenscar_arch_ops into an abstract base class and updates
all the places where it is used. This is an improvement because it
avoids any possibility of forgetting to set one of the function
pointers. It also makes clear that these functions aren't intended to
be changed dynamically.
This version of the patch removes the prepare_to_store method, as it
is unused, and it is easy enough to add if it is ever needed.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* sparc-ravenscar-thread.c (struct sparc_ravenscar_ops): Derive
from ravenscar_arch_ops.
(sparc_ravenscar_ops::fetch_registers)
(sparc_ravenscar_ops::store_registers): Now methods.
(sparc_ravenscar_prepare_to_store): Remove.
(sparc_ravenscar_ops): Redefine.
* ravenscar-thread.h (struct ravenscar_arch_ops): Add virtual
methods and destructor. Remove members.
* ravenscar-thread.c (ravenscar_thread_target::fetch_registers)
(ravenscar_thread_target::store_registers)
(ravenscar_thread_target::prepare_to_store): Update.
* ppc-ravenscar-thread.c (ppc_ravenscar_generic_prepare_to_store):
Remove.
(struct ppc_ravenscar_powerpc_ops): Derive from
ravenscar_arch_ops.
(ppc_ravenscar_powerpc_ops::fetch_registers)
(ppc_ravenscar_powerpc_ops::store_registers): Now methods.
(ppc_ravenscar_powerpc_ops): Redefine.
(struct ppc_ravenscar_e500_ops): Derive from ravenscar_arch_ops.
(ppc_ravenscar_e500_ops::fetch_registers)
(ppc_ravenscar_e500_ops::store_registers): Now methods.
(ppc_ravenscar_e500_ops): Redefine.
* aarch64-ravenscar-thread.c
(aarch64_ravenscar_generic_prepare_to_store): Remove.
(struct aarch64_ravenscar_ops): Derive from ravenscar_arch_ops.
(aarch64_ravenscar_fetch_registers)
(aarch64_ravenscar_store_registers): Now methods.
(aarch64_ravenscar_ops): Redefine.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix formatting in ravenscar-thread.c
@ 2019-02-15 22:07 sergiodj+buildbot
2019-02-15 22:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6cbcc006e95110b5d9168e9835e5df36782e975b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 6cbcc006e95110b5d9168e9835e5df36782e975b
Fix formatting in ravenscar-thread.c
This fixes some incorrect formatting in ravenscar-thread.c.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (ravenscar_runtime_initializer)
(has_ravenscar_runtime, get_running_thread_id)
(ravenscar_thread_target::resume): Fix indentation.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Minor C++-ification in ravenscar-thread.c
@ 2019-02-15 22:17 sergiodj+buildbot
2019-02-15 22:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 989f3c583d31e29029b1b7dd8ffd3afacbbb5c27 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 989f3c583d31e29029b1b7dd8ffd3afacbbb5c27
Minor C++-ification in ravenscar-thread.c
This changes some functions in ravenscar-thread.c to return "bool"
rather than int, where appropriate, and also changes "(void)" to "()".
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (is_ravenscar_task)
(ravenscar_task_is_currently_active): Return bool.
(ravenscar_update_inferior_ptid, get_running_thread_msymbol)
(_initialize_ravenscar): Remove "(void)".
(has_ravenscar_runtime, ravenscar_runtime_initialized): Likewise.
Return bool.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add push_target overload
@ 2019-02-15 22:29 sergiodj+buildbot
2019-02-15 22:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dea57a626364698759d1525acf9109771d173811 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: dea57a626364698759d1525acf9109771d173811
Add push_target overload
This adds a push_target overload that takes a "target_ops_up &&".
This removes some calls to release a target_ops_up, and makes the
intent here clearer.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* target.h (push_target): Declare new overload.
* target.c (push_target): New overload, taking an rvalue reference.
* remote.c (remote_target::open_1): Use push_target overload.
* corelow.c (core_target_open): Use push_target overload.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make the ravenscar thread target multi-target-ready
@ 2019-02-15 22:41 sergiodj+buildbot
2019-02-15 22:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0b790b1eeb3741217d4b7b419aca1ed77a114b6c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 0b790b1eeb3741217d4b7b419aca1ed77a114b6c
Make the ravenscar thread target multi-target-ready
This changes ravenscar-thread.c to make it ready for multi-target.
This is done by moving globals into the target, and then arranging to
allocate the target with "new" and delete the target in its "close"
method.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (base_ptid): Remove.
(struct ravenscar_thread_target) <close>: New method.
<m_base_ptid>: New member.
<update_inferior_ptid, active_task, task_is_currently_active,
runtime_initialized>: Declare methods.
<ravenscar_thread_target>: Add constructor.
(ravenscar_thread_target::task_is_currently_active)
(ravenscar_thread_target::update_inferior_ptid)
(ravenscar_runtime_initialized): Rename. Now methods.
(ravenscar_thread_target::resume, ravenscar_thread_target::wait)
(ravenscar_thread_target::update_thread_list): Update.
(ravenscar_thread_target::active_task): Now method.
(ravenscar_thread_target::store_registers)
(ravenscar_thread_target::prepare_to_store)
(ravenscar_thread_target::prepare_to_store)
(ravenscar_thread_target::mourn_inferior): Update.
(ravenscar_inferior_created): Use "new" to create target.
(ravenscar_thread_target::get_ada_task_ptid): Update.
(_initialize_ravenscar): Don't initialize base_ptid.
(ravenscar_ops): Remove global.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c
@ 2019-02-15 22:54 sergiodj+buildbot
2019-02-15 22:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 22:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 485b851b68ea035e3c49234dafcddb97c4f54a30 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 485b851b68ea035e3c49234dafcddb97c4f54a30
Special-case wildcard requests in ravenscar-thread.c
ravenscar-thread.c intercepts resume and wait target requests and
replaces the requested ptid with the ptid of the underlying CPU.
However, this is incorrect when a request is made with a wildcard
ptid.
This patch adds a special case to ravenscar-thread.c for
minus_one_ptid. I don't believe a special case for process wildcards
is necessary, so I have not added that.
Joel's description explains the bug well:
At the user level, we noticed the issue because we had a test were
we insert a breakpoint one some code which is only run from, say,
CPU #2, whereas we unfortunately resumed the execution after having
stopped somewhere in CPU #1. As a result, we sent an order to resume
CPU #1, which starves CPU #2 forever, because the code in CPU #1
waits for some of the Ada tasks allocated to CPU #2 (and we never
reach our breakpoint either).
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c (ravenscar_thread_target::resume)
(ravenscar_thread_target::wait): Special case wildcard requests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] (Ada) fix GDB crash printing packed array
@ 2019-02-17 13:48 sergiodj+buildbot
2019-02-17 13:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 13:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a2cd4f14750ae27ea5c250c98965eef842ee57db ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: a2cd4f14750ae27ea5c250c98965eef842ee57db
(Ada) fix GDB crash printing packed array
Trying to print a packed array sometimes leads to a crash (see
attached testcase for an example of when this happens):
| (gdb) p bad
| [1] 65571 segmentation fault gdb -q foo
Variable "bad" is declared in the debug information as an array where
the array's type name has an XPnnn suffix:
| .uleb128 0xc # (DIE (0x566) DW_TAG_typedef)
| .long .LASF200 # DW_AT_name: "pck__t___XP1"
| [loc info attributes snipped]
| .long 0x550 # DW_AT_type
| .byte 0x1 # DW_AT_alignment
The signals to GDB that the debugging information follows a GNAT encoding
used for packed arrays, and an in order to decode it, we need to find
the type whose name is the same minus the "___XPnnn" suffix: "pck__t".
For that, we make a call to ada-lang.c::standard_lookup, which is
a simple function which essentially does:
| /* Return the result of a standard (literal, C-like) lookup of NAME in
| given DOMAIN, visible from lexical block BLOCK. */
|
| [...]
| sym = lookup_symbol_in_language (name, block, domain, language_c, 0);
Unfortunately for us, while the intent of this call was to perform
an exact-match lookup, in our case, it returns ... type pck__t___XP1
instead! In other words, it finds itself back. The reason why it finds
this type is a confluence of two factors:
(1) Forcing the lookup into language_c currently does not affect
how symbol matching is done anymore, because we look at the symbol's
language to determine which kind of matching should be done;
(2) The lookup searches the local context (via block) first, beforei
doing a more general lookup. And looking at the debug info for
the main subprogram, we see that type "pck__t" is not declared
there, only in the debug info for pck.ads. In other words,
there is no way that we accidently find "pck__t" by random chance.
I believe Pedro added a new function called ada_lookup_encoded_symbol
for that specific purpose, so I started by replacing the lookup
by language above by this. Unfortunately, still no joy.
This was because, even though ada_lookup_encoded_symbol puts angle-
brackets around the search name to signal that we want a verbatim
search, we end up losing that information in the function called
to compare a symbol with the search name:
| static bool
| do_full_match (const char *symbol_search_name,
| const lookup_name_info &lookup_name,
| completion_match_result *comp_match_res)
| {
| return full_match (symbol_search_name, ada_lookup_name (lookup_name));
^^^^^^^^^^^^^^^
|
<=> lookup_name.m_ada.m_encoded_name
(no angle brackets)
The way I fixed this was by introducing a new function called
do_exact_match, and then adjust ada_get_symbol_name_matcher to
return that function when seeing that we have a verbatim non-wild-match
search.
As it happens, this fixes an incorrect test in gdb.ada/homony.exp,
where we were inserting a breakpoint on a symbol using the angle-brackets
notation, and got 2 locations for that breakpoint...
(gdb) b <homonym__get_value>
Breakpoint 1 at 0x4029fc: <homonym__get_value>. (2 locations)
... each location being in a different function:
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y <MULTIPLE>
1.1 y 0x00000000004029fc in homonym.get_value
at /[...]/homonym.adb:32
1.2 y 0x0000000000402a3a in homonym.get_value
at /[...]/homonym.adb:50
(gdb) x /i 0x00000000004029fc
0x4029fc <homonym__get_value+8>: movl $0x1d,-0x4(%rbp)
(gdb) x /i 0x0000000000402a3a
0x402a3a <homonym__get_value__2+8>: movl $0x11,-0x4(%rbp)
Since we used angle-brackets, we shouldn't be matching the second one,
something this patch fixes.
gdb/ChangeLog:
* ada-lang.c (standard_lookup): Use ada_lookup_encoded_symbol
instead of lookup_symbol_in_language
(do_exact_match): New function.
(ada_get_symbol_name_matcher): Return do_exact_match when
doing a verbatim match.
gdb/testsuite/ChangeLog:
* gdb.ada/big_packed_array: New testcase.
* gdb.ada/homonym.exp: Fix incorrect expected output for
"break <homonym__get_value>" test.
Tested on x86_64-linux.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] type_align: handle range types the same as ints and enums
@ 2019-02-17 15:18 sergiodj+buildbot
2019-02-17 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 15:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 75ba10dc558a450c7dbcdc24f816f6709f2b29f7 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 75ba10dc558a450c7dbcdc24f816f6709f2b29f7
type_align: handle range types the same as ints and enums
This commit enhances type_align to handle TYPE_CODE_RANGE types
the same as integers and enums, rather than returning zero,
which means for this function that it could not determine its
alignment.
gdb/ChangeLog:
* gdbtypes.c (type_align): Handle TYPE_CODE_RANGE the same as
integers and enumeration types.
Tested on x86_64-linux. Also tested on a variety of platforms
(with CPUs being ARM, AArch64, Leon3 (SPARC-like), PowerPC,
PowerPC64, RV64, Visium, x86, x86_64).
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix pager bugs with style output
@ 2019-02-17 17:51 sergiodj+buildbot
2019-02-17 17:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 17:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a008792038c2510800db466897c4bb6305d20042 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a008792038c2510800db466897c4bb6305d20042
Fix pager bugs with style output
I believe this fixes all the pager output problems with styling that
Philippe pointed out, plus at least one more. The patch is somewhat
hard to reason about, so you may wish to give it a try. Even writing
the tests was hard.
This removes the style caching, because it was difficult to keep the
style cache correct in all cases. Since this would cause more style
escapes to be emitted, instead it changes fputs_styled to try to avoid
unnecessary changes.
Another bug was that the wrap buffer was not flushed in the case where
wrap_column==0. In the old (pre-patch series) code, characters were
directly emitted in this case; so flushing the wrap buffer here
restores this behavior.
On error the wrap buffer must be emptied. Otherwise, interrupting
output can leave characters in the buffer that will be emitted later.
As discussed on gdb-patches, this fixes the ada-lang.c problem where
filtered and unfiltered printing were mixed. Now user_select_syms
uses filtered printing, which is what its callees were already doing.
Finally, it was possible for source line highlighting to be garbled
(and invalid escape sequences emitted) if the pager was invoked at the
wrong spot. To fix this, the patch arranges for source line escapes
to always be emitted as a unit.
gdb/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* ada-lang.c (user_select_syms): Use filtered printing.
* utils.c (wrap_style): New global.
(desired_style): Remove.
(emit_style_escape): Add stream parameter.
(set_output_style, reset_terminal_style, prompt_for_continue):
Update.
(flush_wrap_buffer): Only flush gdb_stdout.
(wrap_here): Set wrap_style.
(fputs_maybe_filtered): Clear the wrap buffer on exception. Don't
treat escape sequences as a character. Change when wrap buffer is
flushed.
(fputs_styled): Do not set the output style when the default is
requested.
* ui-style.h (struct ui_file_style) <is_default>: New method.
* source.c (print_source_lines_base): Emit escape sequences in one
piece.
gdb/testsuite/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add line-wrapping tests.
* gdb.base/page.exp: Add test for quitting during pagination.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix some valgrind errors in the TUI
@ 2019-02-17 18:03 sergiodj+buildbot
2019-02-17 18:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 18:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0c820d679358aa1ec7cd9e33c4bc23a7db964ea1 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0c820d679358aa1ec7cd9e33c4bc23a7db964ea1
Fix some valgrind errors in the TUI
The styling series introduced some new errors in the TUI -- the series
changed how source lines are allocated, without updating
tui_set_source_content_nil.
There are several failures but a typical one looks like:
==6274== Use of uninitialised value of size 8
==6274== at 0x4E4A095: wclrtoeol (in /usr/lib64/libncursesw.so.6.1)
==6274== by 0x4E47617: waddch (in /usr/lib64/libncursesw.so.6.1)
==6274== by 0x8325CB: tui_puts_internal(_win_st*, char const*, int*) (tui-io.c:393)
==6274== by 0x82E89D: tui_file::puts(char const*) (tui-file.c:39)
==6274== by 0x84BF5F: vfprintf_unfiltered(ui_file*, char const*, __va_list_tag*) (utils.c:2026)
This patch rewrites tui_set_source_content_nil, fixing the bug.
This was also reported as PR tui/24197.
Verified by running valgrind before and after on x86-64 Fedora 29.
gdb/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
PR tui/24197:
* tui/tui-source.c (tui_set_source_content_nil): Rewrite.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add styling to macro commands
@ 2019-02-17 23:50 sergiodj+buildbot
2019-02-17 23:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-17 23:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6506371f0671dd5ca11127fee4db8d8d7fec157f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6506371f0671dd5ca11127fee4db8d8d7fec157f
Add styling to macro commands
This adds filename styling to "info macro".
gdb/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* macrocmd.c (show_pp_source_pos): Style the file names.
gdb/testsuite/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Use -g3 to compile when possible. Add test
for macro styling.
* gdb.base/style.c (SOME_MACRO): New macro.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change macro_source_fullname to return a std::string
@ 2019-02-18 0:02 sergiodj+buildbot
2019-02-18 0:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-18 0:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9409233b0ec8a052eacc5846ee054f224f7e7213 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9409233b0ec8a052eacc5846ee054f224f7e7213
Change macro_source_fullname to return a std::string
While working on the previous patch, I noticed that if
macro_source_fullname returned a std::string, then the callers would
be simplified. This patch implements this idea.
gdb/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* macrotab.h (macro_source_fullname): Return a std::string.
* macrotab.c (macro_include, check_for_redefinition)
(macro_undef, macro_lookup_definition, foreach_macro)
(foreach_macro_in_scope): Update.
(macro_source_fullname): Return a std::string.
* macrocmd.c (show_pp_source_pos): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leaks of 'per program space' and 'per inferior' ada task data.
@ 2019-02-18 21:50 sergiodj+buildbot
2019-02-18 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-18 21:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 040b3e95e41f7af82e95c781aadc56a16019fd68 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 040b3e95e41f7af82e95c781aadc56a16019fd68
Fix leaks of 'per program space' and 'per inferior' ada task data.
Valgrind reports leaks such as the below.
Fix these leaks by changing ada_tasks_pspace_data_handle
and ada_tasks_inferior_data_handle to use the 'with_cleanup' register variant.
Tested on debian/amd64 natively and under Valgrind.
==26346== 56 bytes in 1 blocks are definitely lost in loss record 631 of 3,249
==26346== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==26346== by 0x38F911: get_ada_tasks_inferior_data(inferior*) (ada-tasks.c:281)
==26346== by 0x38FA3F: ada_tasks_invalidate_inferior_data (ada-tasks.c:1362)
==26346== by 0x38FA3F: ada_tasks_new_objfile_observer(objfile*) (ada-tasks.c:1411)
==26346== by 0x60CBC5: operator() (functional:2127)
==26346== by 0x60CBC5: notify (observable.h:106)
==26346== by 0x60CBC5: clear_symtab_users(enum_flags<symfile_add_flag>) (symfile.c:2903)
...
==26346== 104 bytes in 1 blocks are definitely lost in loss record 984 of 3,249
==26346== at 0x4C2E0BC: calloc (vg_replace_malloc.c:762)
==26346== by 0x4056F0: xcalloc (common-utils.c:84)
==26346== by 0x38F8AE: xcnew<ada_tasks_pspace_data> (poison.h:122)
==26346== by 0x38F8AE: get_ada_tasks_pspace_data(program_space*) (ada-tasks.c:253)
==26346== by 0x38FA77: ada_tasks_invalidate_pspace_data (ada-tasks.c:1354)
==26346== by 0x38FA77: ada_tasks_new_objfile_observer(objfile*) (ada-tasks.c:1394)
==26346== by 0x60CBC5: operator() (functional:2127)
==26346== by 0x60CBC5: notify (observable.h:106)
...
gdb/ChangeLog
2019-02-18 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* ada-task.c (_initialize_tasks): Use 'with_cleanup' register
variant for ada_tasks_pspace_data_handle and
ada_tasks_inferior_data_handle.
(ada_tasks_pspace_data_cleanup): New function.
(ada_tasks_inferior_data_cleanup): New function.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Allow gdbarch to override alignment for method and member pointers
@ 2019-02-18 23:39 sergiodj+buildbot
2019-02-18 23:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-18 23:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 70cd633e87e683a2233e852b96e5f1ef8591d4d1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 70cd633e87e683a2233e852b96e5f1ef8591d4d1
gdb: Allow gdbarch to override alignment for method and member pointers
The code in type_align (gdbtypes.c) currently hard-codes the rules for
aligning method and member pointers. It would seem better to forward
these types through the gdbarch hook, so that an architecture could
override the alignment of these types if needed.
Only 3 architectures currently override the gdbarch alignment hook,
these are arc, i386, and nio2.
For arc and nios the alignment rules are that alignment is the minimum
of 4-bytes and the type length. As pointers are 4-bytes on these
targets, then (assuming method and members pointers are also 4-bytes)
there should be no change to the alignment after this patch.
For i386 the gdbarch alignment hook overrides for some INT and FLOAT
types only. For method and member pointers we align on the type size
still, so there should be no change to the alignment after this patch.
I tested this on x86-64 GNU Linux with no regressions.
gdb/ChangeLog:
* gdbtypes.c (type_align): Allow alignment of TYPE_CODE_METHODPTR
and TYPE_CODE_MEMBERPTR to be overridden by the gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24235, Read memory violation in pei-x86_64.c
@ 2019-02-19 12:37 sergiodj+buildbot
2019-02-19 12:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-19 12:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 179f2db0d9c397d7dd8a59907b84208b79f7f48c ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 179f2db0d9c397d7dd8a59907b84208b79f7f48c
PR24235, Read memory violation in pei-x86_64.c
PR 24235
* pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
attempting to prevent read past end of section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Minor Ada task cleanups
@ 2019-02-19 19:45 sergiodj+buildbot
2019-02-19 19:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-19 19:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 98814c6c111a0681e691a72834c8dcc5b8d1bb3a ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 98814c6c111a0681e691a72834c8dcc5b8d1bb3a
Minor Ada task cleanups
While working on the Ada task code, I noticed a few things that could
be cleaned up:
* task_list_valid_p was not set in all cases in ada_build_task_list.
This causes many needless re-fetches of the task list.
* task_list_valid_p can be bool, and various functions can also return
bool.
* Nothing checks the return value of read_known_tasks, so it can be
changed to return void.
* The call to ada_build_task_list in
ravenscar_thread_target::update_thread_list is redundant, because
this is the first thing done by iterate_over_live_ada_tasks.
Tested using the internal AdaCore test suite against a ravenscar
target.
gdb/ChangeLog
2019-02-19 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c
(ravenscar_thread_target::update_thread_list): Don't call
ada_build_task_list.
* ada-lang.h (ada_build_task_list): Don't declare.
* ada-tasks.c (struct ada_tasks_inferior_data)
<task_list_valid_p>: Now bool.
(read_known_tasks, ada_task_list_changed)
(ada_tasks_invalidate_inferior_data): Update.
(read_known_tasks_array): Return bool.
(read_known_tasks_list): Likewise.
(read_known_tasks): Return void.
(ada_build_task_list): Now static.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix error message and use-after-free on errors in nested sourced files
@ 2019-02-20 2:30 sergiodj+buildbot
2019-02-20 2:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 2:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6caa91b6e58a563be7eeb2844fd2622158d78354 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 6caa91b6e58a563be7eeb2844fd2622158d78354
Fix error message and use-after-free on errors in nested sourced files
Errors that happen in nested sourced files (when a sourced file sources
another file) lead to a wrong error message, or use-after-free.
For example, if I put this in "a.gdb":
command_that_doesnt_exist
and this in "b.gdb":
source a.gdb
and try to "source b.gdb" in GDB, the result may look like this:
(gdb) source b.gdb
b.gdb:1: Error in sourced command file:
_that_doesnt_exist:1: Error in sourced command file:
Undefined command: "command_that_doesnt_exist". Try "help".
Notice the wrong file name where "a.gdb" should be. The exact result
may differ, depending on the feelings of the memory allocator.
What happens is:
- The "source a.gdb" command is saved by command_line_append_input_line
in command_line_input's static buffer.
- Since we are sourcing a file, the script_from_file function stores the
script name (a.gdb) in the source_file_name global. However, it doesn't
do a copy, it just saves a pointer to command_line_input's static buffer.
- The "command_that_doesnt_exist" command is saved by
command_line_append_input_line in command_line_input's static buffer.
Depending on what xrealloc does, source_file_name may now point to
freed memory, or at the minimum the data it was pointing to was
overwritten.
- When the error is handled in script_from_file, we dererence
source_file_name to print the name of the file in which the error
occured.
To fix it, I made source_file_name an std::string, so that keeps a copy of
the file name instead of pointing to a buffer with a too small
lifetime.
With this patch, the expected filename is printed, and no use-after-free
occurs:
(gdb) source b.gdb
b.gdb:1: Error in sourced command file:
a.gdb:1: Error in sourced command file:
Undefined command: "command_that_doesnt_exist". Try "help".
I passed explicit template parameters to make_scoped_restore
(<std::string, const std::string &>), so that the second parameter is
passed by reference and avoid a copy.
It was not as obvious as I first thought to change gdb.base/source.exp
to test this, because source commands inside sourced files are
interpreted relative to GDB's current working directory, not the
directory of the currently sourced file. As a workaround, I moved the
snippet that tests errors after the snippet that adds the source
directory to the search path. This way, the "source source-error-1.gdb"
line in source-error.exp manages to find the file.
For reference, here is what ASAN reports when use-after-free occurs:
(gdb) source b.gdb
=================================================================
==18498==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c000019847 at pc 0x7f1d3645de8e bp 0x7ffdcb892e50 sp 0x7ffdcb8925c8
READ of size 6 at 0x60c000019847 thread T0
#0 0x7f1d3645de8d in printf_common /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc:546
#1 0x7f1d36477175 in __interceptor_vasprintf /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1525
#2 0x5632eaffa277 in xstrvprintf(char const*, __va_list_tag*) /home/simark/src/binutils-gdb/gdb/common/common-utils.c:122
#3 0x5632eaff96d1 in throw_it /home/simark/src/binutils-gdb/gdb/common/common-exceptions.c:351
#4 0x5632eaff98df in throw_verror(errors, char const*, __va_list_tag*) /home/simark/src/binutils-gdb/gdb/common/common-exceptions.c:379
#5 0x5632eaff9a2a in throw_error(errors, char const*, ...) /home/simark/src/binutils-gdb/gdb/common/common-exceptions.c:394
#6 0x5632eafca21a in script_from_file(_IO_FILE*, char const*) /home/simark/src/binutils-gdb/gdb/cli/cli-script.c:1553
#7 0x5632eaf8a500 in source_script_from_stream /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:569
#8 0x5632eaf8a735 in source_script_with_search /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:605
#9 0x5632eaf8ab20 in source_command /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:664
#10 0x5632eafa8b4a in do_const_cfunc /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:106
#11 0x5632eafb0687 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:1892
#12 0x5632ebf3dd87 in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:630
#13 0x5632eb3b25d3 in command_handler(char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:583
#14 0x5632ebf3cf09 in read_command_file(_IO_FILE*) /home/simark/src/binutils-gdb/gdb/top.c:425
#15 0x5632eafca054 in script_from_file(_IO_FILE*, char const*) /home/simark/src/binutils-gdb/gdb/cli/cli-script.c:1547
#16 0x5632eaf8a500 in source_script_from_stream /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:569
#17 0x5632eaf8a735 in source_script_with_search /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:605
#18 0x5632eaf8ab20 in source_command /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:664
#19 0x5632eafa8b4a in do_const_cfunc /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:106
#20 0x5632eafb0687 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:1892
#21 0x5632ebf3dd87 in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:630
#22 0x5632eb3b25d3 in command_handler(char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:583
#23 0x5632eb3b2f87 in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/simark/src/binutils-gdb/gdb/event-top.c:770
#24 0x5632eb3b0fe1 in gdb_rl_callback_handler /home/simark/src/binutils-gdb/gdb/event-top.c:213
#25 0x5632ec1c8729 in rl_callback_read_char /home/simark/src/binutils-gdb/readline/callback.c:220
#26 0x5632eb3b0b8f in gdb_rl_callback_read_char_wrapper_noexcept /home/simark/src/binutils-gdb/gdb/event-top.c:175
#27 0x5632eb3b0da1 in gdb_rl_callback_read_char_wrapper /home/simark/src/binutils-gdb/gdb/event-top.c:192
#28 0x5632eb3b2186 in stdin_event_handler(int, void*) /home/simark/src/binutils-gdb/gdb/event-top.c:511
#29 0x5632eb3aa6a9 in handle_file_event /home/simark/src/binutils-gdb/gdb/event-loop.c:733
#30 0x5632eb3aaf41 in gdb_wait_for_event /home/simark/src/binutils-gdb/gdb/event-loop.c:859
#31 0x5632eb3a88ea in gdb_do_one_event() /home/simark/src/binutils-gdb/gdb/event-loop.c:347
#32 0x5632eb3a89bf in start_event_loop() /home/simark/src/binutils-gdb/gdb/event-loop.c:371
#33 0x5632eb76fbfc in captured_command_loop /home/simark/src/binutils-gdb/gdb/main.c:330
#34 0x5632eb772ea8 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1176
#35 0x5632eb773071 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1192
#36 0x5632eabfe7f9 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
#37 0x7f1d3554f222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
#38 0x5632eabfe5dd in _start (/home/simark/build/binutils-gdb/gdb/gdb+0x195d5dd)
0x60c000019847 is located 7 bytes inside of 128-byte region [0x60c000019840,0x60c0000198c0)
freed by thread T0 here:
#0 0x7f1d36502491 in __interceptor_realloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:105
#1 0x5632eaff9f47 in xrealloc /home/simark/src/binutils-gdb/gdb/common/common-utils.c:62
#2 0x5632eaff6b44 in buffer_grow(buffer*, char const*, unsigned long) /home/simark/src/binutils-gdb/gdb/common/buffer.c:40
#3 0x5632eb3b271d in command_line_append_input_line /home/simark/src/binutils-gdb/gdb/event-top.c:614
#4 0x5632eb3b28c6 in handle_line_of_input(buffer*, char const*, int, char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:654
#5 0x5632ebf402a6 in command_line_input(char const*, char const*) /home/simark/src/binutils-gdb/gdb/top.c:1252
#6 0x5632ebf3cee9 in read_command_file(_IO_FILE*) /home/simark/src/binutils-gdb/gdb/top.c:422
#7 0x5632eafca054 in script_from_file(_IO_FILE*, char const*) /home/simark/src/binutils-gdb/gdb/cli/cli-script.c:1547
#8 0x5632eaf8a500 in source_script_from_stream /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:569
#9 0x5632eaf8a735 in source_script_with_search /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:605
#10 0x5632eaf8ab20 in source_command /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:664
#11 0x5632eafa8b4a in do_const_cfunc /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:106
#12 0x5632eafb0687 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:1892
#13 0x5632ebf3dd87 in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:630
#14 0x5632eb3b25d3 in command_handler(char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:583
#15 0x5632ebf3cf09 in read_command_file(_IO_FILE*) /home/simark/src/binutils-gdb/gdb/top.c:425
#16 0x5632eafca054 in script_from_file(_IO_FILE*, char const*) /home/simark/src/binutils-gdb/gdb/cli/cli-script.c:1547
#17 0x5632eaf8a500 in source_script_from_stream /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:569
#18 0x5632eaf8a735 in source_script_with_search /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:605
#19 0x5632eaf8ab20 in source_command /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:664
#20 0x5632eafa8b4a in do_const_cfunc /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:106
#21 0x5632eafb0687 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:1892
#22 0x5632ebf3dd87 in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:630
#23 0x5632eb3b25d3 in command_handler(char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:583
#24 0x5632eb3b2f87 in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/simark/src/binutils-gdb/gdb/event-top.c:770
#25 0x5632eb3b0fe1 in gdb_rl_callback_handler /home/simark/src/binutils-gdb/gdb/event-top.c:213
#26 0x5632ec1c8729 in rl_callback_read_char /home/simark/src/binutils-gdb/readline/callback.c:220
#27 0x5632eb3b0b8f in gdb_rl_callback_read_char_wrapper_noexcept /home/simark/src/binutils-gdb/gdb/event-top.c:175
#28 0x5632eb3b0da1 in gdb_rl_callback_read_char_wrapper /home/simark/src/binutils-gdb/gdb/event-top.c:192
#29 0x5632eb3b2186 in stdin_event_handler(int, void*) /home/simark/src/binutils-gdb/gdb/event-top.c:511
previously allocated by thread T0 here:
#0 0x7f1d36502491 in __interceptor_realloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:105
#1 0x5632eaff9f47 in xrealloc /home/simark/src/binutils-gdb/gdb/common/common-utils.c:62
#2 0x5632eaff6b44 in buffer_grow(buffer*, char const*, unsigned long) /home/simark/src/binutils-gdb/gdb/common/buffer.c:40
#3 0x5632eb3b271d in command_line_append_input_line /home/simark/src/binutils-gdb/gdb/event-top.c:614
#4 0x5632eb3b28c6 in handle_line_of_input(buffer*, char const*, int, char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:654
#5 0x5632ebf402a6 in command_line_input(char const*, char const*) /home/simark/src/binutils-gdb/gdb/top.c:1252
#6 0x5632ebf3cee9 in read_command_file(_IO_FILE*) /home/simark/src/binutils-gdb/gdb/top.c:422
#7 0x5632eafca054 in script_from_file(_IO_FILE*, char const*) /home/simark/src/binutils-gdb/gdb/cli/cli-script.c:1547
#8 0x5632eaf8a500 in source_script_from_stream /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:569
#9 0x5632eaf8a735 in source_script_with_search /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:605
#10 0x5632eaf8ab20 in source_command /home/simark/src/binutils-gdb/gdb/cli/cli-cmds.c:664
#11 0x5632eafa8b4a in do_const_cfunc /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:106
#12 0x5632eafb0687 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:1892
#13 0x5632ebf3dd87 in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:630
#14 0x5632eb3b25d3 in command_handler(char const*) /home/simark/src/binutils-gdb/gdb/event-top.c:583
#15 0x5632eb3b2f87 in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/simark/src/binutils-gdb/gdb/event-top.c:770
#16 0x5632eb3b0fe1 in gdb_rl_callback_handler /home/simark/src/binutils-gdb/gdb/event-top.c:213
#17 0x5632ec1c8729 in rl_callback_read_char /home/simark/src/binutils-gdb/readline/callback.c:220
#18 0x5632eb3b0b8f in gdb_rl_callback_read_char_wrapper_noexcept /home/simark/src/binutils-gdb/gdb/event-top.c:175
#19 0x5632eb3b0da1 in gdb_rl_callback_read_char_wrapper /home/simark/src/binutils-gdb/gdb/event-top.c:192
#20 0x5632eb3b2186 in stdin_event_handler(int, void*) /home/simark/src/binutils-gdb/gdb/event-top.c:511
#21 0x5632eb3aa6a9 in handle_file_event /home/simark/src/binutils-gdb/gdb/event-loop.c:733
#22 0x5632eb3aaf41 in gdb_wait_for_event /home/simark/src/binutils-gdb/gdb/event-loop.c:859
#23 0x5632eb3a88ea in gdb_do_one_event() /home/simark/src/binutils-gdb/gdb/event-loop.c:347
#24 0x5632eb3a89bf in start_event_loop() /home/simark/src/binutils-gdb/gdb/event-loop.c:371
#25 0x5632eb76fbfc in captured_command_loop /home/simark/src/binutils-gdb/gdb/main.c:330
#26 0x5632eb772ea8 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1176
#27 0x5632eb773071 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1192
#28 0x5632eabfe7f9 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
#29 0x7f1d3554f222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
SUMMARY: AddressSanitizer: heap-use-after-free /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc:546 in printf_common
gdb/ChangeLog:
* top.h (source_file_name): Change to std::string.
* top.c (source_file_name): Likewise.
(command_line_input): Adjust.
* cli/cli-script.c (script_from_file): Adjust.
gdb/testsuite/ChangeLog:
* gdb.base/source.exp: Move "error in sourced script" code to
the end.
* gdb.base/source-error.gdb: Move contents to
source-error-1.gdb. Add new code to source source-error-1.gdb.
* gdb.base/source-error-1.gdb: New file, from previous
source-error.gdb.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use or1k-darwin host SHARED_LIBADD for *-darwin.
@ 2019-02-20 4:32 sergiodj+buildbot
2019-02-20 4:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 4:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT edd01d077c5f7a0f76ec4fb77b5b9f5b151fa50a ***
Author: Michael Roitzsch <reactorcontrol@icloud.com>
Branch: master
Commit: edd01d077c5f7a0f76ec4fb77b5b9f5b151fa50a
Use or1k-darwin host SHARED_LIBADD for *-darwin.
* configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
Darwin hosts, not just or1k.
* configure: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Check asprintf return value
@ 2019-02-20 8:48 sergiodj+buildbot
2019-02-20 8:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 8:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 34d75fb5c419a23922174c520e124523e01114c4 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 34d75fb5c419a23922174c520e124523e01114c4
Check asprintf return value
git a31b8bd9a05 introduced a warning (depending on your system
headers).
PR 24225
* elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
return value.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Add pauth core file section
@ 2019-02-20 10:57 sergiodj+buildbot
2019-02-20 10:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 10:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e6c3b5bfb449d1a02d26f3c4bae5b732951479fc ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: e6c3b5bfb449d1a02d26f3c4bae5b732951479fc
AArch64: Add pauth core file section
Used for the AArch64 pointer authentication code mask registers in Arm v8.3-a.
NT_ARM_PAC_MASK matches the value in Linux include/uapi/linux/elf.h
include/ChangeLog:
* elf/common.h (NT_ARM_PAC_MASK): Add define.
bfd/ChangeLog:
* elf-bfd.h (elfcore_write_aarch_pauth): Add declaration.
* elf.c (elfcore_grok_aarch_pauth): New function.
(elfcore_grok_note): Check for NT_ARM_PAC_MASK.
(elfcore_write_aarch_pauth): New function.
(elfcore_write_register_note): Check for AArch64 pauth section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd: xtensa: fix callx relaxation
@ 2019-02-20 11:09 sergiodj+buildbot
2019-02-20 11:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 11:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eed62915fd5b733632af343fbf3d47c7364f8e36 ***
Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: eed62915fd5b733632af343fbf3d47c7364f8e36
bfd: xtensa: fix callx relaxation
Big section alignment requirements between source and destination of a
long call can result in making call range bigger than what's reachable
by the call opcode. Add biggest section alignment of sections between
the call site and call destination to the call distance when making
long call relaxation decision.
2019-02-20 Eric Tsai <erictsai@cadence.com>
bfd/
* elf32-xtensa.c (is_resolvable_asm_expansion): Scan output
sections between the call site and call destination and adjust
call distance by the largest alignment.
ld/
* testsuite/ld-xtensa/call_overflow.d: New test definition.
* testsuite/ld-xtensa/call_overflow1.s: New test source.
* testsuite/ld-xtensa/call_overflow2.s: New test source.
* testsuite/ld-xtensa/call_overflow3.s: New test source.
* testsuite/ld-xtensa/xtensa.exp: Add call_overflow test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use upper case for metasyntactic variables in "help find"
@ 2019-02-20 15:46 sergiodj+buildbot
2019-02-20 15:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 15:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c763b8943348582e651dda24f88bb9f8db24672b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c763b8943348582e651dda24f88bb9f8db24672b
Use upper case for metasyntactic variables in "help find"
While answering a user's question on irc, I realized that the
metasyntactic variables in "help find" are not in upper case. As you
know this is one of my pet quests, so here is a patch to fix this.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-02-20 Tom Tromey <tromey@adacore.com>
* findcmd.c (_initialize_mem_search): Use upper case for
metasyntactic variables.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix typos in symtab_symbol_info
@ 2019-02-20 19:48 sergiodj+buildbot
2019-02-20 19:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 19:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0c95f9ed6c0978ae421048552c15065d32c45c30 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0c95f9ed6c0978ae421048552c15065d32c45c30
Fix typos in symtab_symbol_info
symtab_symbol_info has a couple of messages that say "regulation
expression". I think "regular expression" was meant, so this patch
changes it.
gdb/ChangeLog
2019-02-20 Tom Tromey <tom@tromey.com>
* symtab.c (symtab_symbol_info): Fix typos.
gdb/testsuite/ChangeLog
2019-02-20 Tom Tromey <tom@tromey.com>
* gdb.base/info_qt.exp: Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Document style behavior in batch mode.
@ 2019-02-21 18:38 sergiodj+buildbot
2019-02-21 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-21 18:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7557a51431744346c5d281e1b3a55b1fb985cbad ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 7557a51431744346c5d281e1b3a55b1fb985cbad
Document style behavior in batch mode.
Style is disabled when running in batch mode.
gdb/ChangeLog:
* NEWS: Update style defaults.
gdb/doc/ChangeLog:
* gdb.texinfo: Update style defaults.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Update copyright year range generated by gdbarch.sh
@ 2019-02-22 20:33 sergiodj+buildbot
2019-02-22 20:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 20:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c6f4a5d0ed1ff54b5d46bdbadaa4ad811de1b715 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c6f4a5d0ed1ff54b5d46bdbadaa4ad811de1b715
gdb: Update copyright year range generated by gdbarch.sh
The copyright year that gdbarch.sh places into the generated files
gdbarch.{c,h} wasn't updated at the start of the year. After this
commit the gdbarch.{c,h} files regenerate as the currently are in the
tree.
gdb/ChangeLog:
* gdbarch.sh: Update the copyright year range that is placed into
generated files.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Look for build-id-based separate debug files under the sysroot
@ 2019-02-22 21:06 sergiodj+buildbot
2019-02-22 21:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 21:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 07bc701d03167b8006835da583a03d98177cd4b6 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 07bc701d03167b8006835da583a03d98177cd4b6
Look for build-id-based separate debug files under the sysroot
When looking for a separate debug file that matches a given build-id,
GDB only looks in the host's debug dir (typically /usr/lib/debug). This
patch makes it look in the sysroot as well. This is to match the
behavior of GDB when using debuglink-based separate debug files,
introduced in :
402d2bfec42 ("Look for separate debug files in debug directories under a sysroot.")
In the following example, my sysroot is "/tmp/sysroot" and I am trying
to load symbols for
/tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so. This is
the current behavior:
(gdb) file /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
Reading symbols from /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so...
Looking for separate debug info (build-id) for /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
Trying /usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... no, unable to compute real path
<snip>
(No debugging symbols found in /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so)
With this patch:
(gdb) file /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
Reading symbols from /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so...
Looking for separate debug info (build-id) for /tmp/sysroot/usr/lib/arm-linux-gnueabihf/gconv/EBCDIC-AT-DE.so
Trying /usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... no, unable to compute real path
Trying /tmp/sysroot/usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug... yes!
Reading symbols from /tmp/sysroot/usr/lib/debug/.build-id/f3/d6594d2600e985812cd4ba2ad083ac2aceae22.debug...
In the original code, there is a suspicious "abfd.release ()" in
build_id_to_debug_bfd, that I don't understand. If a file with the
right name exists but its build-id note doesn't match, we release (leak)
our reference, meaning the file will stay open? I removed it in the new
code, so that the reference is dropped if we end up not using that file.
I tested briefly by corrupting a separate debug file to trigger this
code, nothing exploded.
gdb/ChangeLog:
* build-id.c (build_id_to_debug_bfd_1): New function.
(build_id_to_debug_bfd): Look for separate debug file in
sysroot.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update copyright year range in gdb.ada/mi_ref_changeable testcase
@ 2019-02-23 12:47 sergiodj+buildbot
2019-02-23 13:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-23 12:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e0e7d3bd218e50275b4c9c9fbf2d3123c73372a9 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: e0e7d3bd218e50275b4c9c9fbf2d3123c73372a9
Update copyright year range in gdb.ada/mi_ref_changeable testcase
This patch fixes the copyright year range which escaped
the 2019 update, because the patch was submitted in 2018, but
only really pushed in 2019.
Pushed: https://www.sourceware.org/ml/gdb-patches/2019-02/msg00109.html
Submitted: https://www.sourceware.org/ml/gdb-patches/2018-12/msg00444.html
We normally are pretty good at remembering those little things,
but this one fell through the cracks. This commit fixes this,
by re-running the copyright.py script and checking in the changes
made by that script.
gdb/testsuite/ChangeLog:
* gdb.ada/mi_ref_changeable.exp: Update copyright year range.
* gdb.ada/mi_ref_changeable/foo_rb20_056.adb: Likewise.
* gdb.ada/mi_ref_changeable/pck.adb: Likewise.
* gdb.ada/mi_ref_changeable/pck.ads: Likewise.
* gdb.dwarf2/inlined_subroutine-inheritance.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use '--readnever' when invoking GDB from gcore.in
@ 2019-02-23 15:20 sergiodj+buildbot
2019-02-23 15:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-23 15:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8a6a85134d78531c6adb72a888844f7cfa3a5c56 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 8a6a85134d78531c6adb72a888844f7cfa3a5c56
Use '--readnever' when invoking GDB from gcore.in
Back when I proposed the '--readnever' feature, I somehow forgot or
decided not to include the bits related to gcore.in in the original
patch. This patch finally updates the gcore script to invoke GDB
using '--readnever'.
We've been carrying this patch on Fedora GDB for quite some time, and
as expected the corefiles generated by gcore on Fedora don't have
problems, which I think is the best indicator that the it's safe to
generate corefiles using '--readnever'.
gdb/ChangeLog:
2019-02-23 Sergio Durigan Junior <sergiodj@redhat.com>
* gcore.in: Add '--readnever' option when invoking GDB.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix crash when loading dwp files
@ 2019-02-25 21:09 sergiodj+buildbot
2019-02-25 21:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 21:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0a0f4c0179106ee4b8e56649c549f4175ebba994 ***
Author: Jordan Rupprecht <rupprecht@google.com>
Branch: master
Commit: 0a0f4c0179106ee4b8e56649c549f4175ebba994
Fix crash when loading dwp files
When loading dwp files, we create an array of ELF sections indexed by the ELF
section index in the dwp file. The size of this array is calculated by
section_count, as returned by bfd_count_sections, plus 1 (to account for the
null section at index 0). However, when loading the bfd file, strtab/symtab
sections are not added to the list, nor do they increment section_count, so
section_count is actually smaller than the number of ELF sections.
This happens to work when using GNU dwp, which lays out .debug section first,
with sections like .shstrtab coming at the end. Other tools, like llvm-dwp, put
.strtab first, and gdb crashes when loading those dwp files.
For instance, with the current state of gdb, loading a file like this:
$ readelf -SW <file.dwp>
[ 0] <empty>
[ 1] .debug_foo PROGBITS ...
[ 2] .strtab STRTAB ...
... results in section_count = 2 (.debug is the only thing placed into
bfd->sections, so section_count + 1 == 2), and sectp->this_idx = 1 when mapping
over .debug_foo in dwarf2_locate_common_dwp_sections, which passes the
assertion that 1 < 2.
However, using a dwp file produced by llvm-dwp:
$ readelf -SW <file.dwp>
[ 0] <empty>
[ 1] .strtab STRTAB ...
[ 2] .debug_foo PROGBITS ...
... results in section_count = 2 (.debug is the only thing placed into
bfd->sections, so section_count + 1 == 2), and sectp->this_idx = 2 when mapping
over .debug_foo in dwarf2_locate_common_dwp_sections, which fails the assertion
that 2 < 2.
The assertion hit is:
gdb/dwarf2read.c:13009: internal-error: void dwarf2_locate_common_dwp_sections(bfd*, asection*, void*): Assertion `elf_section_nr < dwp_file->num_sections' failed.
This patch changes the calculation of section_count to use elf_numsections,
which should return the actual number of ELF sections.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file.
@ 2019-02-25 22:54 sergiodj+buildbot
2019-02-25 22:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 22:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0f58c9e88ebee636206b946b00ea52b47056b320 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 0f58c9e88ebee636206b946b00ea52b47056b320
Fix BFD leak in dwarf2_get_dwz_file.
Previously if build_id_verify failed, dwz_bfd was cleared to NULL via
release(), but the BFD object was not destroyed. Use reset() with
nullptr instead to delete the BFD.
gdb/ChangeLog:
* dwarf2read.c (dwarf2_get_dwz_file): Reset dwz_bfd to nullptr
instead of releasing ownership.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Define unique_ptr specialization for Py_buffer.
@ 2019-02-26 17:46 sergiodj+buildbot
2019-02-26 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 17:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26c897821b37af894088ec5731f93dc82e79b6d4 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 26c897821b37af894088ec5731f93dc82e79b6d4
Define unique_ptr specialization for Py_buffer.
This patch causes PyBuffer_Release() to be called when the associated
buffer goes out of scope. I've been using it as follows:
...
Py_buffer_up buffer_up;
Py_buffer py_buf;
if (PyObject_CheckBuffer (obj)
&& PyObject_GetBuffer (obj, &py_buf, PyBUF_SIMPLE) == 0)
{
/* Got a buffer, py_buf, out of obj. Cause it to released
when it goes out of scope. */
buffer_up.reset (&py_buf);
}
...
This snippet of code was taken directly from an upcoming patch to
python-value.c.
gdb/ChangeLog:
* python/python-internal.h (Py_buffer_deleter): New struct.
(Py_buffer_up): New typedef.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-02-26 17:46 [binutils-gdb] Define unique_ptr specialization for Py_buffer sergiodj+buildbot
@ 2019-02-26 17:46 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 17:46 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9299>
Commit(s) tested:
26c897821b37af894088ec5731f93dc82e79b6d4
Author(s) (in the same order as the commits):
Kevin Buettner <kevinb@redhat.com>
Subject:
Define unique_ptr specialization for Py_buffer.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/26/26c897821b37af894088ec5731f93dc82e79b6d4/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=d279a608>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=d279a608>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add tests for gdb.Value(bufobj, type) constructor
@ 2019-02-26 18:09 sergiodj+buildbot
2019-02-26 18:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 18:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bc2a507e6e90fc5766bd68d368441f5b511c2ef1 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: bc2a507e6e90fc5766bd68d368441f5b511c2ef1
Add tests for gdb.Value(bufobj, type) constructor
gdb/testsuite/ChangeLog:
* gdb.python/py-value.exp (test_value_from_buffer): New proc with
call from main program.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Document two argument form of gdb.Value constructor
@ 2019-02-26 18:21 sergiodj+buildbot
2019-02-26 18:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 18:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af54ade989cbbb1a43f4bc9d4d2e8e60814306f1 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: af54ade989cbbb1a43f4bc9d4d2e8e60814306f1
Document two argument form of gdb.Value constructor
gdb/ChangeLog:
* NEWS: Mention two argument form of gdb.Value constructor.
gdb/doc/ChangeLog:
* python.texi (Values From Inferior): Document second form
of Value.__init__.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix new py-value.exp test case
@ 2019-02-26 19:57 sergiodj+buildbot
2019-02-26 19:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 19:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8791793caa9a3186d4922cc786b6344e6093be73 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 8791793caa9a3186d4922cc786b6344e6093be73
Fix new py-value.exp test case
The new test case in py-value.exp fails -- the code was changed to
throw ValueError, but the test still checks for TypeError. This patch
fixes the problem.
I'm checking this in. Tested on x86-64 Fedora 29.
gdb/testsuite/ChangeLog
2019-02-26 Tom Tromey <tromey@adacore.com>
* gdb.python/py-value.exp (test_value_from_buffer): Check for
ValueError, not TypeError.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix build errors in aix-thread.c
@ 2019-02-27 5:00 sergiodj+buildbot
2019-02-27 5:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 5:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 143420fb0d5ae54323ba9953f0818c194635228d ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 143420fb0d5ae54323ba9953f0818c194635228d
Fix build errors in aix-thread.c
This patch fixes a few instances of unused variable and shadowed local
variable errors.
gdb/ChangeLog:
* aix-thread.c (ptid_cmp): Remove unused variable.
(get_signaled_thread): Likewise.
(store_regs_user_thread): Likewise.
(store_regs_kernel_thread): Likewise.
(fetch_regs_kernel_thread): Remove shadowed variable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Bump version to 8.3.50.DATE-git.
@ 2019-02-27 5:37 sergiodj+buildbot
2019-02-27 5:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 5:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3d34d8de5e10623652ab9f1eda2ff3456f64d13b ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 3d34d8de5e10623652ab9f1eda2ff3456f64d13b
Bump version to 8.3.50.DATE-git.
Now that the GDB 8.3 branch has been created, we can
bump the version number.
gdb/ChangeLog:
GDB 8.3 branch created (143420fb0d5ae54323ba9953f0818c194635228d):
* version.in: Bump version to 8.3.50.DATE-git.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update NEWS post GDB 8.3 branch creation.
@ 2019-02-27 5:47 sergiodj+buildbot
2019-02-27 5:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 5:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9335e75a6170fbf76f60548690d5724198cf0440 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 9335e75a6170fbf76f60548690d5724198cf0440
Update NEWS post GDB 8.3 branch creation.
gdb/ChangeLog:
* NEWS: Create a new section for the next release branch.
Rename the section of the current branch, now that it has
been cut.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Restructure type_align and gdbarch_type_align
@ 2019-02-27 11:28 sergiodj+buildbot
2019-02-27 11:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 11:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5561fc304ff2a93a33a42df63eaf18b92483b307 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 5561fc304ff2a93a33a42df63eaf18b92483b307
gdb: Restructure type_align and gdbarch_type_align
This commit restructures the relationship between the type_align
function and the gdbarch_type_align method.
The problem being addressed with this commit is this; previously the
type_align function was structured so that for "basic" types (int,
float, etc) the gdbarch_type_align hook was called, which for
"compound" types (arrays, structs, etc) the common type_align code has
a fixed method for how to extract a "basic" type and would then call
itself on that "basic" type.
The problem is that if an architecture wants to modify the alignment
rules for a "compound" type then this is not currently possible.
In the revised structure, all types pass through the
gdbarch_type_align method. If this method returns 0 then this
indicates that the architecture has no special rules for this type,
and GDB should apply the default rules for alignment. However, the
architecture is free to provide an alignment for any type, both
"basic" and "compound".
After this commit the default alignment rules now all live in the
type_align function, the default_type_align only ever returns 0,
meaning apply the default rules.
I've updated the 3 targets (arc, i386, and nios2) that already
override the gdbarch_type_align method to fit the new scheme.
Tested on X86-64/GNU Linux with no regressions.
gdb/ChangeLog:
* arc-tdep.c (arc_type_align): Provide alignment for basic types,
return 0 for other types.
* arch-utils.c (default_type_align): Always return 0.
* gdbarch.h: Regenerate.
* gdbarch.sh (type_align): Extend comment.
* gdbtypes.c (type_align): Add additional comments, always call
gdbarch_type_align before applying the default rules.
* i386-tdep.c (i386_type_align): Return 0 as the default rule,
generic code will then apply a suitable default.
* nios2-tdep.c (nios2_type_align): Provide alignment for basic
types, return 0 for other types.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Handle alignment for C++ structures with static members
@ 2019-02-27 11:40 sergiodj+buildbot
2019-02-27 11:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 11:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bf9a735e239cb7a27c81aa7c98679f7f83fa8314 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf9a735e239cb7a27c81aa7c98679f7f83fa8314
gdb: Handle alignment for C++ structures with static members
In 'type_align' when computing the alignment of a structure we should
not consider the alignment of static structure members, these are
usually stored outside of the structure and therefore don't have any
impact on the structures alignment requirements.
I've extended the existing alignment calculating test to compile in
both C and C++ now so that we can create structures with static
members.
gdb/ChangeLog:
* gdbtypes.c (type_align): Don't consider static members when
computing structure alignment.
gdb/testsuite/ChangeLog:
* gdb.base/align.exp: Extend to compile in both C and C++, and add
tests for structs with static members.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/aarch64: Use default gdbarch methods where possible
@ 2019-02-27 15:09 sergiodj+buildbot
2019-02-27 15:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a995095f35f024517ddaa07b8a8ad04463e3ce5 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7a995095f35f024517ddaa07b8a8ad04463e3ce5
gdb/aarch64: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/aarch64-tdep.c (aarch64_dummy_id): Delete.
(aarch64_unwind_pc): Delete.
(aarch64_unwind_sp): Delete.
(aarch64_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/alpha: Use default gdbarch methods where possible
@ 2019-02-27 15:21 sergiodj+buildbot
2019-02-27 15:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 480e46cfc5cf4976c1f1a00bc6254d78e9c45447 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 480e46cfc5cf4976c1f1a00bc6254d78e9c45447
gdb/alpha: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id, and
gdbarch_unwind_pc.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/alpha-tdep.c (alpha_dummy_id): Delete.
(alpha_unwind_pc): Delete.
(alpha_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/arm: Use default gdbarch methods where possible
@ 2019-02-27 15:43 sergiodj+buildbot
2019-02-27 15:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a19a650fcca359a02bfadb201c9b032ce7479525 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a19a650fcca359a02bfadb201c9b032ce7479525
gdb/arm: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/arm-tdep.c (arm_dummy_id): Delete.
(arm_unwind_pc): Delete.
(arm_unwind_sp): Delete.
(arm_gdbarch_init): Don't register deleted functions with gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/bfin: Use default gdbarch methods where possible
@ 2019-02-27 15:55 sergiodj+buildbot
2019-02-27 15:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 15:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b56bf084434de08080875134e983f8b46eb2328f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b56bf084434de08080875134e983f8b46eb2328f
gdb/bfin: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
and gdbarch_unwind_pc.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/bfin-tdep.c (bfin_dummy_id): Delete.
(bfin_unwind_pc): Delete.
(bfin_gdbarch_init): Don't register deleted functions with gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/csky: Use default gdbarch methods where possible
@ 2019-02-27 16:18 sergiodj+buildbot
2019-02-27 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4133e5a13f15d86bb1f834090de98cca4c34759d ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4133e5a13f15d86bb1f834090de98cca4c34759d
gdb/csky: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/csky-tdep.c (csky_dummy_id): Delete.
(csky_unwind_pc): Delete.
(csky_unwind_sp): Delete.
(csky_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible
@ 2019-02-27 16:53 sergiodj+buildbot
2019-02-27 16:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 16:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68b867f30eeca7e9585e9ee16e824f5a18e2bc6c ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 68b867f30eeca7e9585e9ee16e824f5a18e2bc6c
gdb/ft32: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/ft32-tdep.c (ft32_dummy_id): Delete.
(ft32_unwind_pc): Delete.
(ft32_unwind_sp): Delete.
(ft32_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible
@ 2019-02-27 17:04 sergiodj+buildbot
2019-02-27 17:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 17:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9734a586671fa95a06a2e10323c14d0157805057 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 9734a586671fa95a06a2e10323c14d0157805057
gdb/h8300: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/h8300-tdep.c (h8300_unwind_pc): Delete.
(h8300_unwind_sp): Delete.
(h8300_dummy_id): Delete.
(h8300_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use Python 2.[67] / 3.X / PEP 3118 buffer protocol
@ 2019-02-27 18:29 sergiodj+buildbot
2019-02-27 18:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 18:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6ca622222193bc29a2780f6f02f0d8b96da65a4b ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 6ca622222193bc29a2780f6f02f0d8b96da65a4b
Use Python 2.[67] / 3.X / PEP 3118 buffer protocol
This patch removes the non-IS_PY3K code in infpy_write_memory()
and infpy_search_memory(). In both cases, the remaining code
from these ifdefs is related to use of the PEP 3118 buffer protocol.
(Deleted code is either due to simplification or related to use of the
old buffer protocol.) PEP 3118 is sometimes referred to as the "new"
buffer protocol, though it's not that new anymore.
The link below describes new features in Python 2.6. In particular,
it says that the buffer protocol described by PEP 3118 is in Python
2.6. It also says (at the top of the page) that Python 2.6 was
released on Oct 1, 2008.
https://docs.python.org/3/whatsnew/2.6.html#pep-3118-revised-buffer-protocol
The last security release for the Python 2.6 series was 2.6.9. It was
released on Oct 29, 2013. According to this document...
https://www.python.org/download/releases/2.6.9/
...support for the 2.6 series has ended:
With the 2.6.9 release, and five years after its first release,
the Python 2.6 series is now officially retired. All official
maintenance for Python 2.6, including security patches, has ended.
For ongoing maintenance releases, please see the Python 2.7
series.
As noted earlier, Python 2.6, Python 2.7, and Python 3.X all have
support for the PEP 3118 buffer protocol. Python releases prior
to 2.6 use an older buffer protocol. Since Python 2.6 has been
retired for a good while now, it seems reasonable to me to remove
code using the older buffer protocol from GDB.
I have also simplified some of the code via use of the Py_buffer
unique_ptr specialization which I introduced in the two argument
gdb.Value constructor patch series. Therefore, there is a dependency
on patch #1 from that series.
I have tested against both Python 2.7.15 and 3.7.2. I see no
regressions among the non-racy tests. I've also verified that
PyBuffer_Release is being called when the affected functions exit
while running the tests in gdb.python/py-inferior.exp by hand. I've
also tried running valgrind on GDB while running this test, but I'm
puzzled by the results that I'm seeing - I'm seeing no additional
leaks when I comment out the Py_buffer_up lines that I introduced.
That said, I'm not seeing any leaks that obviously originate from
either infpy_write_memory() or infpy_search_memory().
gdb/ChangeLog:
* python/py-inferior.c (infpy_write_memory): Remove non-IS_PY3K
code from these functions. Remove corresponding ifdefs. Use
Py_buffer_up instead of explicit calls to PyBuffer_Release.
Remove gotos and target of gotos.
(infpy_search_memory): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove Python 2.4 and 2.5 support
@ 2019-02-27 19:00 sergiodj+buildbot
2019-02-27 19:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6c28e44a359e9f6cf455ddff0009ca99406f7224 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 6c28e44a359e9f6cf455ddff0009ca99406f7224
Remove Python 2.4 and 2.5 support
This removes all the remainings spots I could find that work around
issues in Python 2.4 and 2.5.
I don't have a good way to test that Python 2.6 still works.
Tested by the buildbot.
gdb/ChangeLog
2019-02-27 Tom Tromey <tromey@adacore.com>
* config.in, configure: Rebuild.
* configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never
define.
* python/py-value.c: Remove Python 2.4 workaround.
* python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4
workaround.
* python/py-type.c (convert_field, gdbpy_initialize_types): Remove
Python 2.4 workaround.
* python/python-internal.h: Remove Python 2.4 comment.
(Py_ssize_t): Don't define.
(PyVarObject_HEAD_INIT, Py_TYPE): Don't define.
(gdb_Py_DECREF): Remove Python 2.4 workaround.
(gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove.
(gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove.
* python/python.c (do_start_initialization): Remove Python 2.4
workaround.
* python/py-prettyprint.c (class dummy_python_frame): Remove.
(print_children): Remove Python 2.4 workaround.
* python/py-inferior.c (buffer_procs): Remove Python 2.4
workaround.
(CHARBUFFERPROC_NAME): Remove.
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove
Python 2.4 workaround.
gdb/testsuite/ChangeLog
2019-02-27 Tom Tromey <tromey@adacore.com>
* lib/gdb.exp (skip_python_tests_prompt): Don't check for Python
2.4.
* gdb.python/py-finish-breakpoint.exp: Remove Python 2.4
workaround.
gdb/ChangeLog
2019-02-27 Tom Tromey <tromey@adacore.com>
* config.in, configure: Rebuild.
* configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never
define.
* python/py-value.c: Remove Python 2.4 workaround.
* python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4
workaround.
* python/py-type.c (convert_field, gdbpy_initialize_types): Remove
Python 2.4 workaround.
* python/python-internal.h: Remove Python 2.4 comment.
(Py_ssize_t): Don't define.
(PyVarObject_HEAD_INIT, Py_TYPE): Don't define.
(gdb_Py_DECREF): Remove Python 2.4 workaround.
(gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove.
(gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove.
* python/python.c (do_start_initialization): Remove Python 2.4
workaround.
* python/py-prettyprint.c (class dummy_python_frame): Remove.
(print_children): Remove Python 2.4 workaround.
* python/py-inferior.c (buffer_procs): Remove Python 2.4
workaround.
(CHARBUFFERPROC_NAME): Remove.
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove
Python 2.4 workaround.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Prevent overflow in rl_set_screen_size
@ 2019-02-27 19:11 sergiodj+buildbot
2019-02-27 19:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 23031e319207140e76a9c18e308995fe28322b58 ***
Author: Saagar Jha <saagar@saagarjha.com>
Branch: master
Commit: 23031e319207140e76a9c18e308995fe28322b58
Prevent overflow in rl_set_screen_size
GDB calls rl_set_screen_size in readline with the current screen size,
measured in rows and columns. To represent "infinite" sizes, GDB
passes in INT_MAX; however, since rl_set_screen_size internally
multiplies the number of rows and columns, this causes a signed
integer overflow. To prevent this we can instead pass in the
approximate square root of INT_MAX (which is still reasonably large),
so that even when the number of rows and columns is "infinite" we
don't overflow.
gdb/ChangeLog:
2019-02-27 Saagar Jha <saagar@saagarjha.com>
Pedro Alves <palves@redhat.com>
* utils.c (set_screen_size): Reduce "infinite" rows and columns
before calling rl_set_screen_size.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make 'show width/height' display "unlimited" when capped for readline
@ 2019-02-27 19:25 sergiodj+buildbot
2019-02-27 19:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8ed252144a29fb6370b828d84419d5c59d23dae2 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 8ed252144a29fb6370b828d84419d5c59d23dae2
Make 'show width/height' display "unlimited" when capped for readline
When we cap the height/width sizes before passing to readline, tweak
the corresponding command variable to show "unlimited":
(gdb) set height 0x8000
(gdb) show height
Number of lines gdb thinks are in a page is unlimited.
Instead of the current output:
(gdb) set height 0x8000
(gdb) show height
Number of lines gdb thinks are in a page is 32768.
gdb/ChangeLog:
2019-02-27 Pedro Alves <palves@redhat.com>
* utils.c (set_screen_size): When we cap the height/width sizes,
tweak the corresponding command variable to show "unlimited":
gdb/testsuite/ChangeLog:
2019-02-27 Pedro Alves <palves@redhat.com>
* gdb.base/page.exp: Add tests for "set/show width/height" with
"infinite" values.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Test "set width/height -1"
@ 2019-02-27 19:37 sergiodj+buildbot
2019-02-27 19:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 19:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5862844d0f443b9f65e8dd0d85c43f8818d3f355 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5862844d0f443b9f65e8dd0d85c43f8818d3f355
Test "set width/height -1"
As a follow up to the previous commit, add a test for "set
width/height -1", to make sure we don't overflow in readline with
negative values either.
gdb/testsuite/ChangeLog:
2019-02-27 Pedro Alves <palves@redhat.com>
* gdb.base/page.exp: Add tests for "set width/height -1".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Handle \r\n in gdbreplay
@ 2019-02-27 20:01 sergiodj+buildbot
2019-02-27 20:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 20:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 43ac54fca353ea8d77d56dc5ad9e049bbb9a81fb ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 43ac54fca353ea8d77d56dc5ad9e049bbb9a81fb
Handle \r\n in gdbreplay
I tried gdbreplay yesterday, but the remotelogfile I received was made
on Windows, so the lines were terminated with \r\n rather than plain
\n.
This patch changes gdbreplay to allow \r\n line termination when
reading the log file.
gdb/gdbserver/ChangeLog
2019-02-27 Tom Tromey <tromey@adacore.com>
* gdbreplay.c (logchar): Handle \r\n.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86-64: Skip protected check on symbol defined by linker
@ 2019-02-27 20:22 sergiodj+buildbot
2019-02-27 20:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 20:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5cfe428cd1788be52a0af540f02b8f2705354d50 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5cfe428cd1788be52a0af540f02b8f2705354d50
x86-64: Skip protected check on symbol defined by linker
Skip symbol defined by linker when checking copy reloc on protected
symbol.
bfd/
PR ld/24276
* elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
by linker when checking copy reloc on protected symbol.
ld/
PR ld/24276
* testsuite/ld-i386/i386.exp: Run PR ld/24276 test.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr24276.dso: New file.
* testsuite/ld-i386/pr24276.warn: Likewise.
* testsuite/ld-x86-64/pr24276.dso: Likewise.
* testsuite/ld-x86-64/pr24276.warn: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix regcache leak, and avoid possible regcache access after detach.
@ 2019-02-27 21:57 sergiodj+buildbot
2019-02-27 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-27 21:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 799efbe8e01ab8292c01f46ac59a6fb2349d4535 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 799efbe8e01ab8292c01f46ac59a6fb2349d4535
Fix regcache leak, and avoid possible regcache access after detach.
Valgrind reports leaks like the below in various tests,
e.g. gdb.threads/attach-slow-waitpid.exp, gdb.ada/task_switch_in_core.exp, ...
Fix the leak by clearing the regcache when detaching from an inferior.
Note that these leaks are 'created' when GDB exits,
when the regcache::current_regcache is destroyed : the elements
of the forward_list are pointers, and the 'pointed to' memory is not
deleted by the forward_list destructor.
Nevertheless, fixing this leak is good as it makes a bunch of
tests 'leak clean'.
Also, it seems strange to keep a register cache for a process from
which GDB detached : it is not clear if this cache is still valid
after detach. And effectively, when clearing only the regcache,
(and not the frame cache), then the frame cache was still 'pointing'
at this regcache and was used when switching to the child process
in the test gdb.threads/watchpoint-fork.exp, which seems strange.
So, we solve the leak and avoid possible accesses to the regcache
and frame cache of the detached inferior, by clearing both the
regcache and the frame cache.
Tested on debian/amd64, natively, under Valgrind,
and with make check RUNTESTFLAGS="--target_board=native-gdbserver".
==27679== VALGRIND_GDB_ERROR_BEGIN
==27679== 1,123 (72 direct, 1,051 indirect) bytes in 1 blocks are definitely lost in loss record 2,942 of 3,400
==27679== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==27679== by 0x5CDF71: get_thread_arch_aspace_regcache(ptid_t, gdbarch*, address_space*) (regcache.c:330)
==27679== by 0x5CE12A: get_thread_regcache (regcache.c:366)
==27679== by 0x5CE12A: get_current_regcache() (regcache.c:372)
==27679== by 0x4FF63D: post_create_inferior(target_ops*, int) (infcmd.c:452)
==27679== by 0x43AF62: core_target_open(char const*, int) (corelow.c:458)
==27679== by 0x408B68: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
...
gdb/ChangeLog
2019-02-27 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* target.c (target_detach): Clear the regcache and the
frame cache.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section
@ 2019-02-28 7:38 sergiodj+buildbot
2019-02-28 7:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 7:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9c4c331816b14d7020a8a15eed9dac5e5babdb0e ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 9c4c331816b14d7020a8a15eed9dac5e5babdb0e
(gdb/sim) Move Mike Frysinger to past maintainers section
sim/ChangeLog:
* MAINTAINERS: Move Mike Frysinger to past maintainers' section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Prevent a buffer overrun error when attempting to parse a corrupt ELF file.
@ 2019-02-28 14:43 sergiodj+buildbot
2019-02-28 14:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 14:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eed5def8d0b7b64c3592be75a9b22bb4ce1a78f4 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: eed5def8d0b7b64c3592be75a9b22bb4ce1a78f4
Prevent a buffer overrun error when attempting to parse a corrupt ELF file.
PR 24273
* elf.c (bfd_elf_string_from_elf_section): Check for a string
section that is not NUL terminated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Catch gdbserver socket listen errors
@ 2019-02-28 17:36 sergiodj+buildbot
2019-02-28 17:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 17:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 01abb042af3f118a8820517a3b45b19e65c7bbd4 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 01abb042af3f118a8820517a3b45b19e65c7bbd4
Testsuite: Catch gdbserver socket listen errors
When launching gdbserver, the testsuite checks for binding failure but
does not check for failure to listen to socket error (which can happen
due to another gdbserver binding to the socket at the same time).
When this error occurs, the test will ignore the error and connect GDB
to the failed port. This may succeed and GDB will now be connected to
the gdbserver from another test. This eventually causes both tests to
fail.
When running the tests suite with native-gdbserver across many cores,
this issue may happen once or twice, each causing random failures for
two .exp testscripts.
Example gdb.log output for the failure:
The testsuite sucessfully notices a failure to connect to port 2348.
It launches again with port 2349, which also fails. The testsuite
ignores this error and uses gdb to connect to the port - which succeeds.
spawn /work/build/gdb/testsuite/../gdbserver/gdbserver --once localhost:2348 /work/build/gdb/testsuite/outputs/gdb.ada/arrayidx/p^M
Can't bind address: Address already in use.^M
Exiting^M
Port 2348 is already in use.
spawn /work/build/gdb/testsuite/../gdbserver/gdbserver --once localhost:2349 /work/build/gdb/testsuite/outputs/gdb.ada/arrayidx/p^M
Can't listen on socket: Address already in use.^M
Exiting^M
target remote localhost:2349^M
Remote debugging using localhost:2349^M
Reading /lib/ld-linux-aarch64.so.1 from remote target...^M
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.^M
Reading /lib/ld-linux-aarch64.so.1 from remote target...^M
Reading symbols from target:/lib/ld-linux-aarch64.so.1...^M
Reading /lib/ld-2.23.so from remote target...^M
Reading /lib/.debug/ld-2.23.so from remote target...^M
Reading /work/build/install/lib/debug//lib/ld-2.23.so from remote target...^M
Reading /work/build/install/lib/debug/lib//ld-2.23.so from remote target...^M
Reading target:/work/build/install/lib/debug/lib//ld-2.23.so from remote target...^M
(No debugging symbols found in target:/lib/ld-linux-aarch64.so.1)^M
0x0000ffffbf6d2cc0 in ?? () from target:/lib/ld-linux-aarch64.so.1^M
(gdb) continue^M
Continuing.^M
Reading /lib/aarch64-linux-gnu/libc.so.6 from remote target...^M
Reading /lib/aarch64-linux-gnu/libc-2.23.so from remote target...^M
Reading /lib/aarch64-linux-gnu/.debug/libc-2.23.so from remote target...^M
Reading /work/build/install/lib/debug//lib/aarch64-linux-gnu/libc-2.23.so from remote target...^M
Reading /work/build/install/lib/debug/lib/aarch64-linux-gnu//libc-2.23.so from remote target...^M
Reading target:/work/build/install/lib/debug/lib/aarch64-linux-gnu//libc-2.23.so from remote target...^M
[Inferior 1 (process 35351) exited normally]^M
(gdb) FAIL: gdb.ada/arrayidx.exp: can't run to main
Meanwhile, at the same time, in another test, gdbserver successfully
connects to port 2349. GDB then tries to connect to the port, but it
times out because the GDB in the test above has already connected to it.
spawn /work/build/gdb/testsuite/../gdbserver/gdbserver --once localhost:2348 /work/build/gdb/testsuite/outputs/gdb.ada/rdv_wait/foo^M
Can't bind address: Address already in use.^M
Exiting^M
Port 2348 is already in use.
spawn /work/build/gdb/testsuite/../gdbserver/gdbserver --once localhost:2349 /work/build/gdb/testsuite/outputs/gdb.ada/rdv_wait/foo^M
Process /work/build/gdb/testsuite/outputs/gdb.ada/rdv_wait/foo created; pid = 65162^M
Listening on port 2349^M
Remote debugging from host 127.0.0.1, port 45154^M
target remote localhost:2349^M
localhost:2349: Connection timed out.^M
(gdb) ^CQuit^M
(gdb) task 2^M
Cannot inspect Ada tasks when program is not running^M
gdb/testsuite/ChangeLog:
* lib/gdbserver-support.exp (gdbserver_start): Check for listen
failure.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes
@ 2019-03-01 3:16 sergiodj+buildbot
2019-03-01 3:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 3:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b24cc4146e4de9f3b66e2e2fb8379db46eff89c9 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: b24cc4146e4de9f3b66e2e2fb8379db46eff89c9
PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes
The fix here is to use an unsigned comparison for
if (a->NumberOfRvaAndSizes > IMAGE_NUMBEROF_DIRECTORY_ENTRIES)
include/
PR 24272
* coff/internal.h (struct internal_extra_pe_aouthdr): Change type
of SizeOfCode, SizeOfInitializedData, and SizeOfUninitializedData
to bfd_vma. Change type of SectionAlignment, FileAlignment,
Reserved1, SizeOfImage, SizeOfHeaders, CheckSum, LoaderFlags,
and NumberOfRvaAndSizes to uint32_t.
bfd/
PR 24272
* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Use unsigned index.
(_bfd_XX_print_private_bfd_data_common): Adjust for type changes.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert "Add support to GNU ld to separate got related plt entries"
@ 2019-03-01 14:55 sergiodj+buildbot
2019-03-01 14:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 14:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 24801b157631434446c2fc5a40994a5555a1db38 ***
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: 24801b157631434446c2fc5a40994a5555a1db38
Revert "Add support to GNU ld to separate got related plt entries"
bfd/ChangeLog:
2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com>
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
2019-01-14 Maamoun Tarsha <maamountk@hotmail.com>
PR 20113
* elf32-s390.c (allocate_dynrelocs): Update comment.
ld/ChangeLog:
2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com>
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
2019-01-14 Maamoun Tarsha <maamountk@hotmail.com>
PR 20113
* emulparams/elf64_s390.sh (SEPARATE_GOTPLT): Define.
* emulparams/elf_s390.sh (SEPARATE_GOTPLT): Define.
* testsuite/ld-s390/gotreloc_31-1.dd: Update expected output.
* testsuite/ld-s390/tlsbin.dd: Likewise.
* testsuite/ld-s390/tlsbin.rd: Likewise.
* testsuite/ld-s390/tlsbin.sd: Likewise.
* testsuite/ld-s390/tlsbin_64.dd: Likewise.
* testsuite/ld-s390/tlsbin_64.rd: Likewise.
* testsuite/ld-s390/tlsbin_64.sd: Likewise.
* testsuite/ld-s390/tlspic.dd: Likewise.
* testsuite/ld-s390/tlspic.rd: Likewise.
* testsuite/ld-s390/tlspic.sd: Likewise.
* testsuite/ld-s390/tlspic_64.dd: Likewise.
* testsuite/ld-s390/tlspic_64.rd: Likewise.
* testsuite/ld-s390/tlspic_64.sd: Likewise.
* testsuite/ld-s390/s390.exp: Skip s390 tests for tpf targets.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix GDB compilation on MinGW (PR gdb/24292)
@ 2019-03-02 13:35 sergiodj+buildbot
2019-03-02 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-02 13:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 41fa577fbc326402be49b3f03bc828e52dba8b88 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 41fa577fbc326402be49b3f03bc828e52dba8b88
Fix GDB compilation on MinGW (PR gdb/24292)
gdb/ChangeLog:
2019-03-02 Eli Zaretskii <eliz@gnu.org>
PR gdb/24292
* common/netstuff.c:
* gdbserver/gdbreplay.c
* gdbserver/remote-utils.c:
* ser-tcp.c:
* unittests/parse-connection-spec-selftests.c [USE_WIN32API]:
Include ws2tcpip.h instead of wsiapi.h and winsock2.h. Redefine
_WIN32_WINNT to 0x0501 if defined to a smaller value, as
'getaddrinfo' and 'freeaddrinfo' were not available before
Windows XP, and mingw.org's MinGW headers by default define
_WIN32_WINNT to 0x500.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdbserver short-circuit-argument-list failures
@ 2019-03-04 15:25 sergiodj+buildbot
2019-03-04 15:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-04 15:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7b63ad86ab1a56812772f266b345ecaa494ece95 ***
Author: Richard Bunt <richard.bunt@arm.com>
Branch: master
Commit: 7b63ad86ab1a56812772f266b345ecaa494ece95
gdbserver short-circuit-argument-list failures
This patch fixes test case failures observed when running
short-circuit-argument-list.exp with gdb server boards. Thanks to Sergio
Durigan Junior for pointing this out.
Assertions failed with the native{,-extended}-gdbserver boards as the
standard output from the test program appears in a different location
than observed on non-gdbserver boards. This standard output was used to
determine whether a function, which had been logically short-circuited,
was called or not. Since the location of the standard out cannot be
relied upon to verify this, a new mechanism was needed.
The test program now records function calls in variables named the same
as the function with a "_called" suffix. These variables can then be
queried from the test case to verify the occurrence of a call.
A method to reset the call counts has been included in the test case, so
that any future assertions added to this test can ensure a fresh set of
initial values before proceeding. Not resetting values between groups of
assertions creates a dependency between them, which increases the
likelihood that a single failure causes subsequent assertions to fail.
Regression tested on x86_64, aarch64 and ppc64le.
Regression tested with Ada on x86_64.
Regression tested with the native{,-extended}-gdbserver boards on x86_64.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd
@ 2019-03-05 16:26 sergiodj+buildbot
2019-03-05 16:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3cabd438f3d18e1cb7afd4d2a82449883943e62f ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 3cabd438f3d18e1cb7afd4d2a82449883943e62f
Add ATTRIBUTE_UNUSED_RESULT to scoped_fd
This applies ATTRIBUTE_UNUSED_RESULT to scoped_fd::release.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* common/scoped_fd.h (class scoped_fd) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap
@ 2019-03-05 16:37 sergiodj+buildbot
2019-03-05 16:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 083eef1f897e2fd13e4afa7b1a52090c83476f5c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 083eef1f897e2fd13e4afa7b1a52090c83476f5c
Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap
This applies ATTRIBUTE_UNUSED_RESULT to scoped_mmap::release and fixes
a couple of spots to comply.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* nat/linux-btrace.c (linux_enable_bts, linux_enable_pt): Update.
* common/scoped_mmap.h (class scoped_mmap) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer
@ 2019-03-05 16:49 sergiodj+buildbot
2019-03-05 16:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4e4a8b932b7ae8e239eebb597fbb6cfcb7278a64 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4e4a8b932b7ae8e239eebb597fbb6cfcb7278a64
Add ATTRIBUTE_UNUSED_RESULT to macro_buffer
This applies ATTRIBUTE_UNUSED_RESULT to macro_buffer::release.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* macroexp.c (struct macro_buffer) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release
@ 2019-03-05 17:03 sergiodj+buildbot
2019-03-05 17:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 88a774b9984e42c492ddcf4e4b4b0170ac803576 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 88a774b9984e42c492ddcf4e4b4b0170ac803576
Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release
This applies ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* remote.c (class scoped_remote_fd) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release
@ 2019-03-05 17:17 sergiodj+buildbot
2019-03-05 17:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 895dafa679db7af79576dcd177a6d91d65657ee8 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 895dafa679db7af79576dcd177a6d91d65657ee8
Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release
This applies ATTRIBUTE_UNUSED_RESULT to ref_ptr::release and updates a
few spots to comply. I believe one use in install_default_visualizer
was in error, fixed by this patch.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* varobj.c (update_dynamic_varobj_children): Update.
(install_default_visualizer): Use reset, not release.
* value.c (set_internalvar): Update.
* dwarf2loc.c (value_of_dwarf_reg_entry): Update.
* common/gdb_ref_ptr.h (class ref_ptr) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove excess calls to gdb_flush
@ 2019-03-05 17:29 sergiodj+buildbot
2019-03-05 17:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c119e04082b5b3ee907a8d02b42fae2aee0c4fbb ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c119e04082b5b3ee907a8d02b42fae2aee0c4fbb
Remove excess calls to gdb_flush
A customer noticed some mildly odd MI output, where CLI output was
split into multiple MI strings at unusual boundaries, like this:
~"$1 = (b => true"
~", p => 0x407260"
This is technically correct according to the MI spec, but still
unusual, in that there's no particular reason for the string to be
split where it is.
I tracked this down to a call to gdb_flush in generic_val_print.
Then, I went through all calls to gdb_flush and removed the ones I
thought were superfluous. In particular:
* Any call in the value-printing code;
* Likewise the type-printing code (just a single call); and
* Any call that immediately followed a printf that obviously
ended with a newline, my belief being that gdb's standard output
streams are line buffered (by inheriting the behavior from stdio)
Regression tested on x86-64 Fedora 29.
I didn't add a new test case. I tend to think we don't necessarily
want to specify this behavior in the tests. Let me know what you
think of this.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* windows-nat.c (windows_nat_target::attach)
(windows_nat_target::detach): Don't call gdb_flush.
* valprint.c (generic_val_print, val_print, val_print_string):
Don't call gdb_flush.
* utils.c (defaulted_query): Don't call gdb_flush.
* typeprint.c (print_type_scalar): Don't call gdb_flush.
* target.c (target_announce_detach): Don't call gdb_flush.
* sparc64-tdep.c (adi_print_versions): Don't call gdb_flush.
* remote.c (extended_remote_target::attach): Don't call
gdb_flush.
* procfs.c (procfs_target::detach): Don't call gdb_flush.
* printcmd.c (do_examine): Don't call gdb_flush.
(info_display_command): Don't call gdb_flush.
* p-valprint.c (pascal_val_print): Don't call gdb_flush.
* nto-procfs.c (nto_procfs_target::attach): Don't call gdb_flush.
* memattr.c (info_mem_command): Don't call gdb_flush.
* mdebugread.c (mdebug_build_psymtabs): Don't call gdb_flush.
* m2-valprint.c (m2_val_print): Don't call gdb_flush.
* infrun.c (follow_exec, handle_command): Don't call gdb_flush.
* inf-ptrace.c (inf_ptrace_target::attach): Don't call gdb_flush.
* hppa-tdep.c (unwind_command): Don't call gdb_flush.
* gnu-nat.c (gnu_nat_target::attach): Don't call gdb_flush.
(gnu_nat_target::detach): Don't call gdb_flush.
* f-valprint.c (f_val_print): Don't call gdb_flush.
* darwin-nat.c (darwin_nat_target::attach): Don't call gdb_flush.
* cli/cli-script.c (read_command_lines): Don't call gdb_flush.
* cli/cli-cmds.c (shell_escape, print_disassembly): Don't call
gdb_flush.
* c-valprint.c (c_val_print): Don't call gdb_flush.
* ada-valprint.c (ada_print_scalar): Don't call gdb_flush.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove gdb_bfd_fdopenr
@ 2019-03-05 17:41 sergiodj+buildbot
2019-03-05 17:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT edbd9e45a906970852cee1999ab27c18c18a5ff5 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: edbd9e45a906970852cee1999ab27c18c18a5ff5
Remove gdb_bfd_fdopenr
I noticed that gdb_bfd_fdopenr is no longer used, so this patch
removes it. Tested by rebuilding and by grep.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* gdb_bfd.c (gdb_bfd_fdopenr): Remove.
* gdb_bfd.h (gdb_bfd_fdopenr): Don't declare.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change the_dummy_target to be a global
@ 2019-03-05 21:27 sergiodj+buildbot
2019-03-05 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 21:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 06b5b831a09417bac37b44599dc35d4b904700c5 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 06b5b831a09417bac37b44599dc35d4b904700c5
Change the_dummy_target to be a global
While debugging gdb, I printed the target stack and got:
(top-gdb) p g_target_stack
$10 = {
m_top = thread_stratum,
m_stack = {0x142b0b0, 0x13da600 <exec_ops>, 0x1c70690, 0x13d63b0 <ravenscar_ops>, 0x0, 0x0, 0x0}
}
(This is clearly from before the change to make ravenscar
multi-target-capable.)
Here, 0x142b0b0 is the singleton dummy target. It seems to me that
since this is always a singleton, it would be a bit nicer if it were a
global, so that it would be noted in the above.
This patch implements this idea, and now I get:
(top-gdb) p g_target_stack
$2 = {
m_top = dummy_stratum,
m_stack = {0x1f1b040 <the_dummy_target>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
}
I did not do the same for the debug target. It didn't seem as useful
to me.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* target.c (the_dummy_target): Move later. Change type to
"dummy_target".
(initialize_targets): Don't initialize the_dummy_target.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fortran function calls with arguments
@ 2019-03-06 8:50 sergiodj+buildbot
2019-03-06 8:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 8:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aa3cfbda2f2af71044949b5692ce51cafb023d13 ***
Author: Richard Bunt <richard.bunt@arm.com>
Branch: master
Commit: aa3cfbda2f2af71044949b5692ce51cafb023d13
Fortran function calls with arguments
Prior to this patch, calling functions on the inferior with arguments and
then using these arguments within a function resulted in an invalid
memory access. This is because Fortran arguments are typically passed as
pointers to values.
It is possible to call Fortran functions, but memory must be allocated in
the inferior, so a pointer can be passed to the function, and the
language must be set to C to enable C-style casting. This is cumbersome
and not a pleasant debug experience.
This patch implements the GNU Fortran argument passing conventions with
caveats. Firstly, it does not handle the VALUE attribute as there is
insufficient DWARF information to determine when this is the case.
Secondly, functions with optional parameters can only be called with all
parameters present. Both these cases are marked as KFAILS in the test.
Since the GNU Fortran argument passing convention has been implemented,
there is no guarantee that this patch will work correctly, in all cases,
with other compilers.
Despite these limitations, this patch improves the ease with which
functions can be called in many cases, without taking away the existing
approach of calling with the language set to C.
Regression tested on x86_64, aarch64 and POWER9 with GCC 7.3.0.
Regression tested with Ada on x86_64.
Regression tested with native-extended-gdbserver target board.
gdb/ChangeLog:
* eval.c (evaluate_subexp_standard): Call Fortran argument
wrapping logic.
* f-lang.c (struct value): A value which can be passed into a
Fortran function call.
(fortran_argument_convert): Wrap Fortran arguments in a pointer
where appropriate.
(struct type): Value ready for a Fortran function call.
(fortran_preserve_arg_pointer): Undo check_typedef, the pointer
is needed.
* f-lang.h (fortran_argument_convert): Declaration.
(fortran_preserve_arg_pointer): Declaration.
* infcall.c (value_arg_coerce): Call Fortran argument logic.
gdb/testsuite/ChangeLog:
* gdb.fortran/function-calls.exp: New file.
* gdb.fortran/function-calls.f90: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix a segmentation fault triggered by disassembling an EFi file with source included.
@ 2019-03-06 9:57 sergiodj+buildbot
2019-03-06 9:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 9:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 219d6836e939d2cd1a8c5574bfa3a101daa31cbb ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 219d6836e939d2cd1a8c5574bfa3a101daa31cbb
Fix a segmentation fault triggered by disassembling an EFi file with source included.
* dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
table pointer.
* coffgen.c (coff_find_nearest_line_with_names): Do not call
_bfd_dwarf2_find_symbol_bias if there is no symbol table available.
https://bugzilla.redhat.com/show_bug.cgi?id=1685727
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Ensure changing directory does not break the log file
@ 2019-03-06 10:16 sergiodj+buildbot
2019-03-06 10:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 10:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c3734e093aab1cea90a76b107cdda4a5870dd1b8 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: c3734e093aab1cea90a76b107cdda4a5870dd1b8
Testsuite: Ensure changing directory does not break the log file
get_compiler_info switches to a new log file before checking the compiler
to ensure the checks are not logged. Afterwards it restores back to using
the original log file. However, the logfile uses a relative path name -
if the current test has changed the current directory then all further
output for the test will be lost. This can confuse the code that collates
the main gdb.log file at the end of a FORCE_PARALLEL run.
fullpath-expand.exp calls gdb_compile after changing the current directory.
The "Ensure stack protection is off for GCC" patch added a call to
get_compiler_info from inside of gdb_compile, causing log file collection
to break for FORCE_PARALLEL runs.
The ideal solution would be to ensure the log file is always created using
an absolute path name. However, this is set at multiple points in
Makefile.in and in some instances just relies on dejagnu common code to set
the log file directory to "."
The simpler and safer solution is to override the builtin cd function. The
new function checks the current log file and if the path is relative, then
it resets the logging using an absolute path. Finally it calls the builtin
cd. This ensures get_compiler_info (and any other code) can correctly
backup and restore the current log file.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (builtin_cd): rename of cd.
(cd): Override builtin.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Remove some duplicate tests
@ 2019-03-06 18:28 sergiodj+buildbot
2019-03-06 18:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 18:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 84ec972406ec519b509f986780481899115847c2 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 84ec972406ec519b509f986780481899115847c2
gdb/fortran: Remove some duplicate tests
Make the test names unique in gdb.fortran/types.exp by removing a few
duplicate tests.
gdb/testsuite/ChangeLog:
* gdb.fortran/types.exp (test_float_literal_types_accepted):
Remove duplicate tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add new function to evaluate Fortran expressions
@ 2019-03-06 19:04 sergiodj+buildbot
2019-03-06 19:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9dad4a58a1bddeb1cc2ec8b3782d7463b03b7b4b ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 9dad4a58a1bddeb1cc2ec8b3782d7463b03b7b4b
gdb/fortran: Add new function to evaluate Fortran expressions
This is an initial restructure, it adds a new function in which
Fortran specific expressions can be evaluated. No Fortran specific
expressions are added with this commit though, so for now, the new
function just forwards all expressions to the default expression
handler, as such, there should be no user visible changes after this
commit. However, the new function will be useful in later commits.
gdb/ChangeLog:
* f-lang.c (evaluate_subexp_f): New function.
(exp_descriptor_f): New global.
(f_language_defn): Use exp_descriptor_f instead of
exp_descriptor_standard.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Enable debugging of the Fortran parser
@ 2019-03-06 19:17 sergiodj+buildbot
2019-03-06 19:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e454224fa82aa52a1288a3d6a2e26e8d224d732a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: e454224fa82aa52a1288a3d6a2e26e8d224d732a
gdb/fortran: Enable debugging of the Fortran parser
This commit allows 'set debug parser on' to work for the Fortran
parser.
gdb/ChangeLog:
* f-exp.y (f_parse): Set yydebug.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add Fortran 'kind' intrinsic and keyword
@ 2019-03-06 19:30 sergiodj+buildbot
2019-03-06 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4d00f5d8f6c4a1c9f334b1abb45b9ce05fb45b0a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4d00f5d8f6c4a1c9f334b1abb45b9ce05fb45b0a
gdb/fortran: Add Fortran 'kind' intrinsic and keyword
The 'kind' keyword has two uses in Fortran, it is the name of a
builtin intrinsic function, and it is also a keyword used to create a
type of a specific kind.
This commit adds support for using kind as an intrinsic function, and
also adds some initial support for using kind to create types of a
specific kind.
This commit only allows the creation of the type 'character(kind=1)',
however, it will be easy enough to extend this in future to support
more type kinds.
The kind of any expression can be queried using the kind intrinsic
function. At the moment the kind returned corresponds to the size of
the type, this matches how gfortran handles kinds. However, the
correspondence between kind and type size depends on the compiler
and/or the specific target, so this might not be correct for
everyone. If we want to support different compilers/targets in future
the code to compute the kind from a type will need to be updated.
gdb/ChangeLog:
* expprint.c (dump_subexp_body_standard): Support UNOP_KIND.
* f-exp.y: Define 'KIND' token.
(exp): New pattern for KIND expressions.
(ptype): Handle types with a kind extension.
(direct_abs_decl): Extend to spot kind extensions.
(f77_keywords): Add 'kind' to the list.
(push_kind_type): New function.
(convert_to_kind_type): New function.
* f-lang.c (evaluate_subexp_f): Support UNOP_KIND.
* parse.c (operator_length_standard): Likewise.
* parser-defs.h (enum type_pieces): Add tp_kind.
* std-operator.def: Add UNOP_KIND.
gdb/testsuite/ChangeLog:
* gdb.fortran/intrinsics.exp: New file.
* gdb.fortran/intrinsics.f90: New file.
* gdb.fortran/type-kinds.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Expand the set of types that support (kind=N)
@ 2019-03-06 19:42 sergiodj+buildbot
2019-03-06 19:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3be47f7aa99dc90190e642a4e191c9f049e0a934 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 3be47f7aa99dc90190e642a4e191c9f049e0a934
gdb/fortran: Expand the set of types that support (kind=N)
Expand the number of types that can be adjusted with a (kind=N) type
extension.
gdb/ChangeLog:
* f-exp.y (convert_to_kind_type): Handle more type kinds.
gdb/testsuite/ChangeLog:
* gdb.fortran/type-kinds.exp (test_cast_1_to_type_kind): New
function.
(test_basic_parsing_of_type_kinds): Expand types tested.
(test_parsing_invalid_type_kinds): New function.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add builtin 8-byte integer type with (kind=8) support
@ 2019-03-06 19:54 sergiodj+buildbot
2019-03-06 19:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 19:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 067630bdb553bb889104e3b064e4551531ddcedc ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 067630bdb553bb889104e3b064e4551531ddcedc
gdb/fortran: Add builtin 8-byte integer type with (kind=8) support
Add a new builtin type, an 8-byte integer, and allow GDB to parse
'integer (kind=8)', returning the new 8-byte integer.
gdb/ChangeLog:
* f-exp.y (convert_to_kind_type): Handle integer (kind=8).
* f-lang.c (build_fortran_types): Setup builtin_integer_s8.
* f-lang.h (struct builtin_f_type): Add builtin_integer_s8 field.
gdb/testsuite/ChangeLog:
* gdb.fortran/type-kinds.exp: Test new integer type kind.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add support for the ABS intrinsic function
@ 2019-03-06 20:20 sergiodj+buildbot
2019-03-06 20:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 20:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0841c79a3dc1cfa382164a6bb2c1ee41af3ab0a9 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0841c79a3dc1cfa382164a6bb2c1ee41af3ab0a9
gdb/fortran: Add support for the ABS intrinsic function
Adds support for the abs intrinsic function, this requires adding a
new pattern to the Fortran parser. Currently only float and integer
argument types are supported to ABS, complex is still not supported,
this can be added later if needed.
gdb/ChangeLog:
* f-exp.y: New token, UNOP_INTRINSIC.
(exp): New pattern using UNOP_INTRINSIC token.
(f77_keywords): Add 'abs' keyword.
* f-lang.c: Add 'target-float.h' and 'math.h' includes.
(value_from_host_double): New function.
(evaluate_subexp_f): Support UNOP_ABS.
gdb/testsuite/ChangeLog:
* gdb.fortran/intrinsics.exp: Extend to cover ABS.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames
@ 2019-03-06 20:33 sergiodj+buildbot
2019-03-06 20:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 20:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT efbecbc143f19cb308ae220fb386505f41ff4bc3 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: efbecbc143f19cb308ae220fb386505f41ff4bc3
gdb/fortran: Handle older TYPE*SIZE typenames
This patch adds support for the older TYPE*SIZE typenames that are
still around in older code.
For implementation this currently reuses the kind mechanism, as under
gFortran the kind number is equivalent to the size, however, this is
not necessarily true for all compilers. If the rules for other
compilers are better understood then this code might need to be
improved slightly to allow for a distinction between size and kind,
however, adding this extra complexity now seems pointless.
gdb/ChangeLog:
* f-exp.y (direct_abs_decl): Handle TYPE*SIZE type names.
gdb/testsuite/ChangeLog:
* gdb.fortran/type-kinds.exp: Extend to cover TYPE*SIZE cases.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] C++ify fork_info, use std::list
@ 2019-03-06 20:58 sergiodj+buildbot
2019-03-06 20:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 06974e6c05556edb7122f45239c95045e882dc76 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 06974e6c05556edb7122f45239c95045e882dc76
C++ify fork_info, use std::list
- Convert new_fork and free_fork to fork_info ctor/dtor.
- Use std::list.
gdb/ChangeLog:
2019-03-06 Pedro Alves <palves@redhat.com>
* linux-fork.c: Include <list>.
(fork_list): Now a std::list instance.
(fork_info): Add ctor, dtor, and in-class initialize all fields.
(forks_exist_p, find_last_fork): Adjust.
(new_fork): Delete.
(one_fork_p): New.
(add_fork): Adjust.
(free_fork): Delete, folded into fork_info::~fork_info().
(delete_fork, find_fork_ptid, find_fork_id, find_fork_pid):
Adjust.
(init_fork_list): Delete.
(linux_fork_killall, linux_fork_mourn_inferior)
(linux_fork_detach, info_checkpoints_command): Adjust.
(_initialize_linux_fork): No longer call init_fork_list.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads
@ 2019-03-06 21:11 sergiodj+buildbot
2019-03-06 21:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 21:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e52c971f17ac747a065388b54a909f44b5582cd9 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e52c971f17ac747a065388b54a909f44b5582cd9
linux-fork.c: rewrite inf_has_multiple_threads
There's no need to iterate over all threads of all inferiors here.
gdb/ChangeLog:
2019-03-06 Pedro Alves <palves@redhat.com>
* linux-fork.c (inf_has_multiple_thread_cb): Delete.
(inf_has_multiple_threads): Return 'bool' and rewrite using
inferior_info::threads().
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanups from coffread.c
@ 2019-03-06 23:22 sergiodj+buildbot
2019-03-06 23:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 23:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e2a035485a80651a5dc1711fee5a811e41ab131b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e2a035485a80651a5dc1711fee5a811e41ab131b
Remove cleanups from coffread.c
This removes the remaining cleanups from coffread.c.
Tested by the buildbot and also some manual testing.
This version includes the fix provided by Joel.
gdb/ChangeLog
2019-03-06 Joel Brobecker <brobecker@adacore.com>
Tom Tromey <tom@tromey.com>
* stabsread.h (struct stab_section_list): Remove.
(coffstab_build_psymtabs): Update.
* dbxread.c (symbuf_sections): Now a std::vector.
(sect_idx): New global.
(fill_symbuf): Update.
(coffstab_build_psymtabs): Change type of stabsects parameter.
Update.
* coffread.c (struct coff_symfile_info) <stabsects>: Now a
std::vector.
(linetab, linetab_offset, linetab_size, stringtab): Move earlier.
(coff_locate_sections): Update.
(coff_symfile_read): Remove cleanups. Update.
(init_stringtab): Add storage parameter.
(free_stringtab, free_stringtab_cleanup): Remove.
(init_lineno): Add storage parameter.
(free_linetab, free_linetab_cleanup): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove last cleanup from gdbserver
@ 2019-03-07 0:13 sergiodj+buildbot
2019-03-07 0:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 0:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 37991b4f52e7d13c586137f401ac65dec4aa732f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 37991b4f52e7d13c586137f401ac65dec4aa732f
Remove last cleanup from gdbserver
This removes the last cleanup from gdbserver, replacing it with
SCOPE_EXIT. This could perhaps be done in a different way, but this
approach was direct and obviously correct.
2019-03-06 Tom Tromey <tom@tromey.com>
* server.c (detach_or_kill_for_exit_cleanup): Remove parameter.
(captured_main): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove cleanup from solib-svr4.c
@ 2019-03-07 0:25 sergiodj+buildbot
2019-03-07 0:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 0:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d01c5877664024043f4e5920d072c5f62fc7f89a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d01c5877664024043f4e5920d072c5f62fc7f89a
Remove cleanup from solib-svr4.c
This removes a cleanup from solib-svr4.c, replacing it with
make_scope_exit.
2019-03-06 Tom Tromey <tom@tromey.com>
* solib-svr4.c (disable_probes_interface): Remove parameter.
(svr4_handle_solib_event): Use make_scope_exit.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove last cleanups from solib-svr4.c
@ 2019-03-07 0:38 sergiodj+buildbot
2019-03-07 0:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 0:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2b6ff1c0474fca286b95be7ae9dcc5a22ff2a0b9 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2b6ff1c0474fca286b95be7ae9dcc5a22ff2a0b9
Remove last cleanups from solib-svr4.c
This removes the last cleanups from solib-svr4.c, replacing them with
uses of make_scope_exit.
2019-03-06 Tom Tromey <tom@tromey.com>
* solib-svr4.c (svr4_parse_libraries, svr4_current_sos_direct):
Use make_scope_exit.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove last cleanup solib-aix.c
@ 2019-03-07 0:51 sergiodj+buildbot
2019-03-07 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 0:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 724127627fef458ed330d027cf0b3d17580af615 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 724127627fef458ed330d027cf0b3d17580af615
Remove last cleanup solib-aix.c
This removes the last cleanup solib-aix.c, replacing it with a use of
make_scope_exit.
2019-03-06 Tom Tromey <tom@tromey.com>
* solib-aix.c: Use make_scope_exit.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove last cleanup from linux-namespaces.c
@ 2019-03-07 1:04 sergiodj+buildbot
2019-03-07 1:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 1:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6cceac94147f6026e93dcfc0a0df03555b571a12 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6cceac94147f6026e93dcfc0a0df03555b571a12
Remove last cleanup from linux-namespaces.c
This removes the last cleanup from linux-namespaces.c, replacing it
with a use of SCOPE_EXIT.
2019-03-06 Tom Tromey <tom@tromey.com>
* nat/linux-namespaces.c (linux_mntns_access_fs): Use SCOPE_EXIT.
* common/filestuff.h (make_cleanup_close): Don't declare.
* common/filestuff.c (do_close_cleanup, make_cleanup_close):
Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use unique_xmalloc_ptr in remote.c
@ 2019-03-07 1:30 sergiodj+buildbot
2019-03-07 1:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 1:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c6321f19c5414c2a34db3cf5979834d081c32abd ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c6321f19c5414c2a34db3cf5979834d081c32abd
Use unique_xmalloc_ptr in remote.c
This removes a cleanup from remote.c, replacing it with
unique_xmalloc_ptr.
2019-03-06 Tom Tromey <tom@tromey.com>
* remote.c (remote_target::remote_parse_stop_reply): Use
unique_xmalloc_ptr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove basic cleanup code
@ 2019-03-07 1:42 sergiodj+buildbot
2019-03-07 1:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 1:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fe7b42e5843ef82f97959e0e18122c164449a8ea ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fe7b42e5843ef82f97959e0e18122c164449a8ea
Remove basic cleanup code
This removes the basic cleanup code: make_cleanups, do_cleanups,
discard_cleanups, and friends. This code is no longer needed, as
nothing in gdb makes an ordinary cleanup. Final cleanups are still
needed.
2019-03-06 Tom Tromey <tom@tromey.com>
* top.c (quit_force): Update.
* main.c (captured_command_loop): Update.
* common/new-op.c (operator new): Update.
* common/common-exceptions.c (struct catcher)
<save_cleanup_chain>: Remove member.
(exceptions_state_mc_init): Update.
(exception_try_scope_entry): Return nullptr.
(exception_try_scope_exit, exception_rethrow)
(throw_exception_sjlj, throw_exception_cxx): Update.
* common/cleanups.h (make_cleanup, make_cleanup_dtor)
(all_cleanups, do_cleanups, discard_cleanups)
(discard_final_cleanups, save_cleanups, save_final_cleanups)
(restore_cleanups, restore_final_cleanups): Don't declare.
(do_final_cleanups): Remove parameter.
* common/cleanups.c (cleanup_chain, make_cleanup)
(make_cleanup_dtor, all_cleanups, do_cleanups)
(discard_my_cleanups, discard_cleanups)
(discard_final_cleanups, save_my_cleanups, save_cleanups)
(save_final_cleanups, restore_my_cleanups, restore_cleanups)
(null_cleanup): Remove.
(do_final_cleanups): Remove parameter.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove free_current_contents
@ 2019-03-07 1:55 sergiodj+buildbot
2019-03-07 1:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 1:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ccf4211fdec30fab46a5552ecfbe8e7ca98d50f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0ccf4211fdec30fab46a5552ecfbe8e7ca98d50f
Remove free_current_contents
free_current_contents is no longer used, so this patch removes it.
2019-03-06 Tom Tromey <tom@tromey.com>
* utils.h (free_current_contents): Don't declare.
* utils.c (free_current_contents): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use SCOPE_EXIT in write_gcore_file
@ 2019-03-07 2:08 sergiodj+buildbot
2019-03-07 2:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 2:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7b1986e13c60f2a10721863ef684a18daccaaf7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a7b1986e13c60f2a10721863ef684a18daccaaf7
Use SCOPE_EXIT in write_gcore_file
This replaces a TRY/CATCH in write_gcore_file with a use of SCOPE_EXIT
instead. I find that this is simpler to understand.
2019-03-06 Tom Tromey <tom@tromey.com>
* gcore.c (write_gcore_file): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Move value_from_host_double into value.c and make more use of it
@ 2019-03-07 16:42 sergiodj+buildbot
2019-03-07 16:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 16:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7584bb30cf380cff9cc3914b1b523c5a1a5b4302 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7584bb30cf380cff9cc3914b1b523c5a1a5b4302
gdb: Move value_from_host_double into value.c and make more use of it
The function value_from_host_double can be moved from f-lang.c into
value.c as a generally useful function, and then used more widely.
Tested on X86-64/GNU Linux with no regressions.
gdb/ChangeLog:
* f-lang.c (value_from_host_double): Moved to...
* value.c (value_from_host_double): ...here.
* value.h (value_from_host_double): Declare.
* guile/scm-math.c (vlscm_convert_typed_number): Use
value_from_host_double.
(vlscm_convert_number): Likewise.
* guile/scm-value.c (gdbscm_value_to_real): Likewise.
* python/py-value.c (convert_value_from_python): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] C++-ify bcache
@ 2019-03-07 18:05 sergiodj+buildbot
2019-03-07 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 18:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 25629dfdb438c82f2bb711174042bb326a526aaf ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 25629dfdb438c82f2bb711174042bb326a526aaf
C++-ify bcache
This somewhat C++-ifies bcache. It replaces bcache_xmalloc and
bcache_xfree with constructors; changes some functions into methods;
and changes various structures to include a bcache directly (as
opposed to a pointer to a bcache).
Tested by the buildbot.
gdb/ChangeLog
2019-03-07 Tom Tromey <tom@tromey.com>
* symmisc.c (print_symbol_bcache_statistics): Update.
(print_objfile_statistics): Update.
* symfile.c (allocate_symtab): Update.
* stabsread.c: Don't include bcache.h.
* psymtab.h (struct psymbol_bcache): Don't declare.
(class psymtab_storage) <psymbol_cache>: Now a bcache.
(psymbol_bcache_init, psymbol_bcache_free)
(psymbol_bcache_get_bcache): Don't declare.
* psymtab.c (struct psymbol_bcache): Remove.
(psymtab_storage::psymtab_storage): Update.
(psymtab_storage::~psymtab_storage): Update.
(psymbol_bcache_init, psymbol_bcache_free)
(psymbol_bcache_get_bcache, psymbol_bcache_full): Remove.
(add_psymbol_to_bcache): Update.
(allocate_psymtab): Update.
* objfiles.h (struct objfile_per_bfd_storage) <filename_cache,
macro_cache>: No longer pointers.
* objfiles.c (get_objfile_bfd_data): Don't call bcache_xmalloc.
(free_objfile_per_bfd_storage): Don't call bcache_xfree.
* macrotab.c (macro_bcache): Update.
* macroexp.c: Don't include bcache.h.
* gdbtypes.c (check_types_worklist): Update.
(types_deeply_equal): Remove TRY/CATCH. Update.
* elfread.c (elf_symtab_read): Update.
* dwarf2read.c: Don't include bcache.h.
* buildsym.c (buildsym_compunit::get_macro_table): Update.
* bcache.h (bcache, bcache_full, bcache_xffree, bcache_xmalloc)
(print_bcache_statistics, bcache_memory_used): Don't declare.
(struct bcache): Move from bcache.c. Add constructor, destructor,
methods. Rename all data members.
* bcache.c (struct bcache): Move to bcache.h.
(bcache::expand_hash_table): Rename from expand_hash_table.
(bcache): Remove.
(bcache::insert): Rename from bcache_full.
(bcache::compare): Rename from bcache_compare.
(bcache_xmalloc): Remove.
(bcache::~bcache): Rename from bcache_xfree.
(bcache::print_statistics): Rename from print_bcache_statistics.
(bcache::memory_used): Rename from bcache_memory_used.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24311, FAIL: S-records with constructors
@ 2019-03-08 13:11 sergiodj+buildbot
2019-03-08 13:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-08 13:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ebd2263ba9a9124d93bbc0ece63d7e0fae89b40e ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: ebd2263ba9a9124d93bbc0ece63d7e0fae89b40e
PR24311, FAIL: S-records with constructors
Not padding string merge section output to its alignment can cause
failures of the S-record tests when input string merge sections are
padded, since the ELF linker output for the single string section
would shrink compared to the SREC linker output. That might result in
following sections having different addresses.
On the other hand, padding string merge section output when input
string merge sections are *not* padded can also cause failures, in
this case due to the ELF linker output for the string section being
larger (due to padding) than the SREC linker output.
It would be better to write a more robust test, but it is also nice
to leave input unchanged when no string merges occur.
PR 24311
* merge.c (merge_strings): Return secinfo. Don't pad section
to alignment here.
(_bfd_merge_sections): Pad section to alignment here, if input
sections contributing to merged output all pad to alignment.
Formatting.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support styling on native MS-Windows console
@ 2019-03-09 7:02 sergiodj+buildbot
2019-03-09 7:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 7:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e4adb93903d4ae0b7ab2b5004364e50627df95f7 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: e4adb93903d4ae0b7ab2b5004364e50627df95f7
Support styling on native MS-Windows console
gdb/ChangeLog:
2019-03-08 Eli Zaretskii <eliz@gnu.org>
PR/24315
* utils.c (can_emit_style_escape) [_WIN32]: Don't disable styling
on MS-Windows if $TERM is not defined.
* cli/cli-style.c: Set cli_styling to 1 in the MinGW build.
* posix-hdep.c (gdb_console_fputs):
* mingw-hdep.c (rgb_to_16colors, gdb_console_fputs): New
functions.
* ui-file.h (gdb_console_fputs): Add prototype.
* ui-file.c (stdio_file::puts): Call gdb_console_fputs, and fall
back to fputs only if the former returns zero.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Ensure 'help set/show print inferior-events' shows the example events.
@ 2019-03-09 11:43 sergiodj+buildbot
2019-03-09 11:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 11:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e3abbe7e9458be7a92c27bc4649295b935340699 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e3abbe7e9458be7a92c27bc4649295b935340699
Ensure 'help set/show print inferior-events' shows the example events.
Without this patch, the help stops after 'e.g.' :
(gdb) apropos \(inferior\|thread\) event
set print inferior-events -- Set printing of inferior events (e.g.
set print thread-events -- Set printing of thread events (such as thread start and exit)
show print inferior-events -- Show printing of inferior events (e.g.
show print thread-events -- Show printing of thread events (such as thread start and exit)
Using the same notation as for the thread evenets (i.e. 'such as') gives:
(gdb) apropos \(inferior\|thread\) event
set print inferior-events -- Set printing of inferior events (such as inferior start and exit)
set print thread-events -- Set printing of thread events (such as thread start and exit)
show print inferior-events -- Show printing of inferior events (such as inferior start and exit)
show print thread-events -- Show printing of thread events (such as thread start and exit)
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_ptr from rank_one_type
@ 2019-03-09 13:46 sergiodj+buildbot
2019-03-09 13:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 13:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9293fc63040a41e0830acb61d93037b6e0f2c424 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 9293fc63040a41e0830acb61d93037b6e0f2c424
Split rank_one_type_parm_ptr from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_ptr): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_array from rank_one_type
@ 2019-03-09 13:57 sergiodj+buildbot
2019-03-09 13:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 13:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b9f4512f250f7fa685f1f888b6fcbe2e34dc9733 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: b9f4512f250f7fa685f1f888b6fcbe2e34dc9733
Split rank_one_type_parm_array from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_array): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_func from rank_one_type
@ 2019-03-09 14:08 sergiodj+buildbot
2019-03-09 14:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 14:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1f832d6cd39e14e9f8c0ba142d2e442792119e4 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: f1f832d6cd39e14e9f8c0ba142d2e442792119e4
Split rank_one_type_parm_func from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_func): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_int from rank_one_type
@ 2019-03-09 14:21 sergiodj+buildbot
2019-03-09 14:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 14:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 34910087ebf8fb3f1646d9177d7c961a1b3231da ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 34910087ebf8fb3f1646d9177d7c961a1b3231da
Split rank_one_type_parm_int from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_int): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_enum from rank_one_type
@ 2019-03-09 14:34 sergiodj+buildbot
2019-03-09 14:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 14:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 793cd1d2a12e9741e01f5df702e493f5e9ba0dea ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 793cd1d2a12e9741e01f5df702e493f5e9ba0dea
Split rank_one_type_parm_enum from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_enum): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_range from rank_one_type
@ 2019-03-09 14:58 sergiodj+buildbot
2019-03-09 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 14:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0dd322dc1345d1b8809f20a674c977276f0c0430 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 0dd322dc1345d1b8809f20a674c977276f0c0430
Split rank_one_type_parm_range from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_range): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_bool from rank_one_type
@ 2019-03-09 15:10 sergiodj+buildbot
2019-03-09 15:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 15:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2c50903575cec09d1748612fd0355b766ec04a19 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 2c50903575cec09d1748612fd0355b766ec04a19
Split rank_one_type_parm_bool from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_bool): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_complex from rank_one_type
@ 2019-03-09 15:36 sergiodj+buildbot
2019-03-09 15:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 15:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2598a94b1e23c148a8f84d796e92de3a10d6e4e5 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 2598a94b1e23c148a8f84d796e92de3a10d6e4e5
Split rank_one_type_parm_complex from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_complex): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_struct from rank_one_type
@ 2019-03-09 15:50 sergiodj+buildbot
2019-03-09 15:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 15:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 595f96a94448d1327aeac8783622e390794a722c ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 595f96a94448d1327aeac8783622e390794a722c
Split rank_one_type_parm_struct from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_struct): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_set from rank_one_type
@ 2019-03-09 16:04 sergiodj+buildbot
2019-03-09 16:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-09 16:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f09ce22d6a2266c3bbe5061eb61e7fad65568652 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: f09ce22d6a2266c3bbe5061eb61e7fad65568652
Split rank_one_type_parm_set from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_set): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S/390: arch13: Add instruction descriptions
@ 2019-03-12 13:28 sergiodj+buildbot
2019-03-12 13:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 13:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ba354106f02e25c9adc3dc1364d6a974216ec94e ***
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: ba354106f02e25c9adc3dc1364d6a974216ec94e
S/390: arch13: Add instruction descriptions
opcodes/ChangeLog:
2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com>
* s390-opc.txt: Add instruction descriptions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S/390: arch13: Adjust to recent changes
@ 2019-03-12 13:40 sergiodj+buildbot
2019-03-12 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 13:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 40f382e88d0391ffaa4098c92cbf339a7924a629 ***
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: 40f382e88d0391ffaa4098c92cbf339a7924a629
S/390: arch13: Adjust to recent changes
opcodes/ChangeLog:
2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com>
* s390-opc.txt: Rename selhhhr to selfhr. Remove optional operand
from vstrszb, vstrszh, and vstrszf.
gas/ChangeLog:
2019-03-12 Andreas Krebbel <krebbel@linux.ibm.com>
* testsuite/gas/s390/zarch-arch13.s: Adjust testcase to optable changes.
* testsuite/gas/s390/zarch-arch13.d: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't use bfd_get_file_size in objdump
@ 2019-03-12 13:53 sergiodj+buildbot
2019-03-12 13:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a6e0d89bb018cef0d8d13c497d8f340aa2a0fc8 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 7a6e0d89bb018cef0d8d13c497d8f340aa2a0fc8
Don't use bfd_get_file_size in objdump
Compressed debug sections can have uncompressed sizes that exceed the
original file size, so we can't use bfd_get_file_size. objdump also
used bfd_get_file_size to limit reloc section size, but I believe the
underlying bug causing the PR22508 out of bounds buffer access was
that we had an integer overflow when calculating the reloc buffer
size. I've fixed that instead in most of the backends, som and
vms-alpha being the exceptions. SOM and vmd-alpha have rather more
serious bugs in their slurp_relocs routines that would need fixing
first if we want to fuss about making them safe against fuzzed object
files.
The patch also fixes a number of other potential overflows by using
the bfd_alloc2/malloc2/zalloc2 memory allocation functions.
bfd/
* coffcode.h (buy_and_read): Delete unnecessary forward decl. Add
nmemb parameter. Use bfd_alloc2.
(coff_slurp_line_table): Use bfd_alloc2. Update buy_and_read calls.
Delete assertion.
(coff_slurp_symbol_table): Use bfd_alloc2 and bfd_zalloc2.
(coff_slurp_reloc_table): Use bfd_alloc2. Update buy_and_read calls.
* coffgen.c (coff_get_reloc_upper_bound): Ensure size calculation
doesn't overflow.
* elf.c (bfd_section_from_shdr): Use bfd_zalloc2. Style fix.
(assign_section_numbers): Style fix.
(swap_out_syms): Use bfd_malloc2.
(_bfd_elf_get_reloc_upper_bound): Ensure size calculation doesn't
overflow.
(_bfd_elf_make_empty_symbol): Style fix.
(elfobj_grok_stapsdt_note_1): Formatting.
* elfcode.h (elf_object_p): Use bfd_alloc2.
(elf_write_relocs, elf_write_shdrs_and_ehdr): Likewise.
(elf_slurp_symbol_table): Use bfd_zalloc2.
(elf_slurp_reloc_table): Use bfd_alloc2.
(_bfd_elf_bfd_from_remote_memory): Use bfd_malloc2.
* elf64-sparc (elf64_sparc_get_reloc_upper_bound): Ensure
size calculation doesn't overflow.
(elf64_sparc_get_dynamic_reloc_upper_bound): Likewise.
* mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
* pdp11.c (get_reloc_upper_bound): Copy aoutx.h version.
binutils/
* objdump.c (load_specific_debug_section): Don't compare section
size against file size.
(dump_relocs_in_section): Don't compare reloc size against file size.
Print "failed to read relocs" on bfd_get_reloc_upper_bound error.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change iterate_over_lwps to take a gdb::function_view
@ 2019-03-12 17:07 sergiodj+buildbot
2019-03-12 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d3a70e03cf51c8fb6bc183eaff7559edffec2045 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d3a70e03cf51c8fb6bc183eaff7559edffec2045
Change iterate_over_lwps to take a gdb::function_view
This changes iterate_over_lwps to use a gdb::function_view. This was
needed in order to make null_ptid and minus_one_ptid 'const'.
gdb/ChangeLog
2019-03-12 Tom Tromey <tromey@adacore.com>
* linux-nat.c (iterate_over_lwps): Update.
(stop_callback): Remove parameter.
(stop_wait_callback, detach_callback, resume_set_callback)
(select_singlestep_lwp_callback, set_ignore_sigint)
(status_callback, resumed_callback, resume_clear_callback)
(kill_callback, kill_wait_callback, linux_nat_stop_lwp): Remove
data parameter.
(linux_nat_target::detach, linux_nat_target::resume)
(linux_stop_and_wait_all_lwps, select_event_lwp)
(linux_nat_filter_event, linux_nat_wait_1)
(linux_nat_target::kill, linux_nat_target::stop)
(linux_nat_target::stop): Update.
(linux_nat_resume_callback): Change type.
(resume_stopped_resumed_lwps, count_events_callback)
(select_event_lwp_callback): Likewise.
(linux_stop_lwp, linux_nat_stop_lwp): Update.
* arm-linux-nat.c (struct update_registers_data): Remove.
(update_registers_callback): Change type.
(arm_linux_insert_hw_breakpoint1): Update.
* nat/x86-linux-dregs.c (update_debug_registers_callback): Remove
parameter.
(x86_linux_dr_set_addr): Update.
(x86_linux_dr_set_control): Update.
* nat/linux-nat.h (iterate_over_lwps_ftype): Remove parameter.
(iterate_over_lwps): Use gdb::function_view.
* nat/aarch64-linux-hw-point.c (struct
aarch64_dr_update_callback_param): Remove.
(debug_reg_change_callback): Change type.
(aarch64_notify_debug_reg_change): Update.
* s390-linux-nat.c (s390_refresh_per_info): Update.
gdb/gdbserver/ChangeLog
2019-03-12 Tom Tromey <tromey@adacore.com>
* linux-low.c (iterate_over_lwps): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make null_ptid and minus_one_ptid "const"
@ 2019-03-12 17:21 sergiodj+buildbot
2019-03-12 17:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 17547186c25aa96d078a6ff9d61a55880fa009f4 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 17547186c25aa96d078a6ff9d61a55880fa009f4
Make null_ptid and minus_one_ptid "const"
This makes null_ptid and minus_one_ptid "const". I think this is an
improvement because it means they can't be accidentally modified.
2019-03-12 Tom Tromey <tromey@adacore.com>
* common/ptid.c (null_ptid, minus_one_ptid): Now const.
* common/ptid.h (null_ptid, minus_one_ptid): Now const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix test-cp-name-parser build, unused variable
@ 2019-03-12 17:34 sergiodj+buildbot
2019-03-12 17:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3276427003bd1fc676d1cb913c4d09a9f7b1c74f ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 3276427003bd1fc676d1cb913c4d09a9f7b1c74f
Fix test-cp-name-parser build, unused variable
$ make test-cp-name-parser
...
CXX test-cp-name-parser.o
src/gdb/cp-name-parser.y: In function int gdb::main(int, char**):
src/gdb/cp-name-parser.y:2137:6: error: unused variable len [-Werror=unused-variable]
int len;
^~~
cc1plus: all warnings being treated as errors
gdb/ChangeLog:
2019-03-12 Pedro Alves <palves@redhat.com>
* cp-name-parser.y (main): Remove unused 'len' variable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix test-cp-name-parser build, parser_fprintf undefined
@ 2019-03-12 17:46 sergiodj+buildbot
2019-03-12 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec148c577eaa29f26a943c13b0b66ca3877bb5aa ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: ec148c577eaa29f26a943c13b0b66ca3877bb5aa
Fix test-cp-name-parser build, parser_fprintf undefined
$ make test-cp-name-parser
...
test-cp-name-parser.o: In function `yy_symbol_print(_IO_FILE*, int, YYSTYPE const*, cpname_state*)':
build/gdb/cp-name-parser.c.tmp:1335: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
build/gdb/cp-name-parser.c.tmp:1339: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
test-cp-name-parser.o: In function `yy_stack_print(short*, short*)':
build/gdb/cp-name-parser.c.tmp:1350: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
build/gdb/cp-name-parser.c.tmp:1354: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
build/gdb/cp-name-parser.c.tmp:1356: undefined reference to `parser_fprintf(_IO_FILE*, char const*, ...)'
build/gdb/cp-name-parser.c.tmp:1376: more undefined references to `parser_fprintf(_IO_FILE*, char const*, ...)' follow
collect2: error: ld returned 1 exit status
make: *** [Makefile:1833: test-cp-name-parser] Error 1
gdb/ChangeLog:
2019-03-12 Pedro Alves <palves@redhat.com>
* yy-remap.h [TEST_CPNAMES] (YYFPRINTF): Don't define.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make remote.c ptid constants "const"
@ 2019-03-12 17:59 sergiodj+buildbot
2019-03-12 17:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 17:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ffdd69cf7840f3b158de16819591361c8dae3a4d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: ffdd69cf7840f3b158de16819591361c8dae3a4d
Make remote.c ptid constants "const"
This changes magic_null_ptid, not_sent_ptid, and any_thread_ptid to be
"const". This is a minor improvement that makes it so these can't be
accidentally modified.
Tested by rebuilding. I'm checking this in.
gdb/ChangeLog
2019-03-12 Tom Tromey <tromey@adacore.com>
* remote.c (magic_null_ptid, not_sent_ptid, any_thread_ptid): Now
const. Add initializers.
(_initialize_remote): Don't initialize ptid globals.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix MinGW build with source-highlight
@ 2019-03-12 18:26 sergiodj+buildbot
2019-03-12 18:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 18:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a3508220eecf27e1952a73cd3ea6d6314ce8e1d ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 3a3508220eecf27e1952a73cd3ea6d6314ce8e1d
Fix MinGW build with source-highlight
gdb/ChangeLog
2019-03-12 Eli Zaretskii <eliz@gnu.org>
PR/24325
* source-cache.c: #undef open and close, to avoid unresolved
externals during linking.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2
@ 2019-03-12 20:07 sergiodj+buildbot
2019-03-12 20:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 20:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7cde5fc2ec2e32e8a81ac613d26cf86bf8623816 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7cde5fc2ec2e32e8a81ac613d26cf86bf8623816
gdb/testsuite: Prepare for DejaGnu 1.6.2
Changes in DejaGnu 1.6.2 mean that our testsuite will no longer run.
This is because of some confusion over how the gdb.exp file is
handled.
The gdb.exp file is really the tool init file, which is loaded from
within the DejaGnu core, and it should not be loaded directly from any
other file in the testsuite.
DejaGnu tries to prevent the same library being loaded twice by
remembering the names of library files as they are loaded. Until
recently loading the tool init file in DejaGnu was very similar to
loading a library file, as a result, loading the gdb.exp tool init
file simply recorded 'gdb.exp' as having been loaded, future attempts
to load 'gdb.exp' as a library would then be ignored (as the file was
marked as already loaded).
DejaGnu has now changed so that it supports having both a tool init
file and a library with the same name, something that was not possible
before. What this means however is that when the core loads the
'gdb.exp' tool init file it no longer marks the library 'gdb.exp' as
having been loaded. When we then execute 'load_lib gdb.exp' we then
try to reload the 'gdb.exp' file.
Unfortunately our gdb.exp file can only be loaded once. It use of
'rename cd builtin_cd' means that a second attempt to load this file
will fail.
This was discussed on the DejaGnu list here:
http://lists.gnu.org/archive/html/dejagnu/2019-03/msg00000.html
and the suggested advice is that, unless we have some real requirement
to load the tool init file twice, we should remove calls to 'load_lib
gdb.exp' and rely on DejaGnu to load the file for us, which is what
this patch does.
I've tested with native X86-64/GNU Linux and see no regressions.
gdb/testsuite/ChangeLog:
* config/default.exp: Remove 'load_lib gdb.exp'.
* config/monitor.exp: Likewise.
* config/sid.exp: Likewise.
* config/sim.exp: Likewise.
* config/slite.exp: Likewise.
* config/unix.exp: Likewise.
* gdb.base/default.exp: Remove unhelpful comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support the fs_base and gs_base registers on i386.
@ 2019-03-12 21:01 sergiodj+buildbot
2019-03-12 21:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1163a4b7a38a79ebd153dc5ee76ce93877d21dbd ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 1163a4b7a38a79ebd153dc5ee76ce93877d21dbd
Support the fs_base and gs_base registers on i386.
As on amd64, these registers hold the base address of the fs and gs
segments, respectively. For i386 these two registers are 32 bits.
gdb/ChangeLog:
* amd64-fbsd-nat.c (amd64_fbsd_nat_target::read_description):
Update calls to i386_target_description to add 'segments'
parameter.
* amd64-tdep.c (amd64_init_abi): Set tdep->fsbase_regnum. Don't
add segment base registers.
* arch/i386.c (i386_create_target_description): Add 'segments'
parameter to enable segment base registers.
* arch/i386.h (i386_create_target_description): Likewise.
* features/i386/32bit-segments.xml: New file.
* features/i386/32bit-segments.c: Generate.
* i386-fbsd-nat.c (i386_fbsd_nat_target::read_description): Update
call to i386_target_description to add 'segments' parameter.
* i386-fbsd-tdep.c (i386fbsd_core_read_description): Likewise.
* i386-go32-tdep.c (i386_go32_init_abi): Likewise.
* i386-linux-tdep.c (i386_linux_read_description): Likewise.
* i386-tdep.c (i386_validate_tdesc_p): Add segment base registers
if feature is present.
(i386_gdbarch_init): Pass I386_NUM_REGS to set_gdbarch_num_regs.
Add 'segments' parameter to call to i386_target_description.
(i386_target_description): Add 'segments' parameter to enable
segment base registers.
(_initialize_i386_tdep) [GDB_SELF_TEST]: Add 'segments' parameter
to call to i386_target_description.
* i386-tdep.h (struct gdbarch_tdep): Add 'fsbase_regnum'.
(enum i386_regnum): Add I386_FSBASE_REGNUM and I386_GSBASE_REGNUM.
Define I386_NUM_REGS.
(i386_target_description): Add 'segments' parameter to enable
segment base registers.
gdb/gdbserver/ChangeLog:
* linux-x86-tdesc.c (i386_linux_read_description): Update call to
i386_create_target_description for 'segments' parameter.
* lynx-i386-low.c (lynx_i386_arch_setup): Likewise.
* nto-x86-low.c (nto_x86_arch_setup): Likewise.
* win32-i386-low.c (i386_arch_setup): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support fs_base and gs_base on FreeBSD/i386.
@ 2019-03-12 21:13 sergiodj+buildbot
2019-03-12 21:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dd6876c91cd40cc105b1a91f418ca2c80683b314 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: dd6876c91cd40cc105b1a91f418ca2c80683b314
Support fs_base and gs_base on FreeBSD/i386.
The i386 BSD native target uses the same ptrace operations
(PT_[GS]ET[FG]SBASE) as the amd64 BSD native target to fetch and store
the registers.
The amd64 BSD native now uses 'tdep->fsbase_regnum' instead of
hardcoding AMD64_FSBASE_REGNUM and AMD64_GSBASE_REGNUM to support
32-bit targets. In addition, the store operations explicitly zero the
new register value before fetching it from the register cache to
ensure 32-bit values are zero-extended.
gdb/ChangeLog:
* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers): Use
tdep->fsbase_regnum instead of constants for fs_base and gs_base.
(amd64bsd_store_inferior_registers): Likewise.
* amd64-fbsd-nat.c (amd64_fbsd_nat_target::read_description):
Enable segment base registers.
* i386-bsd-nat.c (i386bsd_fetch_inferior_registers): Use
PT_GETFSBASE and PT_GETGSBASE.
(i386bsd_store_inferior_registers): Use PT_SETFSBASE and
PT_SETGSBASE.
* i386-fbsd-nat.c (i386_fbsd_nat_target::read_description): Enable
segment base registers.
* i386-fbsd-tdep.c (i386fbsd_core_read_description): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Handle an edge case for minisym TLS variable lookups.
@ 2019-03-12 21:26 sergiodj+buildbot
2019-03-12 21:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT df22c1e5d53c38f38bce6072bb46de240f9e0e2b ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: df22c1e5d53c38f38bce6072bb46de240f9e0e2b
Handle an edge case for minisym TLS variable lookups.
If a TLS variable is provided by a minisym from a separate debug file,
the separate debug file is passed to
gdbarch_fetch_tls_load_module_address. However, the object files
stored in the shared object list are the original object files, not
the separate debug object files. In this case,
svr4_fetch_objfile_link_map was failing to find the link map entry
since the debug object file is not in its internal list, only the
original object file.
gdb/ChangeLog:
* solib-svr4.c (svr4_fetch_objfile_link_map): Look for
objfile->separate_debug_objfile_backlink if not NULL.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a new gdbarch method to resolve the address of TLS variables.
@ 2019-03-12 21:52 sergiodj+buildbot
2019-03-12 21:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 21:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6e056c817845f3d736a1be6b68c69b439c6c6d25 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 6e056c817845f3d736a1be6b68c69b439c6c6d25
Add a new gdbarch method to resolve the address of TLS variables.
Permit TLS variable addresses to be resolved purely by an ABI rather
than requiring a target method. This doesn't try the target method if
the ABI function is present (even if the ABI function fails) to
simplify error handling.
gdb/ChangeLog:
* gdbarch.sh (get_thread_local_address): New method.
* gdbarch.h, gdbarch.c: Regenerate.
* target.c (target_translate_tls_address): Use
gdbarch_get_thread_local_address if present instead of
target::get_thread_local_address.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove code disabled since at least 1999 from lookup_struct_elt_type.
@ 2019-03-12 22:06 sergiodj+buildbot
2019-03-12 22:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 36c53a0262f84ad11d738471789dadfa9c4eb320 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 36c53a0262f84ad11d738471789dadfa9c4eb320
Remove code disabled since at least 1999 from lookup_struct_elt_type.
Update the comment above the function to reflect the code removal and
document the existing behavior.
gdb/ChangeLog:
* gdbtypes.c (lookup_struct_elt_type): Update comment and
remove disabled code block.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a helper function to resolve TLS variable addresses for FreeBSD.
@ 2019-03-12 22:34 sergiodj+buildbot
2019-03-12 22:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 945f3901b5889e57edf5a2ee25acb51f0078a719 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 945f3901b5889e57edf5a2ee25acb51f0078a719
Add a helper function to resolve TLS variable addresses for FreeBSD.
The fbsd_get_thread_local_address function accepts the base address of
a thread's DTV array and the base address of an object file's link map
and uses this to compute a TLS variable's address. FreeBSD
architectures use an architecture-specific method to determine the
address of the DTV array pointer and call this helper function to
perform the rest of the address calculation.
* fbsd-tdep.c (fbsd_pspace_data_handle): New variable.
(struct fbsd_pspace_data): New type.
(get_fbsd_pspace_data, fbsd_pspace_data_cleanup)
(fbsd_read_integer_by_name, fbsd_fetch_rtld_offsets)
(fbsd_get_tls_index, fbsd_get_thread_local_address): New function.
(_initialize_fbsd_tdep): Initialize 'fbsd_pspace_data_handle'.
* fbsd-tdep.c (fbsd_get_thread_local_address): New prototype.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/amd64.
@ 2019-03-12 22:47 sergiodj+buildbot
2019-03-12 22:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f5424cfa7e9337a6cb02a1f83c9feea0995c5350 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: f5424cfa7e9337a6cb02a1f83c9feea0995c5350
Support TLS variables on FreeBSD/amd64.
Use the fs_base register to fetch the address of a thread's tcb and
calculate the address of the DTV array. This value is then passed to
fbsd_get_thread_local_address to compute the final variable address.
Note that fs_base is currently only available via the native target as
core dumps on FreeBSD do not store the value of fs_base.
gdb/ChangeLog:
* amd64-fbsd-tdep.c (amd64fbsd_get_thread_local_address): New.
(amd64fbsd_init_abi): Install gdbarch
"fetch_tls_load_module_address" and "get_thread_local_address"
methods.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/i386.
@ 2019-03-12 22:59 sergiodj+buildbot
2019-03-12 22:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 22:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ce25aa57a3cdd028be5868423e6e55506ccd1053 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: ce25aa57a3cdd028be5868423e6e55506ccd1053
Support TLS variables on FreeBSD/i386.
Derive the pointer to the DTV array from the gs_base register. As
with FreeBSD/amd64, gs_base is currently only available via the native
target.
gdb/ChangeLog:
* i386-fbsd-tdep.c (i386fbsd_get_thread_local_address): New.
(i386fbsd_init_abi): Install gdbarch
"fetch_tls_load_module_address" and "get_thread_local_address"
methods.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/riscv.
@ 2019-03-12 23:12 sergiodj+buildbot
2019-03-12 23:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 23:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b0f87ed032bb68a9965de81cbf9fd676a83b9174 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: b0f87ed032bb68a9965de81cbf9fd676a83b9174
Support TLS variables on FreeBSD/riscv.
Derive the pointer to the DTV array from the tp register.
gdb/ChangeLog:
* riscv-fbsd-tdep.c (riscv_fbsd_get_thread_local_address): New.
(riscv_fbsd_init_abi): Install gdbarch
"fetch_tls_load_module_address" and "get_thread_local_address"
methods.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/powerpc.
@ 2019-03-12 23:25 sergiodj+buildbot
2019-03-12 23:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 23:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8399425f5f472ad8e630bb30ad2dbefeddbb68b7 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 8399425f5f472ad8e630bb30ad2dbefeddbb68b7
Support TLS variables on FreeBSD/powerpc.
Derive the pointer to the DTV array from the %r2 register on 32-bit
powerpc and %r13 on 64-bit powerpc.
gdb/ChangeLog:
* ppc-fbsd-tdep.c (ppcfbsd_get_thread_local_address): New.
(ppcfbsd_init_abi): Install gdbarch
"fetch_tls_load_module_address" and "get_thread_local_address"
methods.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] The NEWS file had two "New targets" sections for 8.3.
@ 2019-03-12 23:39 sergiodj+buildbot
2019-03-12 23:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-12 23:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 197df35ec4f370e9902892ff8339232869cf86ce ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 197df35ec4f370e9902892ff8339232869cf86ce
The NEWS file had two "New targets" sections for 8.3.
gdb/ChangeLog:
* NEWS: Combine separate "New targets" sections for 8.3.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs
@ 2019-03-13 12:16 sergiodj+buildbot
2019-03-13 12:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 37c18eedffe3926a330149ca93e7407917e2be38 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 37c18eedffe3926a330149ca93e7407917e2be38
[BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs
This is part of the patch series to add support for BTI and
PAC in AArch64 linker.
1) This patch adds a new ld command line option: --force-bti.
In the presence of this option, the linker enables BTI with the
GNU_PROPERTY_AARCH64_FEATURE_1_BTI feature. This gives out warning
in case of missing gnu notes for BTI in inputs.
2) It also defines a new set of BTI enabled PLTs. These are used either
when all the inputs are marked with GNU_PROPERTY_AARCH64_FEATURE_1_BTI
or when the new --force-bti option is used. This required adding new
fields in elf_aarch64_link_hash_table so that we could make the PLT
related information more generic.
3) It also defines a dynamic tag DT_AARCH64_BTI_PLT. The linker uses
this whenever it picks BTI enabled PLTs.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
*** bfd/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
Szabolcs Nagy <szabolcs.nagy@arm.com>
* bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
(aarch64_bti_pac_info): New.
(bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
(bfd_elf32_aarch64_set_options): Likewise.
* bfd-in2.h: Regenerate
* elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
(PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
(elfNN_aarch64_small_plt0_bti_entry): New.
(elfNN_aarch64_small_plt_bti_entry): New.
(elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
(elf_aarch64_obj_tdata): Add no_bti_warn and plt_type fields.
(elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
tlsdesc_plt_entry_size fields.
(elfNN_aarch64_link_hash_table_create): Initialise the new fields.
(setup_plt_values): New helper function.
(bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
bti enable type.
(elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
fixed macros.
(elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
(elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
to plt stubs instead of fixed ones and update filling them according
to the need for bti.
(elfNN_aarch64_init_small_plt0_entry): Likewise.
(elfNN_aarch64_finish_dynamic_sections): Likewise.
(get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
(elfNN_aarch64_plt_sym_val): Update size accordingly.
(elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
is set.
(bfd_elfNN_get_synthetic_symtab): Define.
(elfNN_aarch64_merge_gnu_properties): Give out warning with --force-bti
and mising BTI NOTE SECTION.
*** binutils/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
Szabolcs Nagy <szabolcs.nagy@arm.com>
* readelf.c (get_aarch64_dynamic_type): New.
(get_dynamic_type): Use above for EM_AARCH64.
(dynamic_section_aarch64_val): New.
(process_dynamic_section): Use above for EM_AARCH64.
*** include/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
Szabolcs Nagy <szabolcs.nagy@arm.com>
* elf/aarch64.h (DT_AARCH64_BTI_PLT): New.
*** ld/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
Szabolcs Nagy <szabolcs.nagy@arm.com>
* NEWS: Document --force-bti.
* emultempl/aarch64elf.em (plt_type, bti_type, OPTION_FORCE_BTI): New.
(PARSE_AND_LIST_SHORTOPTS, PARSE_AND_LIST_OPTIONS): Add force-bti.
(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_FORCE_BTI.
* testsuite/ld-aarch64/aarch64-elf.exp: Add all the tests below.
* testsuite/ld-aarch64/bti-plt-1.d: New test.
* testsuite/ld-aarch64/bti-plt-1.s: New test.
* testsuite/ld-aarch64/bti-plt-2.s: New test.
* testsuite/ld-aarch64/bti-plt-2.d: New test.
* testsuite/ld-aarch64/bti-plt-3.d: New test.
* testsuite/ld-aarch64/bti-plt-4.d: New test.
* testsuite/ld-aarch64/bti-plt-5.d: New test.
* testsuite/ld-aarch64/bti-plt-6.d: New test.
* testsuite/ld-aarch64/bti-plt-7.d: New test.
* testsuite/ld-aarch64/bti-plt-so.s: New test.
* testsuite/ld-aarch64/bti-plt.ld: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-03-13 12:16 [binutils-gdb] [BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs sergiodj+buildbot
@ 2019-03-13 12:16 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:16 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9463>
Commit(s) tested:
37c18eedffe3926a330149ca93e7407917e2be38
Author(s) (in the same order as the commits):
Sudakshina Das <sudi.das@arm.com>
Subject:
[BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/37/37c18eedffe3926a330149ca93e7407917e2be38/>
*** Diff to previous build ***
============================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=95faa59e>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=95faa59e>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC.
@ 2019-03-13 12:28 sergiodj+buildbot
2019-03-13 12:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1dbade7441b9f32d6ba9aa1d44da5f28c44282fa ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 1dbade7441b9f32d6ba9aa1d44da5f28c44282fa
[BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC.
This is part of the patch series to add support for BTI and
PAC in AArch64 linker.
1) This patch adds new definitions of PAC enabled PLTs
and both BTI and PAC enabled PLTs.
2) It also defines the new dynamic tag DT_AARCH64_PAC_PLT
for the PAC enabled PLTs.
3) This patch adds a new ld command line option: --pac-plt.
In the presence of this option, the linker uses the PAC
enabled PLTs and marks with DT_AARCH64_PAC_PLT.
4) In case both BTI and PAC are enabled the linker should
pick PLTs enabled with both and also use dynamic tags for both.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
*** bfd/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* elfnn-aarch64.c (PLT_PAC_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): New.
(PLT_BTI_PAC_ENTRY_SIZE, PLT_BTI_PAC_SMALL_ENTRY_SIZE): New.
(setup_plt_values): Account for PAC or PAC and BTI enabled PLTs.
(elfNN_aarch64_size_dynamic_sections): Add checks for PLT_BTI_PAC
and PLT_PAC_PLT.
(elfNN_aarch64_finish_dynamic_sections): Account for PLT_BTI_PAC.
(get_plt_type): Add case for DT_AARCH64_PAC_PLT.
(elfNN_aarch64_plt_sym_val): Add cases for PLT_BTI_PAC and PLT_PAC.
*** binutils/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* readelf.c (get_aarch64_dynamic_type): Add case for
DT_AARCH64_PAC_PLT.
(dynamic_section_aarch64_val): Likewise.
*** include/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* elf/aarch64.h (DT_AARCH64_PAC_PLT): New.
*** ld/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* NEWS: Document --pac-plt.
* emultempl/aarch64elf.em (OPTION_PAC_PLT): New.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add pac-plt.
(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_PAC_PLT.
* testsuite/ld-aarch64/aarch64-elf.exp: Add the following tests.
* testsuite/ld-aarch64/bti-pac-plt-1.d: New test.
* testsuite/ld-aarch64/bti-pac-plt-2.d: New test.
* testsuite/ld-aarch64/pac-plt-1.d: New test.
* testsuite/ld-aarch64/pac-plt-2.d: New test.
* testsuite/ld-aarch64/bti-plt-1.s: Add .ifndef directive.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-03-13 12:28 [binutils-gdb] [BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC sergiodj+buildbot
@ 2019-03-13 12:28 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 12:28 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9464>
Commit(s) tested:
1dbade7441b9f32d6ba9aa1d44da5f28c44282fa
Author(s) (in the same order as the commits):
Sudakshina Das <sudi.das@arm.com>
Subject:
[BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/1d/1dbade7441b9f32d6ba9aa1d44da5f28c44282fa/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=95faa59e>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=95faa59e>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Factor out mi_ui_out instantiation logic
@ 2019-03-13 17:50 sergiodj+buildbot
2019-03-13 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 17:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8e5e5494f8653dd83ce1413d141e26c09dddab7b ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 8e5e5494f8653dd83ce1413d141e26c09dddab7b
Factor out mi_ui_out instantiation logic
When re-reviewing this [1] I noticed that there were two spots encoding
the logic of instantiating an mi_ui_out object based on the interpreter
name ("mi", "mi1", "mi2" or "mi3"):
- mi_interp::init
- mi_load_progress
Both encode the logic to choose what the default version is when the
interpreter name is "mi". I had forgotten the one in mi_load_progress.
Therefore, I propose extracting that logic to a single function. I
started to add a new overload of mi_out_new, then realized the current
mi_out_new wasn't very useful, being just a thing wrapper around "new
mi_ui_out". So I ended up with just an mi_out_new function taking the
interp name as parameter.
I ran the gdb.mi tests, and verified manually the behavior (including
the load command).
[1] https://sourceware.org/ml/gdb-patches/2019-01/msg00427.html
gdb/ChangeLog:
* mi/mi-out.h (mi_out_new): Change parameter to const char *.
* mi/mi-out.c (mi_out_new): Change parameter to const char *,
instantiate mi_ui_out based on interpreter name.
* mi/mi-interp.c (mi_interp::init): Use the new mi_out_new.
* mi/mi-main.c (mi_load_progress): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix MI output for multi-location breakpoints
@ 2019-03-13 19:30 sergiodj+buildbot
2019-03-13 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 19:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b4be1b0648608a2578bbed39841c8ee411773edd ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: b4be1b0648608a2578bbed39841c8ee411773edd
Fix MI output for multi-location breakpoints
New in v2:
- Addressed comments about doc, updated the MI version table
- New doc for the Breakpoint information format
- New -fix-multi-location-breakpoint-output command, with associated
doc, test and NEWS updated accordingly
- Fixed the output, the locations list is now actually in the tuple
representing the breakpoint.
Various MI commands or events related to breakpoints output invalid MI
records when printing information about a multi-location breakpoint.
For example:
-break-insert allo
^done,bkpt={...,addr="<MULTIPLE>",...},{number="1.1",...},{number="1.2",...}
The problem is that according to the syntax [1], the top-level elements
are of type "result" and should be of the form "variable=value".
This patch changes the output to wrap the locations in a list:
^done,bkpt={...,addr="<MULTIPLE>",locations=[{number="1.1",...},{number="1.2",...}]}
The events =breakpoint-created, =breakpoint-modified, as well as the
-break-info command also suffer from this (and maybe others I didn't
find).
Since this is a breaking change for MI, we have to deal somehow with
backwards compatibility. The approach taken by this patch is to bump
the MI version, use the new syntax in MI3 while retaining the old syntax
in MI2. Frontends are expected to use a precise MI version (-i=mi2), so
if they do that they should be unaffected.
The patch also adds the command -fix-multi-location-breakpoint-output,
which front ends can use to enable this behavior with MI <= 2.
[1] https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Output-Syntax.html#GDB_002fMI-Output-Syntax
gdb/ChangeLog:
* NEWS: Mention that the new default MI version is 3. Mention
changes to the output of commands and events that deal with
multi-location breakpoints.
* breakpoint.c: Include "mi/mi-out.h".
(print_one_breakpoint): Change output syntax if using MI version
>= 3.
* mi/mi-main.h (mi_cmd_fix_multi_location_breakpoint_output):
New.
(mi_multi_location_breakpoint_output_fixed): New.
* mi/mi-main.c (fix_multi_location_breakpoint_output): New.
(mi_cmd_fix_multi_location_breakpoint_output): New.
(mi_multi_location_breakpoint_output_fixed): New.
* mi/mi-cmds.c (mi_cmds): Register command
-fix-multi-location-breakpoint-output.
* mi/mi-out.c (mi_out_new): Instantiate version 3 when using
interpreter "mi".
gdb/testsuite/ChangeLog:
* mi-breakpoint-location-ena-dis.exp: Rename to ...
* mi-breakpoint-multiple-locations.exp: ... this.
(make_breakpoints_pattern): New proc.
(do_test): Add mi_version parameter, test -break-insert,
-break-info and =breakpoint-created.
gdb/doc/ChangeLog:
* gdb.texinfo (Mode Options): Mention mi3.
(Interpreters): Likewise.
(GDB/MI Development and Front Ends): Add entry for MI 3 in
version table. Document -fix-multi-location-breakpoint-output.
(GDB/MI Breakpoint Information): Document format of breakpoint
location output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change pid_to_str to return std::string
@ 2019-03-13 20:07 sergiodj+buildbot
2019-03-13 20:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 20:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a068643d69ce0f25d5f7cbdaa1d0a3211d72c081 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a068643d69ce0f25d5f7cbdaa1d0a3211d72c081
Change pid_to_str to return std::string
Currently the target pid_to_str method returns a const char *, so many
implementations have a static buffer that they update. This patch
changes these methods to return a std::string instead. I think this
is cleaner and avoids possible gotchas when calling pid_to_str on
different ptids in a single statement. (Though no such calls exist
currently.)
This also updates various helper functions, and the gdbarch pid_to_str
methods.
I also made a best effort to fix all the callers, but I can't build
some of the *-nat.c files.
Tested by the buildbot.
gdb/ChangeLog
2019-03-13 Tom Tromey <tromey@adacore.com>
* i386-gnu-nat.c (i386_gnu_nat_target::fetch_registers)
(i386_gnu_nat_target::store_registers): Update.
* target-debug.h (target_debug_print_std_string): New macro.
* x86-linux-nat.c (x86_linux_nat_target::enable_btrace): Update.
* windows-tdep.c (display_one_tib): Update.
* tui/tui-stack.c (tui_make_status_line): Update.
* top.c (print_inferior_quit_action): Update.
* thread.c (thr_try_catch_cmd): Update.
(add_thread_with_info): Update.
(thread_target_id_str): Update.
(thr_try_catch_cmd): Update.
(thread_command): Update.
(thread_find_command): Update.
* record-btrace.c (record_btrace_target::info_record)
(record_btrace_resume_thread, record_btrace_target::resume)
(record_btrace_cancel_resume, record_btrace_step_thread)
(record_btrace_target::wait, record_btrace_target::wait)
(record_btrace_target::wait, record_btrace_target::stop): Update.
* progspace.c (print_program_space): Update.
* process-stratum-target.c
(process_stratum_target::thread_address_space): Update.
* linux-fork.c (linux_fork_mourn_inferior)
(detach_checkpoint_command, info_checkpoints_command)
(linux_fork_context): Update.
(linux_fork_detach): Update.
(class scoped_switch_fork_info): Update.
(delete_checkpoint_command): Update.
* infrun.c (follow_fork_inferior): Update.
(follow_fork_inferior): Update.
(proceed_after_vfork_done): Update.
(handle_vfork_child_exec_or_exit): Update.
(follow_exec): Update.
(displaced_step_prepare_throw): Update.
(displaced_step_restore): Update.
(start_step_over): Update.
(resume_1): Update.
(clear_proceed_status_thread): Update.
(proceed): Update.
(print_target_wait_results): Update.
(do_target_wait): Update.
(context_switch): Update.
(stop_all_threads): Update.
(restart_threads): Update.
(finish_step_over): Update.
(handle_signal_stop): Update.
(switch_back_to_stepped_thread): Update.
(keep_going_pass_signal): Update.
(print_exited_reason): Update.
(normal_stop): Update.
* inferior.c (inferior_pid_to_str): Change return type.
(print_selected_inferior): Update.
(add_inferior): Update.
(detach_inferior): Update.
* dummy-frame.c (fprint_dummy_frames): Update.
* dcache.c (dcache_info_1): Update.
* btrace.c (btrace_enable, btrace_disable, btrace_teardown)
(btrace_fetch, btrace_clear): Update.
* linux-tdep.c (linux_core_pid_to_str): Change return type.
* i386-cygwin-tdep.c (i386_windows_core_pid_to_str): Change return
type.
* fbsd-tdep.c (fbsd_core_pid_to_str): Change return type.
* sol2-tdep.h (sol2_core_pid_to_str): Change return type.
* sol2-tdep.c (sol2_core_pid_to_str): Change return type.
* gdbarch.c, gdbarch.h: Rebuild.
* gdbarch.sh (core_pid_to_str): Change return type.
* windows-nat.c (struct windows_nat_target) <pid_to_str>: Change
return type.
(windows_nat_target::pid_to_str): Change return type.
(windows_delete_thread): Update.
(windows_nat_target::attach): Update.
(windows_nat_target::files_info): Update.
* target-delegates.c: Rebuild.
* sol-thread.c (class sol_thread_target) <pid_to_str>: Change
return type.
(sol_thread_target::pid_to_str): Change return type.
* remote.c (class remote_target) <pid_to_str>: Change return
type.
(remote_target::pid_to_str): Change return type.
(extended_remote_target::attach, remote_target::remote_stop_ns)
(remote_target::remote_notif_remove_queued_reply)
(remote_target::push_stop_reply, remote_target::disable_btrace):
Update.
(extended_remote_target::attach): Update.
* remote-sim.c (struct gdbsim_target) <pid_to_str>: Change return
type.
(gdbsim_target::pid_to_str): Change return type.
* ravenscar-thread.c (struct ravenscar_thread_target)
<pid_to_str>: Change return type.
(ravenscar_thread_target::pid_to_str): Change return type.
* procfs.c (class procfs_target) <pid_to_str>: Change return
type.
(procfs_target::pid_to_str): Change return type.
(procfs_target::attach): Update.
(procfs_target::detach): Update.
(procfs_target::fetch_registers): Update.
(procfs_target::store_registers): Update.
(procfs_target::wait): Update.
(procfs_target::files_info): Update.
* obsd-nat.c (obsd_nat_target::pid_to_str): Change return type.
* nto-procfs.c (struct nto_procfs_target) <pid_to_str>: Change
return type.
(nto_procfs_target::pid_to_str): Change return type.
(nto_procfs_target::files_info, nto_procfs_target::attach): Update.
* linux-thread-db.c (class thread_db_target) <pid_to_str>: Change
return type.
* linux-nat.c (linux_nat_target::pid_to_str): Change return type.
(exit_lwp): Update.
(attach_proc_task_lwp_callback, get_detach_signal)
(detach_one_lwp, resume_lwp, linux_nat_target::resume)
(linux_nat_target::resume, wait_lwp, stop_callback)
(maybe_clear_ignore_sigint, stop_wait_callback, status_callback)
(save_stop_reason, select_event_lwp, linux_nat_filter_event)
(linux_nat_wait_1, resume_stopped_resumed_lwps)
(linux_nat_target::wait, linux_nat_stop_lwp): Update.
* inf-ptrace.c (inf_ptrace_target::pid_to_str): Change return
type.
(inf_ptrace_target::attach): Update.
(inf_ptrace_target::files_info): Update.
* go32-nat.c (struct go32_nat_target) <pid_to_str>: Change return
type.
(go32_nat_target::pid_to_str): Change return type.
* gnu-nat.c (gnu_nat_target::pid_to_str): Change return type.
(gnu_nat_target::wait): Update.
(gnu_nat_target::wait): Update.
(gnu_nat_target::resume): Update.
* fbsd-nat.c (fbsd_nat_target::pid_to_str): Change return type.
(fbsd_nat_target::wait): Update.
* darwin-nat.c (darwin_nat_target::pid_to_str): Change return
type.
(darwin_nat_target::attach): Update.
* corelow.c (class core_target) <pid_to_str>: Change return type.
(core_target::pid_to_str): Change return type.
* target.c (normal_pid_to_str): Change return type.
(default_pid_to_str): Likewise.
(target_pid_to_str): Change return type.
(target_translate_tls_address): Update.
(target_announce_detach): Update.
* bsd-uthread.c (struct bsd_uthread_target) <pid_to_str>: Change
return type.
(bsd_uthread_target::pid_to_str): Change return type.
* bsd-kvm.c (class bsd_kvm_target) <pid_to_str>: Change return
type.
(bsd_kvm_target::pid_to_str): Change return type.
* aix-thread.c (class aix_thread_target) <pid_to_str>: Change
return type.
(aix_thread_target::pid_to_str): Change return type.
* target.h (struct target_ops) <pid_to_str>: Change return type.
(target_pid_to_str, normal_pid_to_str): Likewise.
* obsd-nat.h (class obsd_nat_target) <pid_to_str>: Change return
type.
* linux-nat.h (class linux_nat_target) <pid_to_str>: Change return
type.
* inf-ptrace.h (struct inf_ptrace_target) <pid_to_str>: Change
return type.
* gnu-nat.h (struct gnu_nat_target) <pid_to_str>: Change return
type.
* fbsd-nat.h (class fbsd_nat_target) <pid_to_str>: Change return
type.
* darwin-nat.h (class darwin_nat_target) <pid_to_str>: Change
return type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make TUI react to "set style enabled"
@ 2019-03-14 12:02 sergiodj+buildbot
2019-03-14 12:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 12:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6f11e6824e15bd40fe1e7b245a22865c6ef8c7bd ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 6f11e6824e15bd40fe1e7b245a22865c6ef8c7bd
Make TUI react to "set style enabled"
When the user toggles "set style enabled", the TUI should react by
redrawing the source window, if necessary. This patch implements this
behavior.
No test because the TUI is generally not tested.
This version of the patch incorporates Pedro's patch to provide a
clean way to force the TUI to update the source window's contents.
gdb/ChangeLog
2019-03-14 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@adacore.com>
* tui/tui-winsource.h (tui_refill_source_window): Declare.
* tui/tui-winsource.c (tui_refill_source_window): New function,
from...
(tui_horizontal_source_scroll): ... here. Move some logic.
* cli/cli-style.c (set_style_enabled): Notify new observable.
* tui/tui-hooks.c (tui_redisplay_source): New function.
(tui_attach_detach_observers): Attach or detach
tui_redisplay_source.
* observable.h (source_styling_changed): New observable.
* observable.c: Define source_styling_changed observable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add the "set style source" command
@ 2019-03-14 12:15 sergiodj+buildbot
2019-03-14 12:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 12:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d085f98901ccd6c9764b93d3983f3c7797addc4f ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d085f98901ccd6c9764b93d3983f3c7797addc4f
Add the "set style source" command
This adds "set style source" (and "show style source") commands. This
gives the user control over whether source code is highlighted.
gdb/ChangeLog
2019-03-14 Tom Tromey <tromey@adacore.com>
* NEWS: Add item for "style sources" commands.
* source-cache.c (source_cache::get_source_lines): Check
source_styling.
* cli/cli-style.c (source_styling): New global.
(_initialize_cli_style): Add "style sources" commands.
(show_style_sources): New function.
* cli/cli-style.h (source_styling): Declare.
gdb/doc/ChangeLog
2019-03-14 Tom Tromey <tromey@adacore.com>
* gdb.texinfo (Output Styling): Document "set style source" and
"show style source".
gdb/testsuite/ChangeLog
2019-03-14 Tom Tromey <tromey@adacore.com>
* gdb.base/style.exp: Add "set style sources" test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Avoid a crash in source_cache::extract_lines
@ 2019-03-14 12:28 sergiodj+buildbot
2019-03-14 12:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 12:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3b336828de914a39741339b5341b88aa003d7225 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 3b336828de914a39741339b5341b88aa003d7225
Avoid a crash in source_cache::extract_lines
If the first requested line is larger than the number of lines in the
source buffer, source_cache::extract_lines could crash, because it
would try to pass string::npos" to string::substr.
This patch avoids the crash by checking for this case.
This version of the patch changes get_source_lines to return
std::string.
gdb/ChangeLog
2019-03-14 Tom Tromey <tromey@adacore.com>
* source-cache.h (class source_cache) <get_source_lines>: Return
std::string.
* source-cache.c (source_cache::extract_lines): Handle case where
first_pos==npos. Return std::string.
(source_cache::get_source_lines): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix illegal memory access parsing a corrupt ELF file.
@ 2019-03-14 15:01 sergiodj+buildbot
2019-03-14 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 15:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT be22c732bf873e0c7e8a08564c97cafdfcf153bb ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: be22c732bf873e0c7e8a08564c97cafdfcf153bb
Fix illegal memory access parsing a corrupt ELF file.
PR 24332
* elflink.c (elf_link_add_object_symbols): Add new local variable
extversym_end. Initialise it to point to the end of the version
symbol table, if present. Check it when initialising and updating
the ever pointer.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix colors in TUI mode in MS-Windows build with ncurses
@ 2019-03-14 16:03 sergiodj+buildbot
2019-03-14 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 16:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3fff2c370cd658877be8107bfe9dde8dd0470b46 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 3fff2c370cd658877be8107bfe9dde8dd0470b46
Fix colors in TUI mode in MS-Windows build with ncurses
The MS-Windows port of ncurses fails to switch to a color pair if
one or both of the colors are the implicit default colors. This
change records the default colors when TUI is initialized, and
then specifies them explicitly when a color pair uses the default
colors. This allows color styling in TUI mode on MS-Windows.
gdb/ChangeLog:
2019-03-14 Eli Zaretskii <eliz@gnu.org>
* tui/tui-io.c [__MINGW32__]: Include windows.h. Declare
ncurses_norm_attr.
(tui_initialize_io) [__MINGW32__]: Record the default terminal
colors in ncurses_norm_attr.
(apply_ansi_escape) [__MINGW32__]: If a color in a color pair is
"none", replace it with the default color recorded in
ncurses_norm_attr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix an illegal memory access when parsing a corrupt ELF file.
@ 2019-03-14 16:19 sergiodj+buildbot
2019-03-14 16:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 16:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6cc71b820cc70b63711e9d7f584550b56e172b0a ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 6cc71b820cc70b63711e9d7f584550b56e172b0a
Fix an illegal memory access when parsing a corrupt ELF file.
PR 24333
* elflink.c (_bfd_elf_add_default_symbol): Add a check for a NULL
section owner pointer when adding the default symbol.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Re-indent elf_x86_64_relocate_section
@ 2019-03-15 7:19 sergiodj+buildbot
2019-03-15 7:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 7:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT da0d12d2bd46730ad8327b9fac1371182996017c ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: da0d12d2bd46730ad8327b9fac1371182996017c
Re-indent elf_x86_64_relocate_section
* elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86-64: Check for corrupt input with bad relocation
@ 2019-03-15 8:02 sergiodj+buildbot
2019-03-15 8:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 8:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 418d4036ee37807b97b8040ebe7e2c15e9db726d ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 418d4036ee37807b97b8040ebe7e2c15e9db726d
x86-64: Check for corrupt input with bad relocation
PR ld/24338
* elf64-x86-64.c (elf_x86_64_relocate_section): Check for corrupt
input with bad relocation.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym
@ 2019-03-15 10:22 sergiodj+buildbot
2019-03-15 10:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1ff31e135f04b2773e10d3e5072776c1072edbfb ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 1ff31e135f04b2773e10d3e5072776c1072edbfb
PR24337, segfault in _bfd_elf_rela_local_sym
PR 24337
* elf.c (_bfd_elf_rela_local_sym): Don't segfault on NULL sec.
(_bfd_elf_rel_local_sym): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24339, segfault on NULL symbol section
@ 2019-03-15 10:35 sergiodj+buildbot
2019-03-15 10:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fe3fef62ad11115fc3b03c0c0dcb9c38b2f544cb ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: fe3fef62ad11115fc3b03c0c0dcb9c38b2f544cb
PR24339, segfault on NULL symbol section
PR 24339
* elflink.c (elf_link_add_object_symbols): Bail out on a local
symbol after globals if elf_bad_symtab is not set.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use bitset for demangled_hash_languages
@ 2019-03-15 22:36 sergiodj+buildbot
2019-03-15 22:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1b7a07cba0aa096c2eb66895ef339aa5143e9995 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1b7a07cba0aa096c2eb66895ef339aa5143e9995
Use bitset for demangled_hash_languages
I noticed that objfile_per_bfd_storage::demangled_hash_languages is a
std::vector, which seemed quite large for something that,
fundamentally, can be represented as a bitset. This patch
reimplements it as a std::bitset.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* objfiles.h (struct objfile_per_bfd_storage)
<demangled_hash_languages>: Now a bitset.
* minsyms.c (add_minsym_to_demangled_hash_table): Update.
(lookup_minimal_symbol): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader
@ 2019-03-15 22:51 sergiodj+buildbot
2019-03-15 22:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 788c80d1aff685e66b8105ddc7451cfa6a03bf1d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 788c80d1aff685e66b8105ddc7451cfa6a03bf1d
Remove some unneeded initializations in minimal_symbol_reader
minimal_symbol_reader::record_full does not need to initialize any
minsym fields to 0, because that was already done implicitly via the
use of XCNEW when allocating the msym_bunch.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* minsyms.c (minimal_symbol_reader::record_full): Remove some
initializations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove minsym termination
@ 2019-03-15 23:04 sergiodj+buildbot
2019-03-15 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 23:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 741d7538b7540fea1086fe6ab962227d2cf7418e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 741d7538b7540fea1086fe6ab962227d2cf7418e
Remove minsym termination
I was curious what used the terminating "null" minimal symbol; and
after looking I could not find anything. This patch removes
terminate_minimal_symbol_table and the extra minimal symbol that is
allocated for it.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* symfile.c (reread_symbols): Update.
* objfiles.c (objfile::objfile): Update.
* minsyms.h (terminate_minimal_symbol_table): Don't declare.
* minsyms.c (lookup_minimal_symbol_by_pc_section): Update
comment.
(minimal_symbol_reader::install): Update.
(terminate_minimal_symbol_table): Remove.
* jit.c (jit_object_close_impl): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use htab_up for demangled hash
@ 2019-03-16 0:25 sergiodj+buildbot
2019-03-16 0:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 0:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT db92718b541158d4782dbc9f48401c20f2bbad6d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: db92718b541158d4782dbc9f48401c20f2bbad6d
Use htab_up for demangled hash
This changes objfile_per_bfd_storage::demangled_names_hash to be an
htab_up. This lets us remove some manual management code from the
objfile_per_bfd_storage destructor.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* symtab.c (create_demangled_names_hash): Update.
(symbol_set_names): Update.
* objfiles.h (struct objfile_per_bfd_storage)
<demangled_names_hash>: Now an htab_up.
* objfiles.c (objfile_per_bfd_storage): Simplify.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Allocate minimal symbols with malloc
@ 2019-03-16 0:38 sergiodj+buildbot
2019-03-16 0:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 0:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 042d75e42c5572f333e0e06dabd3c5c4afab486c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 042d75e42c5572f333e0e06dabd3c5c4afab486c
Allocate minimal symbols with malloc
Currently, minimal symbols are allocated on the per-BFD obstack.
However, it is also possible for multiple symbol readers to create
minimal symbols for a given objfile. In this case, the minimal
symbols will be reallocated on the obstack, leading to some waste of
storage.
This is a memory leak, but I think it won't be caught by tools like
valgrind, because valgrind doesn't know about obstacks.
This patch fixes the problem by using malloc to allocate the storage
for minimal symbols.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* objfiles.h (struct objfile_per_bfd_storage) <msymbols>: Now a
unique_xmalloc_ptr.
(objfile::msymbols_range::begin, objfile::msymbols_range::end):
Update.
* minsyms.c (lookup_minimal_symbol_by_pc_section)
(build_minimal_symbol_hash_tables)
(minimal_symbol_reader::install): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use memcpy in minimal_symbol_reader::install
@ 2019-03-16 0:52 sergiodj+buildbot
2019-03-16 0:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 0:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0de2420c4b023e644f91a409803fedfb235bfc0b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0de2420c4b023e644f91a409803fedfb235bfc0b
Use memcpy in minimal_symbol_reader::install
minimal_symbol_reader::install copies minsyms from the msym_bunch
objects into the allocated memory. It seemed better to me to do this
via memcpy, as that is frequently optimized in libc.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* minsyms.c (minimal_symbol_reader::install): Use memcpy.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change minimal_symbol inheritance
@ 2019-03-16 1:07 sergiodj+buildbot
2019-03-16 1:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 1:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eefba3da27c23db67cc0e1707fcedd96f1c0860d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eefba3da27c23db67cc0e1707fcedd96f1c0860d
Change minimal_symbol inheritance
This changes struct minimal_symbol to inherit from general_symbol_info
and updates various macros to cope.
Because MSYMBOL_SET_LANGUAGE and MSYMBOL_SET_NAMES were only used from
a single spot, this patch removes them in favor of simply inlining
their definitions. I consider this to be somewhat cleaner, not least
because the "phony polymorphism" provided by such macros is not useful
in practice.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* symtab.h (struct minimal_symbol): Derive from
general_symbol_info.
(MSYMBOL_VALUE, MSYMBOL_VALUE_RAW_ADDRESS)
(MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
(MSYMBOL_LINKAGE_NAME, MSYMBOL_DEMANGLED_NAME)
(MSYMBOL_SEARCH_NAME): Update.
(MSYMBOL_SET_LANGUAGE, MSYMBOL_SET_NAMES): Remove.
* solib.c (gdb_bfd_lookup_symbol_from_symtab): Don't use memset.
* minsyms.c (minimal_symbol_reader::record_full): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym, again
@ 2019-03-16 4:16 sergiodj+buildbot
2019-03-16 4:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 4:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6835821be8bab8702e41e6946a7d8ee9441f0eee ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 6835821be8bab8702e41e6946a7d8ee9441f0eee
PR24337, segfault in _bfd_elf_rela_local_sym, again
Reverts commit 1ff31e135f, fixing the problem more generally. There
are likely other place that will segfault on a NULL section.
PR 24337
* elf.c (_bfd_elf_rela_local_sym): Revert last change.
(_bfd_elf_rel_local_sym): Likewise.
* elflink.c (elf_link_input_bfd): Use bfd_und_section for
section of symbols with unrecognized shndx.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert "Use wclrtoeol in tui_show_source_line"
@ 2019-03-16 12:31 sergiodj+buildbot
2019-03-16 12:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 12:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 798e1c302af509c31839c5c3b50c058b61206ee7 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 798e1c302af509c31839c5c3b50c058b61206ee7
Revert "Use wclrtoeol in tui_show_source_line"
gdb/ChangeLog:
2019-03-16 Eli Zaretskii <eliz@gnu.org>
* tui/tui-winsource.c (tui_show_source_line): Revert "Use
wclrtoeol in tui_show_source_line". This reverts changes made in
commit 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] OBVIOUS: fix several occurrences of 'This options has' to 'This option has'
@ 2019-03-16 16:14 sergiodj+buildbot
2019-03-16 16:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 16:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8d8c087f34beaa271c3f8d5597d92bce4e9c7f4a ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 8d8c087f34beaa271c3f8d5597d92bce4e9c7f4a
OBVIOUS: fix several occurrences of 'This options has' to 'This option has'
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix vertical scrolling of TUI source window
@ 2019-03-16 18:13 sergiodj+buildbot
2019-03-16 18:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 18:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8
Fix vertical scrolling of TUI source window
gdb/ChangeLog:
2019-03-16 Eli Zaretskii <eliz@gnu.org>
* source-cache.c (source_cache::get_source_lines): Call
find_source_lines to initialize s->nlines. This fixes vertical
scrolling of TUI source window when the DOWN arrow is pressed.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix wrong format specification in display_selector()
@ 2019-03-17 18:58 sergiodj+buildbot
2019-03-17 18:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-17 18:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fce4c071610c0d01b70b172ee538e831023c1c2f ***
Author: <vilgeforce@gmail.com>
Branch: master
Commit: fce4c071610c0d01b70b172ee538e831023c1c2f
Fix wrong format specification in display_selector()
There are a wrong format strings in function display_selector() in
file windows-nat.c. This leads to build error using Cygwin on Windows.
LDT_ENTRY.HighWord is a DWORD, which is unsigned long int, so the
format specification should be for long int, not simply int.
gdb/ChangeLog:
2019-03-17 Vladimir Martyanov <vilgeforce@gmail.com>
PR gdb/24351
* windows-nat.c (display_selector): Format specifications fixed
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Optimize EVEX vector load/store instructions
@ 2019-03-18 1:15 sergiodj+buildbot
2019-03-18 1:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 1:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 97ed31ae00ea83410f9daf61ece8a606044af365 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 97ed31ae00ea83410f9daf61ece8a606044af365
x86: Optimize EVEX vector load/store instructions
When there is no write mask, we can encode lower 16 128-bit/256-bit
EVEX vector register load and store instructions as VEX vector register
load and store instructions with -O1.
gas/
PR gas/24348
* config/tc-i386.c (optimize_encoding): Encode 128-bit and
256-bit EVEX vector register load/store instructions as VEX
vector register load/store instructions for -O1.
* doc/c-i386.texi: Update -O1 documentation.
* testsuite/gas/i386/i386.exp: Run PR gas/24348 tests.
* testsuite/gas/i386/optimize-1.s: Add tests for EVEX vector
load/store instructions.
* testsuite/gas/i386/optimize-2.s: Likewise.
* testsuite/gas/i386/optimize-3.s: Likewise.
* testsuite/gas/i386/optimize-5.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-2.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-3.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-4.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-5.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-6.s: Likewise.
* testsuite/gas/i386/optimize-1.d: Updated.
* testsuite/gas/i386/optimize-2.d: Likewise.
* testsuite/gas/i386/optimize-3.d: Likewise.
* testsuite/gas/i386/optimize-4.d: Likewise.
* testsuite/gas/i386/optimize-5.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-2.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-3.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-4.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-5.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-6.d: Likewise.
* testsuite/gas/i386/optimize-7.d: New file.
* testsuite/gas/i386/optimize-7.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-8.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-8.s: Likewise.
opcodes/
PR gas/24348
* i386-opc.tbl: Add Optimize to vmovdqa32, vmovdqa64, vmovdqu8,
vmovdqu16, vmovdqu32 and vmovdqu64.
* i386-tbl.h: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests
@ 2019-03-18 4:18 sergiodj+buildbot
2019-03-18 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 4:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 58785d9888c699770154ef1d42fcea7598e8d704 ***
Author: Sergei Trofimovich <siarheit@google.com>
Branch: master
Commit: 58785d9888c699770154ef1d42fcea7598e8d704
gdb: unconditionally define _initialize_string_view_selftests
The build failure was noticed by Helmut Jarausch in
https://bugs.gentoo.org/680232:
$ ./configure CXXFLAGS='-std=c++17 -Os'
...
CXXLD gdb
ld: init.o: in function `initialize_all_files()':
init.c:(.text+0x113): undefined reference to `_initialize_string_view_selftests()'
It happens because '_initialize_string_view_selftests()' is
conditionally defined based on C++ default.
The change defines '_initialize_string_view_selftests()'
unconditionally and leaves implementation a no-op on c++17
compilers.
gdb/ChangeLog:
2019-03-17 Sergei Trofimovich <siarheit@google.com>
* unittests/string_view-selftests.c: Define
_initialize_string_view_selftests unconditionally.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24355, segmentation fault in function called from ppc_finish_symbols
@ 2019-03-18 12:30 sergiodj+buildbot
2019-03-18 12:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 12:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8cd1fe1bf525b59f4d07e5790d11d49eee7e8494 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 8cd1fe1bf525b59f4d07e5790d11d49eee7e8494
PR24355, segmentation fault in function called from ppc_finish_symbols
This one looks to be a bug going back to 2009, git commit e054468f6c
"STT_GNU_IFUNC support for PowerPC". That bug was carried over with
git commit 49c09209d0 "Rearrange PLT reloc output on powerpc".
If the refcount for an ifunc local sym plt entry was zero,
ppc_elf_size_dynamic_sections would correctly set plt.offset to -1 but
leave glink_offset uninitialized. That leads to occasional segfaults
(which can be made solid with MALLOC_PERTURB_=1 when using glibc).
So, guard the write_glink_stub call with plt.offset != -1. Also,
remove the totally ineffective attempt at writing multiple-use glink
stubs only once.
PR 24355
* elf32-ppc.c (ppc_finish_symbols): Don't call write_glink_stub
for local iplt syms with ent->plt.offset == -1. Remove ineffective
attempt at writing glink stubs only once.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix scrolling right in the TUI
@ 2019-03-18 14:44 sergiodj+buildbot
2019-03-18 14:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 14:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 647bb750c298bbee618aa4448a30dcf9adf23602 ***
Author: Hannes Domani <ssbssa@yahoo.de>
Branch: master
Commit: 647bb750c298bbee618aa4448a30dcf9adf23602
Fix scrolling right in the TUI
This commit fixes two issues in scrolling right in the TUI:
#1 - Scrolling right with the arrow keys, the first keypress doesn't
do anything. The problem is that copy_source_line() checks if
(column < first_col), and because of the ++column directly before, it
basically starts with 1 instead of 0.
#2 - Scrolling right handles TABS and escaped characters as single
characters, which just looks weird. The problem is that there's a
spot that misses handling TABS.
gdb/ChangeLog:
2019-03-18 Hannes Domani <ssbssa@yahoo.de>
* tui/tui-source.c (copy_source_line): Fix handling of 'column'.
Handle tabs.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Improve/fix the TUI's current source line highlight
@ 2019-03-18 14:57 sergiodj+buildbot
2019-03-18 14:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 14:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 55c10aca2e93cc7a4301aa1635ef9d6d73a804b1 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 55c10aca2e93cc7a4301aa1635ef9d6d73a804b1
Improve/fix the TUI's current source line highlight
With styling enabled, I think the way we display the TUI's
highlighted/current line is very ugly and distracting. The problem in
my view is that we reverse foreground/background in colored text as
well, leading to rainbow of background colors.
This patch changes that to something that I find much more sensible --
only reverse the default foreground/background colors, leave styled
text colors alone. If the foreground color is not the default
(because the text was styled), leave the foreground color as is. If
e.g., the terminal is fg=BLACK, and bg=WHITE, and the style wants to
print text in RED, reverse the background color (print in BLACK), but
still print the text in RED.
Note: The new ui_file_style::set_fg method isn't called set_foreground
instead, because set_foreground is a macro in /usr/lib/term.h (ncurses).
gdb/ChangeLog:
2019-03-18 Pedro Alves <palves@redhat.com>
* tui/tui-io.c (reverse_mode_p, reverse_save_bg, reverse_save_fg):
New globals.
(apply_style): New, factored out from ...
(apply_ansi_escape): ... this. Handle reverse video mode.
(tui_set_reverse_mode): New function.
* tui/tui-io.h (tui_set_reverse_mode): New declaration.
* tui/tui-winsource.c (tui_show_source_line): Use
tui_set_reverse_mode instead of setting A_STANDOUT.
* ui-style.h (struct ui_file_style) <set_reverse, set_fg, set_bg>:
New setter methods.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb/TUI behavior in response to [Enter] keypress
@ 2019-03-18 18:23 sergiodj+buildbot
2019-03-18 18:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 18:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b17c4cd078e2d1d8951951016815e474fb133780 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: b17c4cd078e2d1d8951951016815e474fb133780
Fix gdb/TUI behavior in response to [Enter] keypress
gdb/ChangeLog:
2019-03-18 Eli Zaretskii <eliz@gnu.org>
* tui/tui-io.c (gdb_wgetch): Don't echo CR.
(tui_getc): When gdb_wgetch returns a CR, behave the same as when
it returns a newline. This fixes a regression in TUI mode, whereby
the next line is output on the same screen line as the user input.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix first time you type UP or DOWN in TUI's command window
@ 2019-03-18 19:14 sergiodj+buildbot
2019-03-18 19:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 19:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5371b8502ab414aea510f65ce1acb9f090bf0340 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5371b8502ab414aea510f65ce1acb9f090bf0340
Fix first time you type UP or DOWN in TUI's command window
The first time you type UP or DOWN arrow in the command window, GDB
should scroll the source window, but instead it displays the line
number and the file name in the command window(?).
What happens there is that the first time we call
tui_ui_out::do_field_int, it doesn't initialize m_line, because
m_start_of_line is -1, as set by the constructor; and then the
following call to tui_ui_out::do_field_string falls back to
cli_ui_out::do_field_string because m_line is zero.
The problem is caused by a typo in the C++ification of tui_ui_out,
commit 112e8700a6f, where m_line and m_start_of_line's initial values
were swapped from what they used to be:
-struct ui_out *
-tui_out_new (struct ui_file *stream)
+tui_ui_out::tui_ui_out (ui_file *stream)
+: cli_ui_out (stream, 0),
+ m_line (0),
+ m_start_of_line (-1)
{
-
- /* Initialize our fields. */
- data->line = -1;
- data->start_of_line = 0;
This commit fixes it.
gdb/ChangeLog:
2019-03-18 Pedro Alves <palves@redhat.com>
Eli Zaretskii <eliz@gnu.org>
* tui/tui-out.c (tui_ui_out::tui_ui_out): Fix initialization of
m_line and m_start_of_line.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix Arm build error
@ 2019-03-19 10:16 sergiodj+buildbot
2019-03-19 10:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 10:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a0e45b2f187dae8cba444e9b31f05cee0e2d6ae ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 3a0e45b2f187dae8cba444e9b31f05cee0e2d6ae
Fix Arm build error
The following commit broke the build for Arm:
d3a70e03cf51c8fb6bc183eaff7559edffec2045
Change iterate_over_lwps to take a gdb::function_view
Correct the changes made to arm_linux_insert_hw_breakpoint1 and make
similar changes to arm_linux_remove_hw_breakpoint1.
2019-03-18 Alan Hayward <alan.hayward@arm.com>
* arm-linux-nat.c (arm_linux_insert_hw_breakpoint1): Fix
variable names.
(arm_linux_remove_hw_breakpoint1): Use a gdb::function_view.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] ix86: Disable AVX512F when disabling AVX2
@ 2019-03-19 13:27 sergiodj+buildbot
2019-03-19 13:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 13:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89199bb5a027d21c56dafd2cd898487118949ecf ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 89199bb5a027d21c56dafd2cd898487118949ecf
ix86: Disable AVX512F when disabling AVX2
Since AVX2 is required for AVX512F, we should disable AVX512F when AVX2
is disabled.
gas/
PR gas/24359
* testsuite/gas/i386/i386.exp: Change optimize-6a, optimize-7,
x86-64-optimize-7a and x86-64-optimize-8 tests to run_list_test.
Remove optimize-6c and x86-64-optimize-7c tests.
* testsuite/gas/i386/noavx-3.l: Updated.
* testsuite/gas/i386/noavx-4.d: Likewise.
* testsuite/gas/i386/noavx-5.d: Likewise.
* testsuite/gas/i386/noavx-3.s: Add AVX512F tests.
* testsuite/gas/i386/noavx-4.s: Remove AVX512F tests.
* testsuite/gas/i386/nosse-5.s: Likewise.
* testsuite/gas/i386/optimize-6a.d: Removed.
* testsuite/gas/i386/optimize-6c.d: Likewise.
* testsuite/gas/i386/optimize-7.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-7a.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-7c.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-8.d: Likewise.
* testsuite/gas/i386/optimize-6a.l: New file.
* testsuite/gas/i386/optimize-6a.s: Likewise.
* testsuite/gas/i386/optimize-7.l: Likewise.
* testsuite/gas/i386/x86-64-optimize-7a.l: Likewise.
* testsuite/gas/i386/x86-64-optimize-7a.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-8.l: Likewise.
opcodes/
PR gas/24359
* i386-gen.c (cpu_flag_init): Add CPU_ANY_AVX512F_FLAGS to
CPU_ANY_AVX2_FLAGS.
* i386-init.h: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add comments describing tui_ui_out and its fields, cleanup a bit
@ 2019-03-19 18:24 sergiodj+buildbot
2019-03-19 18:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 18:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cb24623460fe3e68794b79b79b0dbd5e62598d85 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: cb24623460fe3e68794b79b79b0dbd5e62598d85
Add comments describing tui_ui_out and its fields, cleanup a bit
This commit add comments describing tui_ui_out and its fields, and
cleans up the code a little bit.
Also switch to using in-class initialization so that the initial
values can be seen alongside the comments.
I see no reason for initializing m_line as -1 instead of 0, since all
the checks in the .c file are of the form "> 0". AFAICS there's no
practical difference between -1 and 0. So it seems simpler to
initialize it as 0.
There's a bit of redundancy in tui_ui_out::do_field_string, which is
fixed by this commit.
gdb/ChangeLog:
2019-03-19 Pedro Alves <palves@redhat.com>
* tui/tui-out.c (tui_ui_out::do_field_string): Simplify.
(tui_ui_out::do_text): Add comments. Reset M_LINE to 0 instead of
to -1. Fix TABs vs spaces.
(tui_ui_out::tui_ui_out): Don't initialize fields here.
* tui/tui-out.h (tui_ui_out) Add intro comments.
<m_line, m_start_of_line>: In-class initialize, and add describing
comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't show "display"s twice in MI
@ 2019-03-19 18:38 sergiodj+buildbot
2019-03-19 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-19 18:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4c7d57e72e0340931ab01db2247bdce3c2fcadb7 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4c7d57e72e0340931ab01db2247bdce3c2fcadb7
Don't show "display"s twice in MI
If you run "gdb -i=mi2" and set a "display", then when "next"ing the
displays will be shown twice:
~"1: x = 23\n"
~"7\t printf(\"%d\\n\", x);\n"
~"1: x = 23\n"
*stopped,reason="end-stepping-range",frame={addr="0x0000000000400565",func="main",args=[],file="q.c",fullname="/tmp/q.c",line="7"},thread-id="1",stopped-threads="all",core="1"
The immediate cause of this is this code in mi_on_normal_stop_1:
print_stop_event (mi_uiout);
console_interp = interp_lookup (current_ui, INTERP_CONSOLE);
if (should_print_stop_to_console (console_interp, tp))
print_stop_event (mi->cli_uiout);
... which obviously prints the stop twice.
However, I think the first call to print_stop_event is intended just
to emit the MI *stopped notification, which explains why the source
line does not show up two times.
This patch fixes the bug by changing print_stop_event to only call
do_displays for non-MI-like ui-outs.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-03-19 Tom Tromey <tromey@adacore.com>
* mi/mi-interp.c (mi_on_normal_stop_1): Only show displays once.
* infrun.h (print_stop_event): Add "displays" parameter.
* infrun.c (print_stop_event): Add "displays" parameter.
gdb/testsuite/ChangeLog
2019-03-19 Tom Tromey <tromey@adacore.com>
* gdb.mi/mi2-cli-display.c: New file.
* gdb.mi/mi2-cli-display.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BFD, AArch64] Define elf_backend_fixup_gnu_properties in AArch64
@ 2019-03-20 18:17 sergiodj+buildbot
2019-03-20 18:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-20 18:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT acde6c6b431a8c38ab18a47bb56f65f515448195 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: acde6c6b431a8c38ab18a47bb56f65f515448195
[BFD, AArch64] Define elf_backend_fixup_gnu_properties in AArch64
This patch add support for elf_backend_fixup_gnu_properties for GNU
property support for AArch64. The new AArch64 specific definition
_bfd_aarch64_elf_link_fixup_gnu_properties goes through the property
list to find AArch64 type properties and removes the properties that
are marked as "property_remove".
*** bfd/ChangeLog ***
2019-03-20 Sudakshina Das <sudi.das@arm.com>
* elfxx-aarch64.c (_bfd_aarch64_elf_link_fixup_gnu_properties): Define.
* elfxx-aarch64.h (_bfd_aarch64_elf_link_fixup_gnu_properties): Declare.
(elf_backend_fixup_gnu_properties): Define for AArch64.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Fix linker crash in section symbol check.
@ 2019-03-21 22:32 sergiodj+buildbot
2019-03-21 22:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-21 22:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9f5a5517fb7df640f0fcd4cb0f9961818b6505b ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: a9f5a5517fb7df640f0fcd4cb0f9961818b6505b
RISC-V: Fix linker crash in section symbol check.
sym is only set for local symbols. h is only set for global symbols. Gas
won't let me create a global section symbol, but bfd appears to have some
support for that, and I can't rule out that other assemblers might do this.
So we need to support both, and verify sym and h are non-NULL before using.
bfd/
PR 24365
* elfnn-riscv.c (riscv_elf_relocate_section): For STT_SECTION check,
verify sym non-NULL before using. Add identical check using h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Ensure pie is disabled on some tests
@ 2019-03-22 10:00 sergiodj+buildbot
2019-03-22 10:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 10:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 968aa7ae389d9e6cecb5fda6826bf889ed959fce ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 968aa7ae389d9e6cecb5fda6826bf889ed959fce
Testsuite: Ensure pie is disabled on some tests
Recent versions of Ubuntu and Debian default GCC to enable pie.
In dump.exp, pie will causes addresses to be out of range for IHEX.
In break-interp.exp, pie is explicitly set for some tests and assumed
to be disabled for the remainder.
Ensure pie is disabled for these tests when required.
In addition, add a pie option to gdb_compile to match the nopie option
and simplify use.
gdb/testsuite/ChangeLog:
* README: Add pie options.
* gdb.base/break-interp.exp: Ensure pie is disabled.
* gdb.base/dump.exp: Likewise.
* lib/gdb.exp (gdb_compile): Add pie option.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Add pointer authentication feature
@ 2019-03-22 12:22 sergiodj+buildbot
2019-03-22 12:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 12:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6dc0ebde59dfb73eae507ced718bafa54023bf33 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 6dc0ebde59dfb73eae507ced718bafa54023bf33
AArch64: Add pointer authentication feature
Pointer Authentication is a new feature in AArch64 v8.3-a. When enabled in
the compiler, function return addresses will be mangled by the kernel.
Add register description xml and wire up to aarch64_linux_read_description.
This description includes the two pauth user registers.
Nothing yet uses the feature - that is added in later patches.
gdb/ChangeLog:
* aarch64-linux-nat.c
(aarch64_linux_nat_target::read_description): Add pauth param.
* aarch64-linux-tdep.c
(aarch64_linux_core_read_description): Likewise.
* aarch64-tdep.c (struct target_desc): Add in pauth.
(aarch64_read_description): Add pauth param.
(aarch64_gdbarch_init): Likewise.
* aarch64-tdep.h (aarch64_read_description): Likewise.
* arch/aarch64.c (aarch64_create_target_description): Likewise.
* arch/aarch64.h (aarch64_create_target_description): Likewise.
* features/Makefile: Add new files.
* features/aarch64-pauth.c: New file.
* features/aarch64-pauth.xml: New file.
gdb/doc/ChangeLog:
* gdb.texinfo: Describe pauth feature.
gdb/gdbserver/ChangeLog:
* linux-aarch64-ipa.c (get_ipa_tdesc): Add pauth param.
(initialize_low_tracepoint): Likewise.
* linux-aarch64-low.c (aarch64_arch_setup): Likewise.
* linux-aarch64-tdesc-selftest.c (aarch64_tdesc_test): Likewise.
* linux-aarch64-tdesc.c (struct target_desc): Likewise.
(aarch64_linux_read_description): Likewise.
* linux-aarch64-tdesc.h (aarch64_linux_read_description): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Read pauth registers
@ 2019-03-22 12:49 sergiodj+buildbot
2019-03-22 12:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 12:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 76bed0fd9493868889929ca9dcd32350c1d864be ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 76bed0fd9493868889929ca9dcd32350c1d864be
AArch64: Read pauth registers
Initialise the pauth registers when creating a target description, and store
the regnum of the first pauth register.
Use ptrace to read the registers in the pauth feature.
Do not allow the registers to be written.
gdb/ChangeLog:
* aarch64-linux-nat.c (fetch_pauth_masks_from_thread): New
function.
(aarch64_linux_nat_target::fetch_registers): Read pauth registers.
* aarch64-tdep.c (aarch64_cannot_store_register): New function.
(aarch64_gdbarch_init): Add puth registers.
* aarch64-tdep.h (struct gdbarch_tdep): Add pauth features.
* arch/aarch64.h (AARCH64_PAUTH_DMASK_REGNUM): New define.
(AARCH64_PAUTH_CMASK_REGNUM): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Add pauth DWARF registers
@ 2019-03-22 13:17 sergiodj+buildbot
2019-03-22 13:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 34dcc7cf95f756862bdfebb753ab2de39fec4c9e ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 34dcc7cf95f756862bdfebb753ab2de39fec4c9e
AArch64: Add pauth DWARF registers
Map the pauth registers to DWARF.
Add a new pseudo register ra_state and also map this to DWARF. This register
is hidden from the user - prevent it from being read or written to. It will
be used for the unmangling of addresses.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_dwarf_reg_to_regnum): Check for pauth
registers.
(aarch64_pseudo_register_name): Likewise.
(aarch64_pseudo_register_type): Likewise.
(aarch64_pseudo_register_reggroup_p): Likewise.
(aarch64_gdbarch_init): Add pauth registers.
* aarch64-tdep.h (AARCH64_DWARF_PAUTH_RA_STATE): New define.
(AARCH64_DWARF_PAUTH_DMASK): Likewise.
(AARCH64_DWARF_PAUTH_CMASK): Likewise.
(struct gdbarch_tdep): Add regnum for ra_state.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: DWARF unwinder support for signed return addresses
@ 2019-03-22 13:31 sergiodj+buildbot
2019-03-22 13:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 11e1b75f0696f6e406fe8ccc759bac2fbc8fc151 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 11e1b75f0696f6e406fe8ccc759bac2fbc8fc151
AArch64: DWARF unwinder support for signed return addresses
Pauth address signing is enabled at binary compile time. When enabled the
return addresses for functions may be mangled. This patch adds functionality
to restore the original address for use in the DWARF unwinder.
DW_CFA_AARCH64_negate_ra_state in a binary indicates the toggling of address
signing between enabled and disabled. Ensure the state is stored in the DWARF
register ra_state.
Ensure the pauth DWARF registers are initialised.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_frame_unmask_address): New function.
(aarch64_dwarf2_prev_register): Unmask PC value.
(aarch64_dwarf2_frame_init_reg): Init pauth registers.
(aarch64_execute_dwarf_cfa_vendor_op): Check for
DW_CFA_AARCH64_negate_ra_state.
(aarch64_gdbarch_init): Add aarch64_execute_dwarf_cfa_vendor_op.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Prologue scan unwinder support for signed return addresses
@ 2019-03-22 13:48 sergiodj+buildbot
2019-03-22 13:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 13:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 17e116a7d1501a46cf4e45ec181148dc6a1e3e2b ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 17e116a7d1501a46cf4e45ec181148dc6a1e3e2b
AArch64: Prologue scan unwinder support for signed return addresses
Pauth address signing is enabled at binary compile time. When enabled the
return addresses for functions may be mangled. This patch adds functionality
to restore the original address for use in the prologue scan unwinder.
In the prologue analyzer, check for PACIASP/PACIBSP (enable address mangling)
and AUTIASP/AUTIBSP (disable address mangling).
When unwinding the PC from the prologue, unmask the register if required.
Add a test case to the prologue tests.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_analyze_prologue): Check for pauth
instructions.
(aarch64_analyze_prologue_test): Add PACIASP test.
(aarch64_prologue_prev_register): Unmask PC value.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Read pauth section from core files
@ 2019-03-22 14:02 sergiodj+buildbot
2019-03-22 14:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 14:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 59c283728fddad638ae301cfb724d629fffc8665 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 59c283728fddad638ae301cfb724d629fffc8665
AArch64: Read pauth section from core files
gdb/ChangeLog:
* aarch64-linux-tdep.c
(aarch64_linux_iterate_over_regset_sections): Check for pauth
section.
* aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_PAUTH): New define.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use scoped_restore_current_language in two places
@ 2019-03-23 16:58 sergiodj+buildbot
2019-03-23 16:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-23 16:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9bb9b2f9d6d5aa90f579494d8407375a87a9ad0b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9bb9b2f9d6d5aa90f579494d8407375a87a9ad0b
Use scoped_restore_current_language in two places
I found a couple of spots that manually saved and restored the current
language. This patch changes them to use
scoped_restore_current_language.
Tested by the buildbot.
gdb/ChangeLog
2019-03-23 Tom Tromey <tom@tromey.com>
* linespec.c (get_current_search_block): Use
scoped_restore_current_language.
* symmisc.c (dump_symtab): Use scoped_restore_current_language.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Include bcache.h from objfiles.h
@ 2019-03-23 17:15 sergiodj+buildbot
2019-03-23 17:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-23 17:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b366c208ee07924cc3cafc1bd4d70548bc91075b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b366c208ee07924cc3cafc1bd4d70548bc91075b
Include bcache.h from objfiles.h
objfiles.h needs "struct bcache" to be complete, so it should include
bcache.h. This patch implements this.
Tested by rebuilding.
gdb/ChangeLog
2019-03-23 Tom Tromey <tom@tromey.com>
* objfiles.h: Include bcache.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Have parser reset the innermost block tracker
@ 2019-03-23 17:30 sergiodj+buildbot
2019-03-23 17:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-23 17:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7ad417dd217849c164e3c8a250c62a98eb0b8cd4 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7ad417dd217849c164e3c8a250c62a98eb0b8cd4
Have parser reset the innermost block tracker
I ran across a comment in symfile.c today:
/* Clear globals which might have pointed into a removed objfile.
FIXME: It's not clear which of these are supposed to persist
between expressions and which ought to be reset each time. */
It seems to me that this can be clarified: the parser entry points
ought to reset the innermost block tracker (and the expression context
block), and these should not be considered valid for code to use at
arbitrary times -- only immediately after an expression has been
parsed.
This patch implements this idea. This could be further improved by
removing the parser globals and changing the parser functions to
return this information, but I have not done this.
Tested by the buildbot.
gdb/ChangeLog
2019-03-23 Tom Tromey <tom@tromey.com>
* varobj.c (varobj_create): Update.
* symfile.c (clear_symtab_users): Don't reset innermost_block.
* printcmd.c (display_command, do_one_display): Don't reset
innermost_block.
* parser-defs.h (enum innermost_block_tracker_type): Move to
expression.h.
(innermost_block): Update comment.
* parse.c (parse_exp_1): Add tracker_types parameter.
(parse_exp_in_context): Rename from parse_exp_in_context_1. Add
tracker_types parameter. Reset innermost_block.
(parse_exp_in_context): Remove.
(parse_expression_for_completion): Update.
* objfiles.c (~objfile): Don't reset expression_context_block or
innermost_block.
* expression.h (enum innermost_block_tracker_type): Move from
parser-defs.h.
(parse_exp_1): Add tracker_types parameter.
* breakpoint.c (set_breakpoint_condition, watch_command_1): Don't
reset innermost_block.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove null_block_symbol
@ 2019-03-25 6:17 sergiodj+buildbot
2019-03-25 6:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 6:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6640a367bf5427779856e7c80ae4b4bd88c19d3c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6640a367bf5427779856e7c80ae4b4bd88c19d3c
Remove null_block_symbol
This removes null_block_symbol. It seemed simpler to me to change
initializations and returns to use value initialization rather than
null_block_symbol. This also fixes up a few spots where
initialization was done piecemeal.
gdb/ChangeLog
2019-03-24 Tom Tromey <tom@tromey.com>
* ada-lang.c (standard_lookup): Simplify initialization.
(ada_lookup_symbol_nonlocal): Simplify return.
* solib-spu.c (spu_lookup_lib_symbol): Simplify return.
* solib-darwin.c (darwin_lookup_lib_symbol): Simplify return.
* solib-svr4.c (elf_lookup_lib_symbol): Simplify return.
* rust-lang.c (rust_lookup_symbol_nonlocal): Simplify
initialization.
* solib.c (solib_global_lookup): Simplify.
* symtab.c (null_block_symbol): Remove.
(symbol_cache_lookup): Simplify returns.
(lookup_language_this): Simplify returns.
(lookup_symbol_aux): Simplify return.
(lookup_local_symbol): Simplify returns.
(lookup_global_symbol_from_objfile): Simplify return.
(lookup_symbol_in_objfile_symtabs)
(lookup_symbol_in_objfile_from_linkage_name): Simplify return.
(lookup_symbol_via_quick_fns, lookup_symbol_in_static_block)
(lookup_static_symbol, lookup_global_symbol): Simplify return.
* cp-namespace.c (cp_lookup_bare_symbol)
(cp_search_static_and_baseclasses, cp_lookup_symbol_via_imports)
(cp_lookup_symbol_via_all_imports, cp_lookup_nested_symbol_1)
(cp_lookup_nested_symbol): Don't use null_block_symbol.
(cp_lookup_symbol_via_imports): Simplify initialization.
(find_symbol_in_baseclass): Likewise.
* symtab.h (null_block_symbol): Remove.
* d-namespace.c (d_lookup_symbol): Don't use null_block_symbol.
(d_lookup_nested_symbol, d_lookup_symbol_imports)
(d_lookup_symbol_module): Likewise.
(find_symbol_in_baseclass): Simplify initialization.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] More block constification
@ 2019-03-25 6:17 sergiodj+buildbot
2019-03-25 5:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 6:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 582942f4560f1c8d2a60c2557267f9d3ad8dd6aa ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 582942f4560f1c8d2a60c2557267f9d3ad8dd6aa
More block constification
I noticed that there are still many places referring to non-const
blocks. This constifies all the remaining ones that I found that
could be constified.
In a few spots, this search found unused variables or fields. I
removed these. I've also removed some unnecessary casts to
"struct block *".
gdb/ChangeLog
2019-03-24 Tom Tromey <tom@tromey.com>
* c-exp.y (typebase): Remove casts.
* gdbtypes.c (lookup_unsigned_typename, )
(lookup_signed_typename): Remove cast.
* eval.c (parse_to_comma_and_eval): Remove cast.
* parse.c (write_dollar_variable): Remove cast.
* block.h (struct block) <superblock>: Now const.
* symfile-debug.c (debug_qf_map_matching_symbols): Update.
* psymtab.c (psym_map_matching_symbols): Make "block" const.
(map_block): Make "block" const.
* symfile.h (struct quick_symbol_functions)
<map_matching_symbols>: Constify block argument to "callback".
* symtab.c (basic_lookup_transparent_type_quick): Make "block"
const.
(find_pc_sect_compunit_symtab): Make "b" const.
(find_symbol_at_address): Likewise.
(search_symbols): Likewise.
* dwarf2read.c (dw2_lookup_symbol): Make "block" const.
(dw2_debug_names_lookup_symbol): Likewise.
(dw2_map_matching_symbols): Update.
* p-valprint.c (pascal_val_print): Remove "block".
* ada-lang.c (ada_add_global_exceptions): Make "b" const.
(aux_add_nonlocal_symbols): Make "block" const.
(resolve_subexp): Remove cast.
* linespec.c (iterate_over_all_matching_symtabs): Make "block"
const.
(iterate_over_file_blocks): Likewise.
* f-exp.y (%union) <bval>: Remove.
* coffread.c (patch_opaque_types): Make "b" const.
* spu-tdep.c (spu_catch_start): Make "block" const.
* c-valprint.c (print_unpacked_pointer): Remove "block".
* symmisc.c (dump_symtab_1): Make "b" const.
(block_depth): Make "block" const.
* d-exp.y (%union) <bval>: Remove.
* cp-support.h (cp_lookup_rtti_type): Update.
* cp-support.c (cp_lookup_rtti_type): Make "block" const.
* psymtab.c (psym_lookup_symbol): Make "block" const.
(maintenance_check_psymtabs): Make "b" const.
* python/py-framefilter.c (extract_sym): Make "sym_block" const.
(enumerate_locals, enumerate_args): Update.
* python/py-symtab.c (stpy_global_block): Make "block" const.
(stpy_static_block): Likewise.
* inline-frame.c (block_starting_point_at): Make "new_block"
const.
* block.c (find_block_in_blockvector): Make return type const.
(blockvector_for_pc_sect): Make "b" const.
(find_block_in_blockvector): Make "b" const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Fix AArch64 disassembler mapping symbol search
@ 2019-03-25 15:38 sergiodj+buildbot
2019-03-25 15:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 15:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 51457761649bab6868343b3da2258d73a62901f7 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 51457761649bab6868343b3da2258d73a62901f7
AArch64: Fix AArch64 disassembler mapping symbol search
My previous patch for AArch64 was not enough to catch all the cases where
disassembling an out-of-order section could go wrong. It had missed the case
DATA sections could be incorrectly disassembled as TEXT.
Out of order here refers to an object file where sections are not listed in a
monotonic increasing VMA order.
The ELF ABI for AArch64 [1] specifies the following for mapping symbols:
1) A text section must always have a corresponding mapping symbol at it's
start.
2) Data sections do not require any mapping symbols.
3) The range of a mapping symbol extends from the address it starts on up to
the next mapping symbol (exclusive) or section end (inclusive).
However there is no defined order between a symbol and it's corresponding
mapping symbol in the symbol table. This means that while in general we look
up for a corresponding mapping symbol, we have to make at least one check of
the symbol below the address being disassembled.
When disassembling different PCs within the same section, the search for mapping
symbol can be cached somewhat. We know that the mapping symbol corresponding to
the current PC is either the previous one used, or one at the same address as
the current PC.
However this optimization and mapping symbol search must stop as soon as we
reach the end or start of the section. Furthermore if we're only disassembling
a part of a section, the search is a allowed to search further than the current
chunk, but is not allowed to search past it (The mapping symbol if there, must
be at the same address, so in practice we usually stop at PC+4).
lastly, since only data sections don't require a mapping symbol the default
mapping type should be DATA and not INSN as previously defined, however if the
binary has had all its symbols stripped than this isn't very useful. To fix this
we determine the default based on the section flags. This will allow the
disassembler to be more useful on stripped binaries. If there is no section than
we assume you to be disassembling INSN.
[1] https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4#aaelf64-section4-5-4
binutils/ChangeLog:
* testsuite/binutils-all/aarch64/in-order.d: New test.
* testsuite/binutils-all/aarch64/out-of-order.d: Disassemble data as
well.
opcodes/ChangeLog:
* aarch64-dis.c (print_insn_aarch64): Update the mapping symbol search
order.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Have -D override mapping symbol as documented.
@ 2019-03-25 15:52 sergiodj+buildbot
2019-03-25 15:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 15:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60df3720d77c8415158f3eaa166e0b7162f9d3b4 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 60df3720d77c8415158f3eaa166e0b7162f9d3b4
AArch64: Have -D override mapping symbol as documented.
The documentation for -D says that on Arm platforms -D should disassemble
data as instructions.
"If the target is an ARM architecture this switch also has the effect of
forcing the disassembler to decode pieces of data found in code sections
as if they were instructions. "
This makes it do as it says on the tincan so it's more consistent with
aarch32. The usecase here is for baremetal developers who have created
their instructions using .word directives instead if .insn.
Though for Linux users I do find this behavior somewhat non-optimal.
Perhaps there should be a new flag that just disassembles the values
following the actual mapping symbol?
binutils/ChangeLog:
* testsuite/binutils-all/aarch64/in-order-all.d: New test.
* testsuite/binutils-all/aarch64/out-of-order-all.d: New test.
* testsuite/binutils-all/aarch64/out-of-order.d:
opcodes/ChangeLog:
* aarch64-dis.c (print_insn_aarch64):
Implement override.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix s390 build
@ 2019-03-25 17:24 sergiodj+buildbot
2019-03-25 17:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 17:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d45963c2b26369e3b375cf5b3b6f52f50f767ef3 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: d45963c2b26369e3b375cf5b3b6f52f50f767ef3
Fix s390 build
Add missing include.
2019-03-25 Alan Hayward <alan.hayward@arm.com>
* s390-linux-nat.c: Add include.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Clean up some comments in minsyms.c
@ 2019-03-25 20:06 sergiodj+buildbot
2019-03-25 20:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 20:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79e7ae11c71c1682c0d4b707eadc714ec4efc929 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 79e7ae11c71c1682c0d4b707eadc714ec4efc929
Clean up some comments in minsyms.c
Philippe pointed out that some comments in minsyms.c still referred to
obstack allocation. This patch fixes these up.
In most cases here, my view is that the comments were more misleading
than helpful. So, I've generally removed text.
gdb/ChangeLog
2019-03-25 Tom Tromey <tromey@adacore.com>
* minsyms.c (BUNCH_SIZE): Update comment.
(~minimal_symbol_reader): Remove old comment.
(compact_minimal_symbols): Update comment.
(minimal_symbol_reader::install): Remove old comment. Update
other comments.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Note support for TLS variables on FreeBSD.
@ 2019-03-25 20:39 sergiodj+buildbot
2019-03-25 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 20:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 81a24d04dfecdbdd9af143043197317dea1119c7 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 81a24d04dfecdbdd9af143043197317dea1119c7
Note support for TLS variables on FreeBSD.
gdb/ChangeLog:
* NEWS: Mention TLS support for FreeBSD.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix use-after-free in source_cache::get_source_lines
@ 2019-03-26 1:01 sergiodj+buildbot
2019-03-26 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 1:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 068ef30e9e053d0f95464290b0b96cea90ce0572 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 068ef30e9e053d0f95464290b0b96cea90ce0572
Fix use-after-free in source_cache::get_source_lines
Commit ab42892fb7d2 ("Fix vertical scrolling of TUI source window")
introduced a use-after-free in source_cache::get_source_lines.
At the beginning of the method, we get the fullname of the symtab:
const char *fullname = symtab_to_fullname (s);
fullname points to the string owned by the symtab (s.fullname). When we
later do
scoped_fd desc = open_source_file (s);
s.fullname gets reallocated (even though the string contents may not
change). The fullname local variable now points to freed memory.
To avoid it, refresh the value of fullname after calling
open_source_file.
Here is the ASan report:
$ ./gdb -nx --data-directory=data-directory ./a.out
(gdb) start
Temporary breakpoint 1 at 0x1130: file test.cpp, line 12.
Starting program: /home/simark/build/binutils-gdb/gdb/a.out
Temporary breakpoint 1, main () at test.cpp:12
=================================================================
==26068==ERROR: AddressSanitizer: heap-use-after-free on address 0x6210003d4100 at pc 0x7fed89a34681 bp 0x7ffd8d185d80 sp 0x7ffd8d185528
READ of size 2 at 0x6210003d4100 thread T0
#0 0x7fed89a34680 in __interceptor_strlen /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:301
#1 0x55b6edf6c2f7 in std::char_traits<char>::length(char const*) /usr/include/c++/8.2.1/bits/char_traits.h:320
#2 0x55b6edf6c9b2 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) /usr/include/c++/8.2.1/bits/basic_string.h:516
#3 0x55b6ef09121b in source_cache::get_source_lines(symtab*, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /home/simark/src/binutils-gdb/gdb/source-cache.c:214
#4 0x55b6ef0a15cb in print_source_lines_base /home/simark/src/binutils-gdb/gdb/source.c:1340
#5 0x55b6ef0a2045 in print_source_lines(symtab*, int, int, enum_flags<print_source_lines_flag>) /home/simark/src/binutils-gdb/gdb/source.c:1415
#6 0x55b6ef112c87 in print_frame_info(frame_info*, int, print_what, int, int) /home/simark/src/binutils-gdb/gdb/stack.c:914
#7 0x55b6ef10e90d in print_stack_frame(frame_info*, int, print_what, int) /home/simark/src/binutils-gdb/gdb/stack.c:180
#8 0x55b6ee9592f8 in print_stop_location /home/simark/src/binutils-gdb/gdb/infrun.c:7853
#9 0x55b6ee95948f in print_stop_event(ui_out*) /home/simark/src/binutils-gdb/gdb/infrun.c:7870
#10 0x55b6ef34b962 in tui_on_normal_stop /home/simark/src/binutils-gdb/gdb/tui/tui-interp.c:98
#11 0x55b6ee01a14d in std::_Function_handler<void (bpstats*, int), void (*)(bpstats*, int)>::_M_invoke(std::_Any_data const&, bpstats*&&, int&&) /usr/include/c++/8.2.1/bits/std_function.h:297
#12 0x55b6ee965415 in std::function<void (bpstats*, int)>::operator()(bpstats*, int) const /usr/include/c++/8.2.1/bits/std_function.h:687
#13 0x55b6ee962f1b in gdb::observers::observable<bpstats*, int>::notify(bpstats*, int) const /home/simark/src/binutils-gdb/gdb/common/observable.h:106
#14 0x55b6ee95a6e7 in normal_stop() /home/simark/src/binutils-gdb/gdb/infrun.c:8142
#15 0x55b6ee93f236 in fetch_inferior_event(void*) /home/simark/src/binutils-gdb/gdb/infrun.c:3782
#16 0x55b6ee8f2641 in inferior_event_handler(inferior_event_type, void*) /home/simark/src/binutils-gdb/gdb/inf-loop.c:43
#17 0x55b6eea2a1f0 in handle_target_event /home/simark/src/binutils-gdb/gdb/linux-nat.c:4358
#18 0x55b6ee7045f1 in handle_file_event /home/simark/src/binutils-gdb/gdb/event-loop.c:733
#19 0x55b6ee704e89 in gdb_wait_for_event /home/simark/src/binutils-gdb/gdb/event-loop.c:859
#20 0x55b6ee7027b5 in gdb_do_one_event() /home/simark/src/binutils-gdb/gdb/event-loop.c:322
#21 0x55b6ee702907 in start_event_loop() /home/simark/src/binutils-gdb/gdb/event-loop.c:371
#22 0x55b6eeadfc16 in captured_command_loop /home/simark/src/binutils-gdb/gdb/main.c:331
#23 0x55b6eeae2ef9 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1174
#24 0x55b6eeae30c2 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1190
#25 0x55b6edf4fa89 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
#26 0x7fed88ad8222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
#27 0x55b6edf4f86d in _start (/home/simark/build/binutils-gdb/gdb/gdb+0x197186d)
0x6210003d4100 is located 0 bytes inside of 4096-byte region [0x6210003d4100,0x6210003d5100)
freed by thread T0 here:
#0 0x7fed89a8ac19 in __interceptor_free /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:66
#1 0x55b6edfe12df in xfree<char> /home/simark/src/binutils-gdb/gdb/common/common-utils.h:60
#2 0x55b6edfea675 in gdb::xfree_deleter<char>::operator()(char*) const /home/simark/src/binutils-gdb/gdb/common/gdb_unique_ptr.h:34
#3 0x55b6edfe532c in std::unique_ptr<char, gdb::xfree_deleter<char> >::reset(char*) /usr/include/c++/8.2.1/bits/unique_ptr.h:382
#4 0x55b6edfe7329 in std::unique_ptr<char, gdb::xfree_deleter<char> >::operator=(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /usr/include/c++/8.2.1/bits/unique_ptr.h:289
#5 0x55b6ef09ec2b in find_and_open_source(char const*, char const*, std::unique_ptr<char, gdb::xfree_deleter<char> >*) /home/simark/src/binutils-gdb/gdb/source.c:990
#6 0x55b6ef09f56a in open_source_file(symtab*) /home/simark/src/binutils-gdb/gdb/source.c:1069
#7 0x55b6ef090f78 in source_cache::get_source_lines(symtab*, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /home/simark/src/binutils-gdb/gdb/source-cache.c:205
#8 0x55b6ef0a15cb in print_source_lines_base /home/simark/src/binutils-gdb/gdb/source.c:1340
#9 0x55b6ef0a2045 in print_source_lines(symtab*, int, int, enum_flags<print_source_lines_flag>) /home/simark/src/binutils-gdb/gdb/source.c:1415
#10 0x55b6ef112c87 in print_frame_info(frame_info*, int, print_what, int, int) /home/simark/src/binutils-gdb/gdb/stack.c:914
#11 0x55b6ef10e90d in print_stack_frame(frame_info*, int, print_what, int) /home/simark/src/binutils-gdb/gdb/stack.c:180
#12 0x55b6ee9592f8 in print_stop_location /home/simark/src/binutils-gdb/gdb/infrun.c:7853
#13 0x55b6ee95948f in print_stop_event(ui_out*) /home/simark/src/binutils-gdb/gdb/infrun.c:7870
#14 0x55b6ef34b962 in tui_on_normal_stop /home/simark/src/binutils-gdb/gdb/tui/tui-interp.c:98
#15 0x55b6ee01a14d in std::_Function_handler<void (bpstats*, int), void (*)(bpstats*, int)>::_M_invoke(std::_Any_data const&, bpstats*&&, int&&) /usr/include/c++/8.2.1/bits/std_function.h:297
#16 0x55b6ee965415 in std::function<void (bpstats*, int)>::operator()(bpstats*, int) const /usr/include/c++/8.2.1/bits/std_function.h:687
#17 0x55b6ee962f1b in gdb::observers::observable<bpstats*, int>::notify(bpstats*, int) const /home/simark/src/binutils-gdb/gdb/common/observable.h:106
#18 0x55b6ee95a6e7 in normal_stop() /home/simark/src/binutils-gdb/gdb/infrun.c:8142
#19 0x55b6ee93f236 in fetch_inferior_event(void*) /home/simark/src/binutils-gdb/gdb/infrun.c:3782
#20 0x55b6ee8f2641 in inferior_event_handler(inferior_event_type, void*) /home/simark/src/binutils-gdb/gdb/inf-loop.c:43
#21 0x55b6eea2a1f0 in handle_target_event /home/simark/src/binutils-gdb/gdb/linux-nat.c:4358
#22 0x55b6ee7045f1 in handle_file_event /home/simark/src/binutils-gdb/gdb/event-loop.c:733
#23 0x55b6ee704e89 in gdb_wait_for_event /home/simark/src/binutils-gdb/gdb/event-loop.c:859
#24 0x55b6ee7027b5 in gdb_do_one_event() /home/simark/src/binutils-gdb/gdb/event-loop.c:322
#25 0x55b6ee702907 in start_event_loop() /home/simark/src/binutils-gdb/gdb/event-loop.c:371
#26 0x55b6eeadfc16 in captured_command_loop /home/simark/src/binutils-gdb/gdb/main.c:331
#27 0x55b6eeae2ef9 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1174
#28 0x55b6eeae30c2 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1190
#29 0x55b6edf4fa89 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
previously allocated by thread T0 here:
#0 0x7fed89a8b019 in __interceptor_malloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:86
#1 0x7fed88af983f in realpath@@GLIBC_2.3 (/usr/lib/libc.so.6+0x4583f)
#2 0x7fed899dbbbc in __interceptor_canonicalize_file_name /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:3297
#3 0x55b6ee376a03 in gdb_realpath(char const*) /home/simark/src/binutils-gdb/gdb/common/pathstuff.c:72
#4 0x55b6ef09ec12 in find_and_open_source(char const*, char const*, std::unique_ptr<char, gdb::xfree_deleter<char> >*) /home/simark/src/binutils-gdb/gdb/source.c:990
#5 0x55b6ef09f56a in open_source_file(symtab*) /home/simark/src/binutils-gdb/gdb/source.c:1069
#6 0x55b6ef0a0f12 in print_source_lines_base /home/simark/src/binutils-gdb/gdb/source.c:1270
#7 0x55b6ef0a2045 in print_source_lines(symtab*, int, int, enum_flags<print_source_lines_flag>) /home/simark/src/binutils-gdb/gdb/source.c:1415
#8 0x55b6ef112c87 in print_frame_info(frame_info*, int, print_what, int, int) /home/simark/src/binutils-gdb/gdb/stack.c:914
#9 0x55b6ef10e90d in print_stack_frame(frame_info*, int, print_what, int) /home/simark/src/binutils-gdb/gdb/stack.c:180
#10 0x55b6ee9592f8 in print_stop_location /home/simark/src/binutils-gdb/gdb/infrun.c:7853
#11 0x55b6ee95948f in print_stop_event(ui_out*) /home/simark/src/binutils-gdb/gdb/infrun.c:7870
#12 0x55b6ef34b962 in tui_on_normal_stop /home/simark/src/binutils-gdb/gdb/tui/tui-interp.c:98
#13 0x55b6ee01a14d in std::_Function_handler<void (bpstats*, int), void (*)(bpstats*, int)>::_M_invoke(std::_Any_data const&, bpstats*&&, int&&) /usr/include/c++/8.2.1/bits/std_function.h:297
#14 0x55b6ee965415 in std::function<void (bpstats*, int)>::operator()(bpstats*, int) const /usr/include/c++/8.2.1/bits/std_function.h:687
#15 0x55b6ee962f1b in gdb::observers::observable<bpstats*, int>::notify(bpstats*, int) const /home/simark/src/binutils-gdb/gdb/common/observable.h:106
#16 0x55b6ee95a6e7 in normal_stop() /home/simark/src/binutils-gdb/gdb/infrun.c:8142
#17 0x55b6ee93f236 in fetch_inferior_event(void*) /home/simark/src/binutils-gdb/gdb/infrun.c:3782
#18 0x55b6ee8f2641 in inferior_event_handler(inferior_event_type, void*) /home/simark/src/binutils-gdb/gdb/inf-loop.c:43
#19 0x55b6eea2a1f0 in handle_target_event /home/simark/src/binutils-gdb/gdb/linux-nat.c:4358
#20 0x55b6ee7045f1 in handle_file_event /home/simark/src/binutils-gdb/gdb/event-loop.c:733
#21 0x55b6ee704e89 in gdb_wait_for_event /home/simark/src/binutils-gdb/gdb/event-loop.c:859
#22 0x55b6ee7027b5 in gdb_do_one_event() /home/simark/src/binutils-gdb/gdb/event-loop.c:322
#23 0x55b6ee702907 in start_event_loop() /home/simark/src/binutils-gdb/gdb/event-loop.c:371
#24 0x55b6eeadfc16 in captured_command_loop /home/simark/src/binutils-gdb/gdb/main.c:331
#25 0x55b6eeae2ef9 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1174
#26 0x55b6eeae30c2 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1190
#27 0x55b6edf4fa89 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
#28 0x7fed88ad8222 in __libc_start_main (/usr/lib/libc.so.6+0x24222)
gdb/ChangeLog:
* source-cache.c (source_cache::get_source_lines): Re-read
fullname after calling open_source_file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix Arm build
@ 2019-03-26 13:23 sergiodj+buildbot
2019-03-26 13:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 13:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2fe7bab775f6acbfa1255d3504cd9e53a109e132 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 2fe7bab775f6acbfa1255d3504cd9e53a109e132
Fix Arm build
Add missing include.
2019-03-26 Alan Hayward <alan.hayward@arm.com>
* arm-linux-nat.c: Add include.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add AArch64 Pointer Authentication to the NEWS file
@ 2019-03-26 17:40 sergiodj+buildbot
2019-03-26 17:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 17:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d851aa7170c09fb903dd1bdafa6df526f1951863 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: d851aa7170c09fb903dd1bdafa6df526f1951863
Add AArch64 Pointer Authentication to the NEWS file
gdb/ChangeLog:
* NEWS: Mention AArch64 Pointer Authentication.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing
@ 2019-03-26 20:13 sergiodj+buildbot
2019-03-26 20:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 20:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 18c77628b1e97e412561029ec20195c1ffa61b2d ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 18c77628b1e97e412561029ec20195c1ffa61b2d
gdb: Avoid trailing whitespace when pretty printing
While writing a new test for 'set print pretty on' I spotted that GDB
will sometimes add a trailing whitespace character when pretty
printing. This commit removes the trailing whitespace and updates the
expected results in one tests where this was an issue.
I've added an extra test for 'set print pretty on' as it doesn't seem
to have much testing.
gdb/ChangeLog:
* cp-valprint.c (cp_print_value_fields): Don't print trailing
whitespace when pretty printing is on.
gdb/testsuite/ChangeLog:
* gdb.base/finish-pretty.exp: Update expected results.
* gdb.base/pretty-print.c: New file.
* gdb.base/pretty-print.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Make python display_hint None handling defined behaviour
@ 2019-03-26 20:22 sergiodj+buildbot
2019-03-26 20:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 20:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9f9aa85206ab31d2c583e7fef568700d31eb577e ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 9f9aa85206ab31d2c583e7fef568700d31eb577e
gdb: Make python display_hint None handling defined behaviour
The documentation say that the display_hint method must return a
string to serve as a display hint, and then goes on to list some
acceptable strings.
However, if we don't supply the display_hint method then we get a
default display style behaviour and there's currently no way (in the
python api) to force this default behaviour.
The guile api allows #f to be used in order to force the default
display style behaviour, and this is documented.
Currently, using None in the python api also forces the default
display behaviour.
This commit extends the documentation to make returning None from the
display_hint method an official mechanism by which the user can get
the default display style.
I've extended one of the existing tests to cover this case.
gdb/doc/ChangeLog:
* python.texi (Pretty Printing API): Document use of None for the
display_hint.
gdb/testsuite/ChangeLog:
* gdb.python/py-prettyprint.c (struct container) <is_map_p>: New
field.
(make_container): Initialise new field.
* gdb.python/py-prettyprint.exp: Add new tests.
* gdb.python/py-prettyprint.py (class ContainerPrinter)
<display_hint>: New method.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Ensure interrupt-daemon-attach doesn't run forever
@ 2019-03-27 12:22 sergiodj+buildbot
2019-03-27 12:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 12:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 933aebfae6b1a2b83c3eb958ebf6e43fc7fdaed1 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 933aebfae6b1a2b83c3eb958ebf6e43fc7fdaed1
Testsuite: Ensure interrupt-daemon-attach doesn't run forever
Looking at the AArch64 buildbot, I noticed about two dozen old instances of
interrupt-daemon-attach taking up a full 100% cpu each.
If the test fails then the test binary relies on an alarm to ensure it dies
after 60 seconds.
As per the Linux man page for alarm:
Alarms created by alarm() ... are not inherited by children created via fork.
Update the test to add an alarm in the child and also put a sleep in the
child loop so it does not constantly consume cpu.
Note I haven't managed to re-create why the test failed. This fix will just
stop it hanging and consuming cpu when it does.
gdb/testsuite/ChangeLog:
* gdb.base/interrupt-daemon-attach.c (main): Add alarm and sleep
in child.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed.
@ 2019-03-27 16:06 sergiodj+buildbot
2019-03-27 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 16:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 20dc7e9b059edff1d0fab3bd197c460c11cc7a06 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 20dc7e9b059edff1d0fab3bd197c460c11cc7a06
Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed.
Valgrind detects the following error in a bunch of tests,
e.g. in gdb.base/foll-fork.exp.
==15155== VALGRIND_GDB_ERROR_BEGIN
==15155== Invalid read of size 8
==15155== at 0x55BE04: minimal_symbol_upper_bound(bound_minimal_symbol) (minsyms.c:1504)
==15155== by 0x3B2E9C: find_pc_partial_function(unsigned long, char const**, unsigned long*, unsigned long*, block const**) (blockframe.c:340)
==15155== by 0x3B3135: find_function_entry_range_from_pc(unsigned long, char const**, unsigned long*, unsigned long*) (blockframe.c:385)
==15155== by 0x4F5597: fill_in_stop_func(gdbarch*, execution_control_state*) [clone .part.16] (infrun.c:4124)
==15155== by 0x4FBE01: fill_in_stop_func (infrun.c:7636)
==15155== by 0x4FBE01: process_event_stop_test(execution_control_state*) (infrun.c:6279)
...
==15155== Address 0x715bec8 is 0 bytes after a block of size 2,952 alloc'd
==15155== at 0x4C2E2B3: realloc (vg_replace_malloc.c:836)
==15155== by 0x405F2C: xrealloc (common-utils.c:62)
==15155== by 0x55BA4E: xresizevec<minimal_symbol> (poison.h:170)
==15155== by 0x55BA4E: minimal_symbol_reader::install() (minsyms.c:1399)
==15155== by 0x4981C7: elf_read_minimal_symbols (elfread.c:1165)
...
This seems to be a regression created by:
commit 042d75e42c5572f333e0e06dabd3c5c4afab486c
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sat Mar 2 12:29:48 2019 -0700
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Mar 15 16:02:10 2019 -0600
Allocate minimal symbols with malloc
Before this commit, the array of 'struct minimal_symbol'
contained a last element that was a "null symbol". The comment in
minimal_symbol_reader::install was:
/* We also terminate the minimal symbol table with a "null symbol",
which is *not* included in the size of the table. This makes it
easier to find the end of the table when we are handed a pointer
to some symbol in the middle of it. Zero out the fields in the
"null symbol" allocated at the end of the array. Note that the
symbol count does *not* include this null symbol, which is why it
is indexed by mcount and not mcount-1. */
memset (&msymbols[mcount], 0, sizeof (struct minimal_symbol));
However, minimal_symbol_upper_bound was still based on the assumption
that the array of minsym is terminated by a minsym with a null symbol:
it is looping with:
for (i = 1; MSYMBOL_LINKAGE_NAME (msymbol + i) != NULL; i++)
Replace this NULL comparison by a logic that calculates how
many msymbol are following the msymbols from which we are starting from.
(Re-)tested on debian/amd64, natively and under valgrind.
gdb/ChangeLog
2019-03-24 Philippe Waroquiers <philippe.waroquiers@skynet.be>
Tom Tromey <tromey@adacore.com>
* minsyms.c (minimal_symbol_upper_bound): Fix buffer overflow.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim/common: convert sim-arange to use sim-inline
@ 2019-03-27 22:18 sergiodj+buildbot
2019-03-27 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-27 22:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ef9866970ce6683d40465fb7c3168f87a1dcd1b7 ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: ef9866970ce6683d40465fb7c3168f87a1dcd1b7
sim/common: convert sim-arange to use sim-inline
This fixes a TODO item and also fixes an error which we get when
building with no optimizations (-O0) in at least gcc 8.2.1.
Tested with sims that use cgen code lm32, or1k, cris, m32r and inlining
is working corretly.
Reference Error:
gcc -DHAVE_CONFIG_H -DWITH_DEFAULT_MODEL='"or1200"' -DWITH_ALIGNMENT=STRICT_ALIGNMENT \
-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31 -DWITH_TARGET_ADDRESS_BITSIZE=32 \
-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG -DDEFAULT_INLINE=0 -DWITH_SCACHE=16384 \
-I. -I../../../binutils-gdb/sim/or1k -I../common -I../../../binutils-gdb/sim/or1k/../common \
-I../../include -I../../../binutils-gdb/sim/or1k/../../include -I../../bfd \
-I../../../binutils-gdb/sim/or1k/../../bfd -I../../opcodes -I../../../binutils-gdb/sim/or1k/../../opcodes \
-g -o run nrun.o libsim.a ../../bfd/libbfd.a ../../opcodes/libopcodes.a ../../libiberty/libiberty.a \
-ldl -lz -lm
/usr/bin/ld: libsim.a(mloop.o): in function `extract':
/home/shorne/work/openrisc/gdb-musl/sim/or1k/mloop.c:82: undefined reference to `sim_addr_range_hit_p'
/usr/bin/ld: /home/shorne/work/openrisc/gdb-musl/sim/or1k/mloop.c:83: undefined reference to `sim_addr_range_hit_p'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:305: run] Error 1
sim/common/ChangeLog:
* Make-common.in (sim-arange_h): Remove sim-arange.c
* sim-arange.c: Remove SIM_ARANGE_C.
Add ifdef for _SIM_ARANGE_C_.
Include "sim-arange.h".
Remove include for unused "sim-assert.h".
Remove DEFINE_INLINE_P. Remove DEFINE_NON_INLINE_P.
(sim_addr_range_add): Declare as INLINE_SIM_ARANGE.
(sim_addr_range_delete): Declare as INLINE_SIM_ARANGE.
(sim_addr_range_hit_p): Change from SIM_ARANGE_INLINE to
INLINE_SIM_ARANGE.
* sim-arange.h (sim_addr_range_add): Declare as
INLINE_SIM_ARANGE.
(sim_addr_range_delete): Declare as INLINE_SIM_ARANGE.
(sim_addr_range_hit_p) Declare as INLINE_SIM_ARANGE.
Remove definition of SIM_ARANGE_INLINE.
Remove [HAVE_INLINE].
Wrap include "sim-arange.c" in H_REVEALS_MODULE_P.
* sim-base.h: Include "sim-arange.h"
* sim-basics.h: Remove include of "sim-arange.h"
* sim-inline.c: Include "sim-arange.c"
* sim-inline.h: Define INLINE_SIM_ARANGE.
Define SIM_ARANGE_INLINE. Define EXTERN_SIM_ARANGE_P.
Define STATIC_INLINE_SIM_ARANGE. Define STATIC_SIM_ARANGE.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim/common: Fix warnings: "warning: implicit declaration of function..."
@ 2019-03-28 0:24 sergiodj+buildbot
2019-03-28 1:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 0:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b6061d4d383b08966d16a0b0f72c69f35fc4beb9 ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: b6061d4d383b08966d16a0b0f72c69f35fc4beb9
sim/common: Fix warnings: "warning: implicit declaration of function..."
During building of several cgen simulator's I notices the below
warnings. Adding includes fixes these.
Including config.h allows stdio.h to properly configure itself to expose
asprintf().
The other warnings for abort, free, memset, strlen are trivial.
Warnings:
../../../binutils-gdb/sim/or1k/../common/sim-watch.c: In function sim_watchpoint_install:
../../../binutils-gdb/sim/or1k/../common/sim-watch.c:415:10: warning: implicit declaration of function asprintf; did you mean vasprintf? [-Wimplicit-function-declaration]
if (asprintf (&name, "watch-%s-%s",
^~~~~~~~
vasprintf
../../../binutils-gdb/sim/lm32/../common/hw-device.c: In function hw_strdup:
../../../binutils-gdb/sim/lm32/../common/hw-device.c:59:34: warning: implicit declaration of function strlen [-Wimplicit-function-declaration]
char *dup = hw_zalloc (me, strlen (str) + 1);
^~~~~~
../../../binutils-gdb/sim/lm32/../common/hw-events.c: In function hw_event_queue_schedule:
../../../binutils-gdb/sim/lm32/../common/hw-events.c:92:3: warning: implicit declaration of function memset [-Wimplicit-function-declaration]
memset (&dummy, 0, sizeof dummy);
^~~~~~
../../../binutils-gdb/sim/lm32/../common/hw-handles.c: In function hw_handle_remove_ihandle:
../../../binutils-gdb/sim/lm32/../common/hw-handles.c:211:4: warning: implicit declaration of function free [-Wimplicit-function-declaration]
free (delete);
^~~~
../../../binutils-gdb/sim/lm32/../common/sim-fpu.c: In function pack_fpu:
../../../binutils-gdb/sim/lm32/../common/sim-fpu.c:292:7: warning: implicit declaration of function abort [-Wimplicit-function-declaration]
abort ();
^~~~~
sim/common/ChangeLog:
* sim-options.c: Include "config.h".
Include <stdio.h>.
* sim-watch.c: Include "config.h".
Include <stdio.h>.
* hw-device.c: Include <string.h>.
* hw-events.c: Include <string.h>.
* hw-handles.c: Include <stdlib.h>.
* sim-fpu.c: Include <stdlib.h>.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24390, Don't decode mtfsb field as a cr field
@ 2019-03-28 7:20 sergiodj+buildbot
2019-03-28 7:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 7:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 96a86c01d119372f4af5aff2501d3104e6c1a8e3 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 96a86c01d119372f4af5aff2501d3104e6c1a8e3
PR24390, Don't decode mtfsb field as a cr field
"mtfsb0 4*cr7+lt" doesn't make all that much sense, but unfortunately
glibc uses just that instead of "mtfsb0 28" to clear the fpscr xe bit.
So for backwards compatibility accept cr field expressions when
assembling mtfsb operands, but disassemble to a plain number.
PR 24390
include/
* opcode/ppc.h (PPC_OPERAND_CR_REG): Comment.
opcodes/
* ppc-opc.c (BTF): Define.
(powerpc_opcodes): Use for mtfsb*.
* ppc-dis.c (print_insn_powerpc): Print fields with both
PPC_OPERAND_CR_REG and PPC_OPERAND_CR_BIT as a plain number.
gas/
* testsuite/gas/ppc/476.d: Update mtfsb*.
* testsuite/gas/ppc/a2.d: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24392, Clang warning Wtautological-constant-out-of-range-compare
@ 2019-03-28 7:37 sergiodj+buildbot
2019-03-28 7:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 7:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 242a115951fe55e62036bac555017eb817ca1aa6 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 242a115951fe55e62036bac555017eb817ca1aa6
PR24392, Clang warning Wtautological-constant-out-of-range-compare
PR 24392
* configure.ac: Invoke AC_CHECK_SIZEOF(int).
* configure: Regenerate.
* coffgen.c (coff_get_reloc_upper_bound): Replace gcc diagnostic
workaround with SIZEOF_LONG vs. SIZEOF_INT check.
* elf.c (_bfd_elf_get_reloc_upper_bound): Likewise.
* elf64-sparc.c (elf64_sparc_get_reloc_upper_bound): Likewise.
* mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined
@ 2019-03-28 12:45 sergiodj+buildbot
2019-03-28 12:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 12:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 69f4c9cc037f2226982a21fae63ffbc5e866fcca ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 69f4c9cc037f2226982a21fae63ffbc5e866fcca
gdbserver: Ensure AT_HWCAP2 is defined
When using older compilers, AT_HWCAP2 may not be be defined.
It is defined in elf/common.h, however including this in
gdbserver/linux-low.c causes conflicts.
Manually add the define if it does not exist.
gdb/gdbserver/ChangeLog:
* linux-low.c (AT_HWCAP2): Add define if not already included.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: 128bit views for SVE registers
@ 2019-03-28 13:40 sergiodj+buildbot
2019-03-28 14:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 13:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fc96163a3ea7761f5353591c825027090942e330 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: fc96163a3ea7761f5353591c825027090942e330
AArch64: 128bit views for SVE registers
SVE can view Z registers as 128bit values using .q prefix.
Add this view to the SVE feature.
gdb/ChangeLog:
* features/aarch64-sve.c (create_feature_aarch64_sve): Add q view.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: set sysroot when using gdbserver
@ 2019-03-28 16:51 sergiodj+buildbot
2019-03-28 16:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 16:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c92df149c29518f6e1d4a3174b3e29162fcd3ad6 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: c92df149c29518f6e1d4a3174b3e29162fcd3ad6
Testsuite: set sysroot when using gdbserver
When testing using native-gdbserver and native-extended-gdbserver, the sysroot
is not set. This results in a warning from GDB and files are sent via the
remote protocol, which can be slow.
On Ubuntu 18.04 (unlike most distros) the debug versions of the standard
libraries are included by default in /usr/lib/debug/.
These file reads are causing a complete native-gdbserver run on the AArch64
buildbot slave to timeout after 2.5 hours. This is also causing the builds
to back up on the slave.
The solution is to ensure the sysroot is set to / for all local boards.
This drastically reduces the time of a test. For example, gdb.base/sigall.exp
drops from 23 seconds to 4 seconds.
A full native-gdbserver run on the AArch64 slave now takes 8 minutes.
gdb/testsuite/ChangeLog:
* boards/local-board.exp: set sysroot to /.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix stepping past unwritable kernel helper on nios2-linux-gnu.
@ 2019-03-28 17:41 sergiodj+buildbot
2019-03-28 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 17:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f489207efde922e436b1b420d4de071927e3b9d5 ***
Author: Sandra Loosemore <sandra@codesourcery.com>
Branch: master
Commit: f489207efde922e436b1b420d4de071927e3b9d5
Fix stepping past unwritable kernel helper on nios2-linux-gnu.
This patch fixes a problem on nios2-linux-gnu with stepping past the
kernel helper __kuser_cmpxchg, which was exposed by the testcase
gdb.threads/watchpoint-fork.exp. The kernel maps this function into
user space on an unwritable page. In this testcase, the cmpxchg
helper is invoked indirectly from the setbuf call in the test program.
Since this target lacks hardware breakpoint/watchpoint support, GDB
tries to single-step through the program by setting software
breakpoints, and was just giving an error when it reached the function
on the unwritable page.
The solution here is to always step over the call instead of stepping
into it; cmpxchg is supposed to be an atomic operation so this
behavior seems reasonable. The hook in nios2_get_next_pc is somewhat
generic, but at present cmpxchg is the only helper provided by the
Linux kernel that is invoked by an ordinary function call. (Signal
return trampolines also go through the unwritable page but not by a
function call.)
Fixing this issue also revealed that the testcase needs a much larger
timeout factor when software single-stepping is used. That has also
been fixed in this patch.
gdb/ChangeLog
2019-03-28 Sandra Loosemore <sandra@codesourcery.com>
* nios2-tdep.h (struct gdbarch_tdep): Add is_kernel_helper.
* nios2-tdep.c (nios2_get_next_pc): Skip over kernel helpers.
* nios2-linux-tdep.c (nios2_linux_is_kernel_helper): New.
(nios2_linux_init_abi): Install it.
gdb/testsuite/ChangeLog
2019-03-28 Sandra Loosemore <sandra@codesourcery.com>
* gdb.threads/watchpoint-fork.exp (test): Use large timeout
factor when no hardware watchpoint support.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix GDB being suspended SIGTTOU when running gdb.multi/multi-arch-exec.exp
@ 2019-03-28 20:57 sergiodj+buildbot
2019-03-28 21:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 20:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 65d2b333a830b3f36c8b7ae9d9ed6c77f8be9270 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 65d2b333a830b3f36c8b7ae9d9ed6c77f8be9270
Fix GDB being suspended SIGTTOU when running gdb.multi/multi-arch-exec.exp
When running under valgrind, multi-arch-exec.exp blocks forever.
Some (painful) investigation shows this is due to valgrind slowing
down GDB, and GDB has to output some messages at a different time,
when GDB does not have the terminal for output.
To reproduce the problem, you need to slow down GDB.
It can be reproduced by:
cd gdb/testsuite/outputs/gdb.multi/multi-arch-exec/
../../../../gdb -ex 'set debug lin-lwp 1' -ex 'break all_started' -ex 'run' ./2-multi-arch-exec
The above stops at a breakpoint. Do continue.
GDB is then suspended because of SIGTTOU.
The stacktrace that leads to the hanging GDB is:
(top-gdb) bt
at ../../binutils-gdb/gdb/exceptions.c:130
....
Alternatively, the same happens when doing
strace -o s.out ../../../../gdb -ex 'break all_started' -ex 'run' ./2-multi-arch-exec
And of course, valgrind is also sufficiently slowing down GDB to
reproduce this :).
Fix this by calling target_terminal::ours_for_output ();
at the beginning of follow_exec.
Note that all this terminal handling is not very clear to me:
* Some code takes the terminal, and then takes care to give it back to the inferior
if the terminal was belonging to the inferior.
(e.g. annotate_breakpoints_invalid).
* some code takes the terminal, but does not give it back
(e.g. update_inserted_breakpoint_locations).
* some code takes it, and unconditionally gives it back
(e.g. handle_jit_event)
* here and there, we also find
gdb::optional<target_terminal::scoped_restore_terminal_state> term_state;
before a (sometimes optional) call to ours_for_output.
And such calls to ours_for_output is sometimes protected by:
if (target_supports_terminal_ours ())
(e.g. exceptions.c: print_flush).
but most of the code calls it without checking if the target supports it.
* some code is outputting some errors, but only takes the terminal
after. E.g. infcmd.c: prepare_one_step
gdb/ChangeLog
2019-03-28 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* infrun.c (follow_exec): Call target_terminal::ours_for_output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb
@ 2019-03-28 21:16 sergiodj+buildbot
2019-03-28 21:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 21:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 80047cfc27459d4d31fe275ddd02231d812ddb61 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 80047cfc27459d4d31fe275ddd02231d812ddb61
Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb
When running multi-arch-exec.exp under valgrind, the test succeeds
when the machine is not loaded, but blocks when the machine is highly
loaded (e.g. when running the testsuite with valgrind with -j X
where X is one more than the nr of available cores).
The problem is that the hello program dies too early due to the alarm (30).
So, increase the alarm timer.
Note that this does not make the test take longer (it takes about
3.5 seconds on my system). As I understand, the alarm is just there
to avoid hello staying there forever in case of another problem.
2019-03-28 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.multi/hello.c (main): Increase alarm timer.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.multi/multi-term-settings.exp blocking under high load/slow gdb
@ 2019-03-28 21:38 sergiodj+buildbot
2019-03-28 21:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 21:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 077cad8ec1ca069d8981ecdbfa68c24b12597f67 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 077cad8ec1ca069d8981ecdbfa68c24b12597f67
Fix gdb.multi/multi-term-settings.exp blocking under high load/slow gdb
Similarly to multi-arch-exec.exp, increase the alarm timer to avoid
test blocking under high load or with a slow gdb.
2019-03-28 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.multi/multi-term-settings.c (main): Increase alarm timer.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix format specification in display_selector() (again)
@ 2019-03-28 21:40 sergiodj+buildbot
2019-03-28 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 21:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e432ccf1cb4685b990f9cf10cb84626f52239806 ***
Author: Jon Turney <jon.turney@dronecode.org.uk>
Branch: master
Commit: e432ccf1cb4685b990f9cf10cb84626f52239806
Fix format specification in display_selector() (again)
DWORD type is not a long on 64-bit Cygwin, because that it is LP64.
Explicitly cast DWORD values to unsigned long and use an appropriate
format.
gdb/ChangeLog:
2019-03-28 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (display_selector): Fixed format specifications
for 64-bit Cygwin.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim: fix all sim builds
@ 2019-03-28 23:33 sergiodj+buildbot
2019-03-28 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 23:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d3fe0d7bb8a3101df6f052aa54e4cfedcc2fee94 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d3fe0d7bb8a3101df6f052aa54e4cfedcc2fee94
sim: fix all sim builds
This commit:
commit ef9866970ce6683d40465fb7c3168f87a1dcd1b7
Date: Thu Mar 28 06:40:30 2019 +0900
sim/common: convert sim-arange to use sim-inline
broke many simulator targets. I fixed aarch64 in a previous commit
without realising how many other target were also broken.
This commit adds the missing includes (sim-assert.h and libiberty.h),
which seem to be needed by many simulator targets, in a central
location, this should fix most builds.
sim/common/ChangeLog:
* sim-base.h: Add 'sim-assert.h' include.
* sim-basics.h: Add 'libiberty.h' include.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd: xtensa: fix shrink_dynamic_reloc_sections for export-dynamic
@ 2019-03-29 17:39 sergiodj+buildbot
2019-03-29 18:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-29 17:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2487ef07c28b961c6e2b8c51161f88f93b181d07 ***
Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: 2487ef07c28b961c6e2b8c51161f88f93b181d07
bfd: xtensa: fix shrink_dynamic_reloc_sections for export-dynamic
shrink_dynamic_reloc_sections must remove PLT entry that was created for
an undefined weak symbol in the presence of --export-dynamic option when
relaxation coalesces literals pointing to that symbol. This fixes the
following assertion:
ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at
elf32-xtensa.c:3292 in elf_xtensa_finish_dynamic_sections
2019-03-29 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (shrink_dynamic_reloc_sections): Add
info->export_dynamic to the conditional.
ld/
* testsuite/ld-xtensa/relax-undef-weak-pie-export-dynamic.d: New
test definition.
* testsuite/ld-xtensa/xtensa.exp
(relax-undef-weak-pie-export-dynamic): Add new test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Allow really large fortran array bounds: TYPE_LENGTH to ULONGEST
@ 2019-03-29 18:45 sergiodj+buildbot
2019-03-29 18:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-29 18:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cc1defb1dcb5f1ca23a82bca233a48ab2657de6c ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: cc1defb1dcb5f1ca23a82bca233a48ab2657de6c
Allow really large fortran array bounds: TYPE_LENGTH to ULONGEST
This series is revisit of Siddhesh Poyarekar's patch from back in
2012. The last status on the patch is in the following gdb-patches
thread:
https://sourceware.org/ml/gdb-patches/2012-08/msg00562.html
It appears that Tom approved the patch, but Jan had some issues
with a compiler error that made the test fail on -m32 test runs.
He wrote up a hand-tweaked .S file to deal with it. Siddesh said
he would update tests. Then nothing.
Siddesh and Jan have both moved on since.
The patch originally required a large precursor patch to work.
I have whittled this down to/rewritten the bare minimum, and this
first patch is the result, changing the type of TYPE_LENGTH
to ULONGEST from unsigned int.
The majority of the changes involve changing printf format
strings to use %s and pulongest instead of %d.
gdb/ChangeLog:
* ada-lang.c (ada_template_to_fixed_record_type_1): Use
%s/pulongest for TYPE_LENGTH instead of %d in format
strings.
* ada-typerint.c (ada_print_type): Likewise.
* amd64-windows-tdep.c (amd64_windows_store_arg_in_reg): Likewise.
* compile/compile-c-support.c (generate_register_struct): Likewise.
* gdbtypes.c (recursive_dump_type): Likewise.
* gdbtypes.h (struct type) <length>: Change type to ULONGEST.
* m2-typeprint.c (m2_array): Use %s/pulongest for TYPE_LENGTH
instead of %d in format strings.
* riscv-tdep.c (riscv_type_alignment): Cast second argument
to std::min to ULONGEST.
* symmisc.c (print_symbol): Use %s/pulongest for TYPE_LENGTH
instead of %d in format strings.
* tracepoint.c (info_scope_command): Likewise.
* typeprint.c (print_offset_data::update)
(print_offset_data::finish): Likewise.
* xtensa-tdep.c (xtensa_store_return_value)
(xtensa_push_dummy_call): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Allow really large fortran array bounds: fortran type/value printers
@ 2019-03-29 18:49 sergiodj+buildbot
2019-03-29 19:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-29 18:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2880242dd0b8538b68aece7d9e8b1678dcdfd0ab ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 2880242dd0b8538b68aece7d9e8b1678dcdfd0ab
Allow really large fortran array bounds: fortran type/value printers
This is the fortran part of the patch, including tests, which
are essentially unchanged from Siddhesh's original 2012 submission:
https://sourceware.org/ml/gdb-patches/2012-08/msg00562.html
There is, however, one large departure. In the above thread,
Jan pointed out problems with GCC debuginfo for -m32 builds
(filed usptream as gcc/54934). After investigating the issue,
I am dropping the hand-tweaked assembler source file to workaround
this case.
While I would normally do something to accommodate this, in
this case, given the ubiquity of 64-bit systems today (where
the tests pass) and the apparent lack of urgency on the compiler
side (by users), I don't think the additional complexity and
maintenance costs are worth it. It will be very routinely tested
on 64-bit systems. [For example, at Red Hat, we always
test -m64 and -m32 configurations for all GDB releases.]
gdb/ChangeLog:
From Siddhesh Poyarekar:
* f-lang.h (f77_get_upperbound): Return LONGEST.
(f77_get_lowerbound): Likewise.
* f-typeprint.c (f_type_print_varspec_suffix): Expand
UPPER_BOUND and LOWER_BOUND to LONGEST. Use plongest to format
print them.
(f_type_print_base): Expand UPPER_BOUND to LONGEST. Use
plongest to format print it.
* f-valprint.c (f77_get_lowerbound): Return LONGEST.
(f77_get_upperbound): Likewise.
(f77_get_dynamic_length_of_aggregate): Expand UPPER_BOUND,
LOWER_BOUND to LONGEST.
(f77_create_arrayprint_offset_tbl): Likewise.
gdb/testsuite/ChangeLog:
* gdb.fortran/array-bounds.exp: New file.
* gdb.fortran/array-bounds.f90: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add usage for commands in printcmd.c
@ 2019-03-29 21:07 sergiodj+buildbot
2019-03-29 21:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-29 21:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 188e1fa9ac09b0a764e19c1afc0fb5fcdb688e65 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 188e1fa9ac09b0a764e19c1afc0fb5fcdb688e65
Add usage for commands in printcmd.c
I noticed that the help for "info addr" did not include a "usage"
line; and when adding it I went through and fixed a few minor issues
in printcmd.c:
* Added usage lines to all commands
* Updated the help text for some commands
* Changed some help to use upper case metasyntactic variables
* Removed some dead code
Regression tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-03-29 Tom Tromey <tromey@adacore.com>
* printcmd.c (_initialize_printcmd): Add usage lines. Update some
help text. Remove dead code.
gdb/testsuite/ChangeLog
2019-03-29 Tom Tromey <tromey@adacore.com>
* gdb.base/help.exp: Tighten apropos regexp.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce new convenience variables $_gdb_major and $_gdb_minor
@ 2019-03-30 10:38 sergiodj+buildbot
2019-03-30 11:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-30 10:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7734102d6d8b5a0ccea166f8e944f84dc896b9ae ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 7734102d6d8b5a0ccea166f8e944f84dc896b9ae
Introduce new convenience variables $_gdb_major and $_gdb_minor
gdb/ChangeLog:
2019-03-30 Eli Zaretskii <eliz@gnu.org>
* NEWS: Announce $_gdb_major and $_gdb_minor.
* top.c (init_gdb_version_vars): New function.
(gdb_init): Call init_gdb_version_vars.
gdb/testsuite/ChangeLog:
2019-03-30 Simon Marchi <simark@simark.ca>
* gdb.base/default.exp: Add values for $_gdb_major and
$_gdb_minor.
gdb/doc/ChangeLog:
2019-03-30 Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Convenience Vars): Document $_gdb_major and
$_gdb_minor.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Relax tail/j to c.j for RV64.
@ 2019-03-30 17:50 sergiodj+buildbot
2019-03-30 18:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-03-30 17:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ae2b14c73cd42b067e9687219155ed044210f0c1 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: ae2b14c73cd42b067e9687219155ed044210f0c1
RISC-V: Relax tail/j to c.j for RV64.
2019-03-30 Andrew Waterman <andrew@sifive.com>
bfd/
* elfnn-riscv.c (_bfd_riscv_relax_call): Only check ARCH_SIZE for
rd == X_RA case.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add gdb.Value.format_string ()
@ 2019-04-01 8:39 sergiodj+buildbot
2019-04-01 8:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 8:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 52093e1b936fa4f3f8bb3868c5a44d0df25c8db4 ***
Author: Marco Barisione <mbarisione@undo.io>
Branch: master
Commit: 52093e1b936fa4f3f8bb3868c5a44d0df25c8db4
Add gdb.Value.format_string ()
The str () function, called on a gdb.Value instance, produces a string
representation similar to what can be achieved with the print command,
but it doesn't allow to specify additional formatting settings, for
instance disabling pretty printers.
This patch introduces a new format_string () method to gdb.Value which
allows specifying more formatting options, thus giving access to more
features provided by the internal C function common_val_print ().
gdb/ChangeLog:
2019-04-01 Marco Barisione <mbarisione@undo.io>
Add gdb.Value.format_string ().
* python/py-value.c (copy_py_bool_obj):
(valpy_format_string): Add gdb.Value.format_string ().
* NEWS: Document the addition of gdb.Value.format_string ().
gdb/doc/ChangeLog:
2019-04-01 Marco Barisione <mbarisione@undo.io>
* python.texi (Values From Inferior): Document
gdb.Value.format_string ().
gdb/testsuite/ChangeLog:
2019-04-01 Marco Barisione <mbarisione@undo.io>
Test gdb.Value.format_string ().
* gdb.python/py-format-string.exp: New test.
* gdb.python/py-format-string.c: New file.
* gdb.python/py-format-string.py: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-04-01 8:39 [binutils-gdb] Add gdb.Value.format_string () sergiodj+buildbot
@ 2019-04-01 8:41 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 8:41 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9608>
Commit(s) tested:
52093e1b936fa4f3f8bb3868c5a44d0df25c8db4
Author(s) (in the same order as the commits):
Marco Barisione <mbarisione@undo.io>
Subject:
Add gdb.Value.format_string ()
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/52/52093e1b936fa4f3f8bb3868c5a44d0df25c8db4/>
*** Diff to previous build ***
============================
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option actual_objects: actual_objects=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option actual_objects: actual_objects=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option array_indexes: array_indexes=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option array_indexes: array_indexes=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option deref_refs: deref_refs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option deref_refs: deref_refs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option pretty_arrays: pretty_arrays=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option pretty_arrays: pretty_arrays=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option pretty_structs: pretty_structs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option pretty_structs: pretty_structs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option raw: raw=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option raw: raw=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option static_members: static_members=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option static_members: static_members=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option symbols: symbols=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option symbols: symbols=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union with option unions: unions=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: format='d': a_struct_with_union with option format='d'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: format='x': a_struct_with_union with option format='x'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: max_elements=0: a_struct_with_union with option max_elements=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: max_elements=1000: a_struct_with_union with option max_elements=1000
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: max_elements=200: a_struct_with_union with option max_elements=200
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: max_elements=3: a_struct_with_union with option max_elements=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: repeat_threshold=0: a_struct_with_union with option repeat_threshold=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: repeat_threshold=100: a_struct_with_union with option repeat_threshold=100
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: repeat_threshold=10: a_struct_with_union with option repeat_threshold=10
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: repeat_threshold=1: a_struct_with_union with option repeat_threshold=1
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: repeat_threshold=3: a_struct_with_union with option repeat_threshold=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: set print structs on: a_struct_with_union with option pretty_structs: pretty_structs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: set print structs on: a_struct_with_union with option pretty_structs: pretty_structs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: set print structs on: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: set print structs on: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: set print union off: a_struct_with_union with option unions: unions=true
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=d426d3bd>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=d426d3bd>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [GAS, Arm] CLI with architecture sensitive extensions
@ 2019-04-01 10:06 sergiodj+buildbot
2019-04-01 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 10:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 34ef62f46541d423b991850b2b7ba34d8749a6ba ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 34ef62f46541d423b991850b2b7ba34d8749a6ba
[GAS, Arm] CLI with architecture sensitive extensions
This patch adds a new framework to add architecture sensitive extensions, like
GCC does. This patch also implements all architecture extensions currently
available in GCC.
This framework works as follows. To enable architecture sensitive extensions
for a particular architecture, that architecture must contain an ARM_ARCH_OPT2
entry in the 'arm_archs' table. All fields here are the same as previous, with
the addition of a new extra field at the end to <name> it's extension table.
This <name>, corresponds to a <name>_ext_table of type 'struct arm_ext_table'.
This struct can be filled with three types of entries:
ARM_ADD (string <ext>, arm_feature_set <enable_bits>), which means +<ext> will
enable <enable_bits>
ARM_REMOVE (string <ext>, arm_feature_set <disable_bits>), which means
+no<ext> will disable <disable_bits>
ARM_EXT (string <ext>, arm_feature_set <enable_bits>, arm_feature_set
<disable_bits>), which means +<ext> will enable <enable_bits> and +no<ext>
will disable <disable_bits> (this is to be used instead of adding an
ARM_ADD and ARM_REMOVE for the same <ext>)
This patch does not disable the use of the old extensions, even if some of them
are duplicated in the new tables. This is a "in-between-step" as we may want to
deprecate the old table of extensions in later patches. For now, GAS will first
look for the +<ext> or +no<ext> in the new table and if no entry is found it
will continue searching in the old table, following old behaviour. If only an
ARM_ADD or an ARM_REMOVE is defined for <ext> and +no<ext> or +<ext> resp. is
used then it also continues to search the old table for it.
A couple of caveats:
- This patch does not enable the use of these architecture extensions with the
'.arch_extension' directive. This is future work that I will tend to later.
- This patch does not enable the use of these architecture extensions with the
-mcpu option. This is future work that I will tend to later.
- This patch does not change the current behaviour when combining an
architecture extension and using -mfpu on the command-line. The current
behaviour of GAS is to stage the union of feature bits enabled by both -march
and -mfpu. GCC behaves differently here, so this is something we may want to
revisit on a later date.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Destroy allocated values when exiting GDB
@ 2019-04-01 15:18 sergiodj+buildbot
2019-04-01 15:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 15:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d1447e09d4aa673826039321163b5a684e8e043 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 9d1447e09d4aa673826039321163b5a684e8e043
Destroy allocated values when exiting GDB
When the user exits GDB, we might still have some allocated values in
the chain, which, in specific scenarios, can cause problems when GDB
attempts to destroy them in "quit_force". For example, see the bug
reported at:
https://bugzilla.redhat.com/show_bug.cgi?id=1690120
And the thread starting at:
https://sourceware.org/ml/gdb-patches/2019-03/msg00475.html
Message-ID: <87r2azkhmq.fsf@redhat.com>
In order to avoid that, and to be more aware of our allocated
resources, this commit implements a new function "finalize_values" and
calls it from inside "quit_force".
Tested by the BuildBot.
2019-04-01 Sergio Durigan Junior <sergiodj@redhat.com>
Pedro Alves <palves@redhat.com>
* top.c (quit_force): Call 'finalize_values'.
* value.c (finalize_values): New function.
* value.h (finalize_values): Declare.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Handle DW_AT_ranges when reading partial symtabs
@ 2019-04-01 17:31 sergiodj+buildbot
2019-04-01 18:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 17:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 05caa1d236440cd8967f8804be8dbcf27fb490b6 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 05caa1d236440cd8967f8804be8dbcf27fb490b6
Handle DW_AT_ranges when reading partial symtabs
add_partial_subprogram does not handle DW_AT_ranges, while the full
symtab reader does. This can lead to discrepancies where a function
is not put into a partial symtab, and so is not available to "break"
and the like -- but is available if the full symtab has somehow been
read.
This patch fixes the bug by arranging to read DW_AT_ranges when
reading partial DIEs.
This is PR symtab/23331.
The new test case is derived from dw2-ranges-func.exp, which is why I
kept the copyright dates.
gdb/ChangeLog
2019-04-01 Tom Tromey <tromey@adacore.com>
PR symtab/23331:
* dwarf2read.c (partial_die_info::read): Handle DW_AT_ranges.
gdb/testsuite/ChangeLog
2019-04-01 Tom Tromey <tromey@adacore.com>
PR symtab/23331:
* gdb.dwarf2/dw2-ranges-main.c: New file.
* gdb.dwarf2/dw2-ranges-psym.c: New file.
* gdb.dwarf2/dw2-ranges-psym.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix internal error and improve 'set debug infrun 1'/target wait kind trace
@ 2019-04-01 19:53 sergiodj+buildbot
2019-04-01 19:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 19:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c29705b71a8ec966478c0dc4712194a95291c6de ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: c29705b71a8ec966478c0dc4712194a95291c6de
Fix internal error and improve 'set debug infrun 1'/target wait kind trace
The test gdb.threads/watchthreads-reorder.exp verifies that the
'set debug infrun 1' debug output does not crash GDB.
Under high load, the test can still cause a GDB internal error (see details
below).
This patch fixes this crash, and improves/factorises some wait kind traces.
Tested on debian/amd64 + run one test with 'set debug infrun 1'.
Changes compared to the first version:
* Handles the suggestions of Kevin to trace the relevant elements
of the wait status (this is done by calling target_waitstatus_to_string).
* Some other changes to factorise wait status tracing.
Note that using target_waitstatus_to_string instead of the 'locally printed'
status kind strings means that debug trace that was using strings such as:
"EXITED" or "TARGET_WAITKIND_EXITED"
will now use what is printed by target_waitstatus_to_string e.g.
"exited".
gdb/ChangeLog
2019-04-01 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* infrun.c (stop_all_threads): If debug_infrun, always
trace the wait status after wait_one, using
target_waitstatus_to_string and target_pid_to_str.
(handle_inferior_event): Replace various trace of
wait status kind by a single trace.
* gdb/gnu-nat.c (gnu_nat_target::wait): Replace local
wait status kind image by target_waitstatus_to_string.
* target/waitstatus.c (target_waitstatus_to_string): Fix
obsolete comment.
(top-gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007f3d54a0642a in __GI_abort () at abort.c:89
#2 0x0000555c24c60e66 in dump_core () at ../../fixleaks/gdb/utils.c:201
#3 0x0000555c24c63d49 in internal_vproblem(internal_problem *, const char *, int, const char *, typedef __va_list_tag __va_list_tag *) (problem=problem@entry=0x555c25338d40 <internal_error_problem>, file=<optimized out>, line=287,
fmt=<optimized out>, ap=<optimized out>) at ../../fixleaks/gdb/utils.c:411
#4 0x0000555c24c63eab in internal_verror (file=<optimized out>, line=<optimized out>, fmt=<optimized out>,
ap=<optimized out>) at ../../fixleaks/gdb/utils.c:436
#5 0x0000555c249e8c22 in internal_error (file=file@entry=0x555c24e0f2ad "../../fixleaks/gdb/inferior.c",
line=line@entry=287, fmt=<optimized out>) at ../../fixleaks/gdb/common/errors.c:55
#6 0x0000555c247d3f5c in find_inferior_pid (pid=<optimized out>) at ../../fixleaks/gdb/inferior.c:287
#7 0x0000555c24ad2248 in find_inferior_pid (pid=<optimized out>) at ../../fixleaks/gdb/inferior.c:302
#8 find_inferior_ptid (ptid=...) at ../../fixleaks/gdb/inferior.c:301
#9 0x0000555c24c35f25 in find_thread_ptid (ptid=...) at ../../fixleaks/gdb/thread.c:522
#10 0x0000555c24b0ab4d in thread_db_target::pid_to_str[abi:cxx11](ptid_t) (
this=0x555c2532e3e0 <the_thread_db_target>, ptid=...) at ../../fixleaks/gdb/linux-thread-db.c:1637
#11 0x0000555c24c2f420 in target_pid_to_str[abi:cxx11](ptid_t) (ptid=...) at ../../fixleaks/gdb/target.c:2083
#12 0x0000555c24ad9cab in stop_all_threads () at ../../fixleaks/gdb/infrun.c:4373
#13 0x0000555c24ada00f in stop_waiting (ecs=<optimized out>) at ../../fixleaks/gdb/infrun.c:7464
#14 0x0000555c24adc401 in process_event_stop_test (ecs=ecs@entry=0x7ffc9402d9d0) at ../../fixleaks/gdb/infrun.c:6181
...
(top-gdb) fr 12
#12 0x0000555c24ad9cab in stop_all_threads () at ../../fixleaks/gdb/infrun.c:4373
(top-gdb) p event_ptid
$5 = {m_pid = 25419, m_lwp = 25427, m_tid = 0}
(top-gdb) p ptid
$6 = {m_pid = 0, m_lwp = 0, m_tid = 0}
(top-gdb) p ws
$7 = {kind = TARGET_WAITKIND_THREAD_EXITED, value = {integer = 0, sig = GDB_SIGNAL_0, related_pid = {m_pid = 0,
m_lwp = 0, m_tid = 0}, execd_pathname = 0x0, syscall_number = 0}}
(top-gdb)
The gdb.log corresponding to the above crash is:
(gdb) PASS: gdb.threads/watchthreads-reorder.exp: reorder1: set debug infrun 1
continue
Continuing.
infrun: clear_proceed_status_thread (Thread 0x7ffff7fcfb40 (LWP 25419))
infrun: clear_proceed_status_thread (Thread 0x7ffff7310700 (LWP 25427))
infrun: clear_proceed_status_thread (Thread 0x7ffff6b0f700 (LWP 25428))
infrun: proceed (addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT)
infrun: proceed: resuming Thread 0x7ffff7fcfb40 (LWP 25419)
infrun: resume (step=0, signal=GDB_SIGNAL_0), trap_expected=0, current thread [Thread 0x7ffff7fcfb40 (LWP 25419)] at 0x7ffff7344317
infrun: infrun_async(1)
infrun: prepare_to_wait
infrun: proceed: resuming Thread 0x7ffff7310700 (LWP 25427)
infrun: resume (step=0, signal=GDB_SIGNAL_0), trap_expected=0, current thread [Thread 0x7ffff7310700 (LWP 25427)] at 0x5555555553d7
infrun: prepare_to_wait
infrun: proceed: resuming Thread 0x7ffff6b0f700 (LWP 25428)
infrun: resume (step=0, signal=GDB_SIGNAL_0), trap_expected=0, current thread [Thread 0x7ffff6b0f700 (LWP 25428)] at 0x5555555554c8
infrun: prepare_to_wait
infrun: target_wait (-1.0.0, status) =
infrun: -1.0.0 [process -1],
infrun: status->kind = ignore
infrun: TARGET_WAITKIND_IGNORE
infrun: prepare_to_wait
Joining the threads.
[Thread 0x7ffff6b0f700 (LWP 25428) exited]
infrun: target_wait (-1.0.0, status) =
infrun: -1.0.0 [process -1],
infrun: status->kind = ignore
infrun: TARGET_WAITKIND_IGNORE
infrun: prepare_to_wait
infrun: target_wait (-1.0.0, status) =
infrun: 25419.25419.0 [Thread 0x7ffff7fcfb40 (LWP 25419)],
infrun: status->kind = stopped, signal = GDB_SIGNAL_TRAP
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x555555555e50
infrun: context switch
infrun: Switching context from Thread 0x7ffff6b0f700 (LWP 25428) to Thread 0x7ffff7fcfb40 (LWP 25419)
infrun: BPSTAT_WHAT_STOP_NOISY
infrun: stop_waiting
infrun: stop_all_threads
infrun: stop_all_threads, pass=0, iterations=0
infrun: Thread 0x7ffff7fcfb40 (LWP 25419) not executing
infrun: Thread 0x7ffff7310700 (LWP 25427) executing, need stop
[Thread 0x7ffff7310700 (LWP 25427) exited]
infrun: target_wait (-1.0.0, status) =
infrun: 25419.25427.0 [LWP 25427],
infrun: status->kind = thread exited, status = 0
infrun: infrun_async(0)
../../fixleaks/gdb/inferior.c:287: internal-error: inferior* find_inferior_pid(int): Assertion `pid != 0' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) FAIL: gdb.threads/watchthreads-reorder.exp: reorder1: continue to breakpoint: break-at-exit (GDB internal error)
Resyncing due to internal error.
n
infrun: infrun_async(1)
This is a bug, please report it. For instructions, see:
<http://www.gnu.org/software/gdb/bugs/>.
infrun: infrun_async(0)
../../fixleaks/gdb/inferior.c:287: internal-error: inferior* find_inferior_pid(int): Assertion `pid != 0' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Create a core file of GDB? (y or n) y
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Add $_cimag and $_creal internal functions
@ 2019-04-01 21:35 sergiodj+buildbot
2019-04-01 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 21:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8bdc16587e26100282094c8eaa8e83180ba57afd ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8bdc16587e26100282094c8eaa8e83180ba57afd
gdb: Add $_cimag and $_creal internal functions
Add two new internal functions $_cimag and $_creal that extract the
imaginary and real parts of a complex value.
These internal functions can take a complex value of any type 'float
complex', 'double complex', or 'long double complex' and return a
suitable floating point value 'float', 'double', or 'long double'.
So we can now do this:
(gdb) p z1
$1 = 1.5 + 4.5 * I
(gdb) p $_cimag (z1)
$4 = 4.5
(gdb) p $_creal (z1)
$4 = 1.5
The components of a complex value are not strictly named types in
DWARF, as the complex type is itself the base type. However, once we
are able to extract the components it makes sense to be able to ask
what the type of these components is and get a sensible answer back,
rather than the error we would currently get. Currently GDB says:
(gdb) ptype z1
type = complex double
(gdb) p $_cimag (z1)
$4 = 4.5
(gdb) ptype $
type = <invalid type code 9>
With the changes in dwarf2read.c, GDB now says:
(gdb) ptype z1
type = complex double
(gdb) p $_cimag (z1)
$4 = 4.5
(gdb) ptype $
type = double
Which seems to make more sense.
gdb/ChangeLog:
* NEWS: Mention new internal functions.
* dwarf2read.c (dwarf2_init_complex_target_type): New function.
(read_base_type): Use dwarf2_init_complex_target_type.
* value.c (creal_internal_fn): New function.
(cimag_internal_fn): New function.
(_initialize_values): Register new internal functions.
gdb/doc/ChangeLog:
* gdb.texinfo (Convenience Funs): Document '$_creal' and
'$_cimag'.
gdb/testsuite/ChangeLog:
* gdb.base/complex-parts.c: New file.
* gdb.base/complex-parts.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Handle internal function calls
@ 2019-04-01 21:51 sergiodj+buildbot
2019-04-01 21:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 21:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d7df654955c2423190b05b2507caf624ce3d65bc ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d7df654955c2423190b05b2507caf624ce3d65bc
gdb/fortran: Handle internal function calls
If an convenience function is defined in python (or guile), then
currently this will not work in Fortran, instead the user is given
this message:
(gdb) set language fortran
(gdb) p $myfunc (3)
Cannot perform substring on this type
Compare this to C:
(gdb) set language c
(gdb) p $myfunc (3)
$1 = 1
After this patch we see the same behaviour in both C and Fortran.
I've extended the test to check that all languages can call the
convenience functions - only Fortran was broken.
When calling convenience functions in Fortran we don't need to perform
the same value preparation (passing by pointer) that we would for
calling a native function - passing the real value is fine.
gdb/ChangeLog:
* eval.c (evaluate_subexp_standard): Handle internal functions
during Fortran function call handling.
gdb/testsuite/ChangeLog:
* gdb.python/py-function.exp: Check calling helper function from
all languages.
* lib/gdb.exp (gdb_supported_languages): New proc.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Don't check ABI flags if no code section.
@ 2019-04-02 20:51 sergiodj+buildbot
2019-04-02 20:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-02 20:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 87f98bacb76001157d5a26555a41738ac3841a56 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 87f98bacb76001157d5a26555a41738ac3841a56
RISC-V: Don't check ABI flags if no code section.
This fixes a glib build failure reported in PR 24389. Using ld -b binary
creates an object file with no elf header flags set which has the wrong ABI
info for riscv64-linux. But the file also has no code sections, so I added
code borrowed from the arm port that only checks the ELF header ABI flags if
there is a code section.
bfd/
PR 24389
* elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Move read of
ELF header flags to after check for ELF object file. Loop through
sections looking for code sections, if none, then skip ABI checks.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call
@ 2019-04-04 23:54 sergiodj+buildbot
2019-04-05 0:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-04 23:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e9f8e3f109d57c119eaaa1e56378926f7f20863f ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: e9f8e3f109d57c119eaaa1e56378926f7f20863f
[GDB, Hurd] Fix build; 'target_waitstatus_to_string' call
Recent commit c29705b71a8ec966478c0dc4712194a95291c6de removed an incomplete
local implementation in favor of 'target_waitstatus_to_string' (thanks!), but
introduced a small typing error:
In file included from [...]/gdb/gnu-nat.c:24:0:
[...]/gdb/gnu-nat.c: In member function 'virtual ptid_t gnu_nat_target::wait(ptid_t, target_waitstatus*, int)':
[...]/gdb/gnu-nat.c:1652:43: error: cannot convert 'target_waitstatus**' to 'const target_waitstatus*' for argument '1' to 'std::__cxx11::string target_waitstatus_to_string(const target_waitstatus*)'
target_waitstatus_to_string (&status).c_str ());
^
[...]/gdb/gnu-nat.h:119:32: note: in definition of macro 'debug'
__FILE__ , __LINE__ , ##args); } while (0)
^~~~
[...]/gdb/gnu-nat.c:1650:3: note: in expansion of macro 'inf_debug'
inf_debug (inf, "returning ptid = %s, %s",
^~~~~~~~~
gdb/
* gnu-nat.c (gnu_nat_target::wait): Fix
target_waitstatus_to_string call.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add extended mnemonics for bctar. Fix setting of 'at' branch hints.
@ 2019-04-05 2:09 sergiodj+buildbot
2019-04-05 0:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 2:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aae9718e4d4e8d01dcee22684e82b000203d3e52 ***
Author: Peter Bergner <bergner@vnet.ibm.com>
Branch: master
Commit: aae9718e4d4e8d01dcee22684e82b000203d3e52
Add extended mnemonics for bctar. Fix setting of 'at' branch hints.
opcodes/
PR gas/24349
* ppc-opc.c (valid_bo_pre_v2): Add comments.
(valid_bo_post_v2): Add support for 'at' branch hints.
(insert_bo): Only error on branch on ctr.
(get_bo_hint_mask): New function.
(insert_boe): Add new 'branch_taken' formal argument. Add support
for inserting 'at' branch hints.
(extract_boe): Add new 'branch_taken' formal argument. Add support
for extracting 'at' branch hints.
(insert_bom, extract_bom, insert_bop, extract_bop): New functions.
(BOE): Delete operand.
(BOM, BOP): New operands.
(RM): Update value.
(XLYLK, XLYLK_MASK, XLYBB_MASK): Delete.
(powerpc_opcodes) <bc-, bcl-, bca-, bcla-, bclr-, bclrl-, bcctr-,
bcctrl-, bctar-, bctarl->: Replace BOE with BOM.
(powerpc_opcodes) <bc+, bcl+, bca+, bcla+, bclr+, bclrl+, bcctr+,
bcctrl+, bctar+, bctarl+>: Replace BOE with BOP.
<bdnztar, bdnztarl, bdztar, bdztarl, btar, btarl, bdnztar-, bdnztarl-,
bdnztar+, bdnztarl+, bdztar-, bdztarl-, bdztar+, bdztarl+, bgetar,
bnltar, bgetarl, bnltarl, bletar, bngtar, bletarl, bngtarl, bnetar,
bnetarl, bnstar, bnutar, bnstarl, bnutarl, bgetar-, bnltar-, bgetarl-,
bnltarl-, bletar-, bngtar-, bletarl-, bngtarl-, bnetar-, bnetarl-,
bnstar-, bnutar-, bnstarl-, bnutarl-, bgetar+, bnltar+, bgetarl+,
bnltarl+, bletar+, bngtar+, bletarl+, bngtarl+, bnetar+, bnetarl+,
bnstar+, bnutar+, bnstarl+, bnutarl+, blttar, blttarl, bgttar, bgttarl,
beqtar, beqtarl, bsotar, buntar, bsotarl, buntarl, blttar-, blttarl-,
bgttar-, bgttarl-, beqtar-, beqtarl-, bsotar-, buntar-, bsotarl-,
buntarl-, blttar+, blttarl+, bgttar+, bgttarl+, beqtar+, beqtarl+,
bsotar+, buntar+, bsotarl+, buntarl+, bdnzftar, bdnzftarl, bdzftar,
bdzftarl, bftar, bftarl, bftar-, bftarl-, bftar+, bftarl+, bdnzttar,
bdnzttarl, bdzttar, bdzttarl, bttar, bttarl, bttar-, bttarl-, bttar+,
bttarl+>: New extended mnemonics.
gas/
PR gas/24349
* testsuite/gas/ppc/power8.s: (bdnztar, bdnztarl, bdztar, bdztarl,
btar, btarl, bdnztar-, bdnztarl-, bdnztar+, bdnztarl+, bdztar-,
bdztarl-, bdztar+, bdztarl+, bgetar, bnltar, bgetarl, bnltarl,
bletar, bngtar, bletarl, bngtarl, bnetar, bnetarl, bnstar, bnutar,
bnstarl, bnutarl, bgetar-, bnltar-, bgetarl-, bnltarl-, bletar-,
bngtar-, bletarl-, bngtarl-, bnetar-, bnetarl-, bnstar-, bnutar-,
bnstarl-, bnutarl-, bgetar+, bnltar+, bgetarl+, bnltarl+, bletar+,
bngtar+, bletarl+, bngtarl+, bnetar+, bnetarl+, bnstar+, bnutar+,
bnstarl+, bnutarl+, blttar, blttarl, bgttar, bgttarl, beqtar,
beqtarl, bsotar, buntar, bsotarl, buntarl, blttar-, blttarl-,
bgttar-, bgttarl-, beqtar-, beqtarl-, bsotar-, buntar-, bsotarl-,
buntarl-, blttar+, blttarl+, bgttar+, bgttarl+, beqtar+, beqtarl+,
bsotar+, buntar+, bsotarl+, buntarl+, bdnzftar, bdnzftarl, bdzftar,
bdzftarl, bftar, bftarl, bftar-, bftarl-, bftar+, bftarl+, bdnzttar,
bdnzttarl, bdzttar, bdzttarl, bttar, bttarl, bttar-, bttarl-, bttar+,
bttarl+): Add tests of extended mnemonics.
* testsuite/gas/ppc/power8.d: Likewise. Update previous bctar tests
to expect new extended mnemonics.
* testsuite/gas/ppc/a2.s: <bc, bc-, bc+, bcl, bcl-, bcl+>: Update test
to not use illegal BO value. Use a more convenient BI value.
* testsuite/gas/ppc/a2.d: Update tests for new expect output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces
@ 2019-04-05 2:09 sergiodj+buildbot
2019-04-05 2:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 2:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f
PowerPC disassembler: Don't emit trailing spaces
When an instruction has operands, the PowerPC disassembler prints
spaces after the opcode so as to line up operands. If the operands
are all optional and all default value, then no operands are printed,
leaving trailing spaces. This patch fixes that.
opcodes/
* ppc-dis.c (print_insn_powerpc): Delay printing spaces after
opcode until first operand is output.
gas/
* testsuite/gas/ppc/476.d: Remove trailing spaces.
* testsuite/gas/ppc/a2.d: Likewise.
* testsuite/gas/ppc/booke.d: Likewise.
* testsuite/gas/ppc/booke_xcoff.d: Likewise.
* testsuite/gas/ppc/e500.d: Likewise.
* testsuite/gas/ppc/e500mc.d: Likewise.
* testsuite/gas/ppc/e6500.d: Likewise.
* testsuite/gas/ppc/htm.d: Likewise.
* testsuite/gas/ppc/power6.d: Likewise.
* testsuite/gas/ppc/power8.d: Likewise.
* testsuite/gas/ppc/power9.d: Likewise.
* testsuite/gas/ppc/vle.d: Likewise.
ld/
* testsuite/ld-powerpc/tlsexe32.d: Remove trailing spaces.
* testsuite/ld-powerpc/tlsopt5.d: Likewise.
* testsuite/ld-powerpc/tlsopt5_32.d: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints
@ 2019-04-05 2:26 sergiodj+buildbot
2019-04-05 2:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 2:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66e85460855837af3a3b0224f7846c436cc7d1e0 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 66e85460855837af3a3b0224f7846c436cc7d1e0
PowerPC bc extended branch mnemonics and "y" hints
This patch fixes a problem with disassembly of branch instructions
for processors complying with PowerPC ISA versions prior to version
2.0, ie. those that use "y" bit branch taken hints. Many of the
extended bcctr and bclr mnemonics that should have disassembled with a
"-" suffix, ie. not taken, did not display the "-" due to the ordering
in powerpc_opcodes. I believe it's been that way from the original
85dcf36d72b commit of ppc-opc.c.
I've also added a BH field (optional) to a few opcodes. This gives
better disassembly in raw mode, showing the branch taken hint in the
mnemonic as is done for bc. It would be reasonable to add a BH
field to all bcctr, bclr, and bctar extended mnemonics but that runs
into a small difficulty: Currently we print all or none of the
optional operands. That means for example that "bgectr cr2" would
display as "bgectr cr2,0" if a BH field is added to bgectr.
* ppc-opc.c (XLBH_MASK): Subtract off BH field from BB_MASK.
(powerpc_opcodes): Reorder bcctr and bclr extended mnemonics
to favour printing of "-" branch hint when using the "y" bit.
Allow BH field on bc{ctr,lr,tar}{,l}{-,+}.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make increase_expout_size static
@ 2019-04-05 2:42 sergiodj+buildbot
2019-04-05 3:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 2:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8
Make increase_expout_size static
increase_expout_size is only called from parse.c, and probably only
should be. This makes it "static". Tested by rebuilding.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* parser-defs.h (increase_expout_size): Don't declare.
* parse.c (increase_expout_size): Now static.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Turn parse_gdbarch into a method
@ 2019-04-05 3:47 sergiodj+buildbot
2019-04-05 3:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 3:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fa9f5be6830e9245ee1ad1eab9725cc039d45d07 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fa9f5be6830e9245ee1ad1eab9725cc039d45d07
Turn parse_gdbarch into a method
This changes parse_gdbarch into a method of parser_state. This patch
was written by a script.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y: Replace "parse_gdbarch" with method call.
* parse.c (write_dollar_variable, insert_type_address_space):
Replace "parse_gdbarch" with method call.
* p-exp.y (parse_type, yylex): Replace "parse_gdbarch" with method
call.
* objc-lang.c (end_msglist): Replace "parse_gdbarch" with method
call.
* m2-exp.y (parse_type, parse_m2_type, yylex): Replace
"parse_gdbarch" with method call.
* go-exp.y (parse_type, classify_name): Replace "parse_gdbarch"
with method call.
* f-exp.y (parse_type, parse_f_type, yylex): Replace
"parse_gdbarch" with method call.
* d-exp.y (parse_type, parse_d_type, lex_one_token): Replace
"parse_gdbarch" with method call.
* c-exp.y (parse_type, parse_number, classify_name): Replace
"parse_gdbarch" with method call.
* ada-lex.l: Replace "parse_gdbarch" with method call.
* ada-exp.y (parse_type, find_primitive_type, type_char)
(type_system_address): Replace "parse_gdbarch" with method call.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make base class for parser_state
@ 2019-04-05 3:47 sergiodj+buildbot
2019-04-05 4:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 3:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 37eedb39824dc26c82a92b5515a352d7de0c9b5b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 37eedb39824dc26c82a92b5515a352d7de0c9b5b
Make base class for parser_state
This makes a new base class, expr_builder, for parser_state. This
separates the state needed to construct an expression from the state
needed by the parsers.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* gdbarch.h, gdbarch.c: Rebuild.
* gdbarch.sh (dtrace_parse_probe_argument): Change type.
* stap-probe.h:
(struct stap_parse_info): Replace "parser_state" with
"expr_builder".
* parser-defs.h (struct expr_builder): Rename from "parser_state".
(parser_state): New class.
* parse.c (expr_builder): Rename.
(expr_builder::release): Rename.
(write_exp_elt, write_exp_elt_opcode, write_exp_elt_sym)
(write_exp_elt_msym, write_exp_elt_block, write_exp_elt_objfile)
(write_exp_elt_longcst, write_exp_elt_floatcst)
(write_exp_elt_type, write_exp_elt_intern, write_exp_string)
(write_exp_string_vector, write_exp_bitstring)
(write_exp_msymbol, mark_struct_expression)
(write_dollar_variable)
(insert_type_address_space, increase_expout_size): Replace
"parser_state" with "expr_builder".
* dtrace-probe.c: Replace "parser_state" with "expr_builder".
* amd64-linux-tdep.c (amd64_dtrace_parse_probe_argument): Replace
"parser_state" with "expr_builder".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move expression_context_* globals to parser_state
@ 2019-04-05 4:17 sergiodj+buildbot
2019-04-05 4:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 4:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1e58a4a4db997cf09315c22f3da725d1da7f9ee7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1e58a4a4db997cf09315c22f3da725d1da7f9ee7
Move expression_context_* globals to parser_state
This moves the expression_context_block and expression_context_pc
globals to be members of parser_state and updates the parsers.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y (rust_parser::crate_name, rust_parser::super_name)
(rust_parser::convert_ast_to_type)
(rust_parser::convert_ast_to_expression, rust_lex_tests): Update.
* parser-defs.h (struct parser_state) <parser_state>: Add
parameters. Initialize new members.
<expression_context_block, expression_context_pc>: New members.
* parse.c (expression_context_block, expression_context_pc):
Remove globals.
(parse_exp_in_context): Update.
* p-exp.y: Update all rules.
(yylex): Update.
* m2-exp.y: Update all rules.
(yylex): Update.
* go-exp.y (yylex): Update.
* f-exp.y (yylex): Update.
* d-exp.y: Update all rules.
(yylex): Update.
* c-exp.y: Update all rules.
(lex_one_token, classify_name, yylex, c_parse): Update.
* ada-exp.y (write_var_or_type, write_name_assoc): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove paren_depth global
@ 2019-04-05 4:17 sergiodj+buildbot
2019-04-05 4:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 4:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696
Remove paren_depth global
This removes the "paren_depth" global. In most cases, it is made into
a static global in a given parser. I consider this a slight
improvement, because it makes it clear that the variable isn't used
for communication between different modules of gdb. The one exception
is the Rust parser, which already incorporates all local state into a
transient object; in this case the parser depth is now a member.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y (struct rust_parser) <paren_depth>: New member.
(rustyylex, rust_lex_test_init, rust_lex_test_one)
(rust_lex_test_sequence, rust_lex_test_push_back): Update.
* parser-defs.h (paren_depth): Don't declare.
* parse.c (paren_depth): Remove global.
(parse_exp_in_context): Update.
* p-exp.y (paren_depth): New global.
(pascal_parse): Initialize it.
* m2-exp.y (paren_depth): New global.
(m2_parse): Initialize it.
* go-exp.y (paren_depth): New global.
(go_parse): Initialize it.
* f-exp.y (paren_depth): New global.
(f_parse): Initialize it.
* d-exp.y (paren_depth): New global.
(d_parse): Initialize it.
* c-exp.y (paren_depth): New global.
(c_parse): Initialize it.
* ada-lex.l (paren_depth): New global.
(lexer_init): Initialize it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move comma_terminates global to parser_state
@ 2019-04-05 4:32 sergiodj+buildbot
2019-04-05 4:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 4:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8621b685bfdcb8773b8177fb2b89e45499902868 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8621b685bfdcb8773b8177fb2b89e45499902868
Move comma_terminates global to parser_state
This moves the comma_terminates global to parser_state.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y (rustyylex, rust_lex_tests): Update.
* parser-defs.h (struct parser_state) <parser_state>: Add new
parameter.
<comma_terminates>: New member.
(comma_terminates): Don't declare global.
* parse.c (comma_terminates): Remove global.
(parse_exp_in_context): Update.
* p-exp.y (yylex): Update.
* m2-exp.y (yylex): Update.
* go-exp.y (lex_one_token): Update.
* f-exp.y (yylex): Update.
* d-exp.y (lex_one_token): Update.
* c-exp.y (lex_one_token): Update.
* ada-lex.l: Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move lexptr and prev_lexptr to parser_state
@ 2019-04-05 4:48 sergiodj+buildbot
2019-04-05 5:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 4:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5776fca307b8af3d852525b77e9b917a9aa97370 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5776fca307b8af3d852525b77e9b917a9aa97370
Move lexptr and prev_lexptr to parser_state
This removes the lexptr and prev_lexptr globals, in favor of members
of parser_state. prev_lexptr could be isolated to each parser, but
since every parser uses it, that did not seem necessary.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y (struct rust_parser) <lex_hex, lex_escape,
lex_operator, push_back>: New methods.
Update all rules.
(rust_parser::lex_hex, lex_escape): Rename and update.
(rust_parser::lex_string, rust_parser::lex_identifier): Update.
(rust_parser::lex_operator): Rename and update.
(rust_parser::lex_number, rustyylex, rustyyerror)
(rust_lex_test_init, rust_lex_test_sequence)
(rust_lex_test_push_back, rust_lex_tests): Update.
* parser-defs.h (struct parser_state) <parser_state>: Add "input"
parameter.
<lexptr, prev_lexptr>: New members.
(lexptr, prev_lexptr): Don't declare.
* parse.c (lexptr, prev_lexptr): Remove globals.
(parse_exp_in_context): Update.
* p-exp.y (yylex, yyerror): Update.
* m2-exp.y (parse_number, yylex, yyerror): Update.
* go-exp.y (lex_one_token, yyerror): Update.
* f-exp.y (match_string_literal, yylex, yyerror): Update.
* d-exp.y (lex_one_token, yyerror): Update.
* c-exp.y (scan_macro_expansion, finished_macro_expansion)
(lex_one_token, yyerror): Update.
* ada-lex.l (YY_INPUT): Update.
(rewind_to_char): Update.
* ada-exp.y (yyerror): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move completion parsing to parser_state
@ 2019-04-05 5:20 sergiodj+buildbot
2019-04-05 5:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 5:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2a61252965c91540133bece7deb92eb22e3cf929 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2a61252965c91540133bece7deb92eb22e3cf929
Move completion parsing to parser_state
This moves the globals and functions related to parsing for completion
to parser_state. A new structure is introduced in order to return
completion results from the parse back to
parse_expression_for_completion.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* rust-exp.y (rust_parser::lex_identifier, rustyylex)
(rust_parser::convert_ast_to_expression, rust_parse)
(rust_lex_test_completion, rust_lex_tests): Update.
* parser-defs.h (struct expr_completion_state): New.
(struct parser_state) <parser_state>: Add completion parameter.
<mark_struct_expression, mark_completion_tag>: New methods.
<parse_completion, m_completion_state>: New members.
(prefixify_expression, null_post_parser): Update.
(mark_struct_expression, mark_completion_tag): Don't declare.
* parse.c (parse_completion, expout_last_struct)
(expout_tag_completion_type, expout_completion_name): Remove
globals.
(parser_state::mark_struct_expression)
(parser_state::mark_completion_tag): Now methods.
(prefixify_expression): Add last_struct parameter.
(prefixify_subexp): Likewise.
(parse_exp_1): Update.
(parse_exp_in_context): Add cstate parameter. Update.
(parse_expression_for_completion): Create an
expr_completion_state.
(null_post_parser): Add "completion" parameter.
* p-exp.y: Update rules.
(yylex): Update.
* language.h (struct language_defn) <la_post_parser>: Add
"completing" parameter.
* go-exp.y: Update rules.
(lex_one_token): Update.
* expression.h (parse_completion): Don't declare.
* d-exp.y: Update rules.
(lex_one_token): Update rules.
* c-exp.y: Update rules.
(lex_one_token): Update.
* ada-lang.c (resolve): Add "parse_completion" parameter.
(resolve_subexp): Likewise.
(ada_resolve_function): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move innermost_block_tracker global to parse_state
@ 2019-04-05 5:50 sergiodj+buildbot
2019-04-05 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 5:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 699bd4cfa8895d0767d491a3e44ac09d3f4d1801 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 699bd4cfa8895d0767d491a3e44ac09d3f4d1801
Move innermost_block_tracker global to parse_state
This changes the parsing API so that callers that are interested in
tracking the innermost block must instantiate an
innermost_block_tracker and pass it in. Then, a pointer to this
object is stored in the parser_state.
2019-04-04 Tom Tromey <tom@tromey.com>
* varobj.c (varobj_create): Update.
* rust-exp.y (struct rust_parser) <update_innermost_block,
lookup_symbol>: New methods.
(rust_parser::update_innermost_block, rust_parser::lookup_symbol):
Rename.
(rust_parser::rust_lookup_type)
(rust_parser::convert_ast_to_expression, rust_lex_tests): Update.
* printcmd.c (display_command, do_one_display): Update.
* parser-defs.h (struct parser_state) <parser_state>: Add
"tracker" parameter.
(block_tracker): New member.
(class innermost_block_tracker) <innermost_block_tracker>: Add
"types" parameter.
<reset>: Remove method.
(innermost_block): Don't declare.
(null_post_parser): Update.
* parse.c (innermost_block): Remove global.
(write_dollar_variable): Update.
(parse_exp_1, parse_exp_in_context): Add "tracker" parameter.
Remove "tracker_types" parameter.
(parse_expression): Add "tracker" parameter.
(parse_expression_for_completion): Update.
(null_post_parser): Add "tracker" parameter.
* p-exp.y: Update rules.
* m2-exp.y: Update rules.
* language.h (struct language_defn) <la_post_parser>: Add
"tracker" parameter.
* go-exp.y: Update rules.
* f-exp.y: Update rules.
* expression.h (parse_expression, parse_exp_1): Add "tracker"
parameter.
* d-exp.y: Update rules.
* c-exp.y: Update rules.
* breakpoint.c (set_breakpoint_condition): Create an
innermost_block_tracker.
(watch_command_1): Likewise.
* ada-lang.c (resolve): Add "tracker" parameter.
(resolve_subexp): Likewise.
* ada-exp.y (write_var_from_sym): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use linux_get_auxv to get AT_PHDR in the PPC stub
@ 2019-04-05 17:49 sergiodj+buildbot
2019-04-05 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-05 17:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0570503dd31bc20294e228339fcbdd39b19608cc ***
Author: Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
Branch: master
Commit: 0570503dd31bc20294e228339fcbdd39b19608cc
Use linux_get_auxv to get AT_PHDR in the PPC stub
This patch fixes a build error due to a call to ppc_get_auxv that was
left over after linux_get_hwcap and linux_get_hwcap2 were introduced
in:
974c89e0882ddb03e294eca76a9e3d3bef90eacf gdbserver: Add
linux_get_hwcap
Because the missing call fetched AT_PHDR and not AT_HWCAP,
linux_get_auxv is now visible.
This use also required ppc_get_auxv to return a status variable
indicating that the AT_PHDR entry was not found separately from the
actual value of of the auxv entry. Therefore, the new linux_get_auxv
function is changed to return a status variable and write the entry
value to a pointer passed as an argument.
Note that linux_get_hwcap and linux_get_hwcap2 still use the return
value as both an indicator of that the entry wasn't found and as the
actual value of the entry.
gdb/gdbserver/ChangeLog:
2019-04-05 Pedro Franco de Carvalho <pedromfc@linux.ibm.com>
* linux-low.c (linux_get_auxv): Remove static. Return auxv entry
value in argument pointer, return 1 if the entry is found and 0
otherwise. Move comment.
(linux_get_hwcap, linux_get_hwcap2): Use modified linux_get_auxv.
* linux-low.h (linux_get_auxv): Declare.
* linux-ppc-low.c (is_elfv2_inferior): Use linux_get_auxv.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Sort includes for files gdb/[a-f]*.[chyl].
@ 2019-04-06 4:55 sergiodj+buildbot
2019-04-06 1:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-06 4:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d55e5aa6b29906346c51ad00e6a9b112590aa294 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d55e5aa6b29906346c51ad00e6a9b112590aa294
Sort includes for files gdb/[a-f]*.[chyl].
This patch sorts the include files for the files [a-f]*.[chyl].
The patch was written by a script.
Tested by the buildbot.
I will follow up with patches to sort the remaining files, by sorting
a subset, testing them, and then checking them in.
gdb/ChangeLog
2019-04-05 Tom Tromey <tom@tromey.com>
* ft32-tdep.c: Sort headers.
* frv-tdep.c: Sort headers.
* frv-linux-tdep.c: Sort headers.
* frame.c: Sort headers.
* frame-unwind.c: Sort headers.
* frame-base.c: Sort headers.
* fork-child.c: Sort headers.
* findvar.c: Sort headers.
* findcmd.c: Sort headers.
* filesystem.c: Sort headers.
* filename-seen-cache.h: Sort headers.
* filename-seen-cache.c: Sort headers.
* fbsd-tdep.c: Sort headers.
* fbsd-nat.h: Sort headers.
* fbsd-nat.c: Sort headers.
* f-valprint.c: Sort headers.
* f-typeprint.c: Sort headers.
* f-lang.c: Sort headers.
* extension.h: Sort headers.
* extension.c: Sort headers.
* extension-priv.h: Sort headers.
* expprint.c: Sort headers.
* exec.h: Sort headers.
* exec.c: Sort headers.
* exceptions.c: Sort headers.
* event-top.c: Sort headers.
* event-loop.c: Sort headers.
* eval.c: Sort headers.
* elfread.c: Sort headers.
* dwarf2read.h: Sort headers.
* dwarf2read.c: Sort headers.
* dwarf2loc.c: Sort headers.
* dwarf2expr.h: Sort headers.
* dwarf2expr.c: Sort headers.
* dwarf2-frame.c: Sort headers.
* dwarf2-frame-tailcall.c: Sort headers.
* dwarf-index-write.h: Sort headers.
* dwarf-index-write.c: Sort headers.
* dwarf-index-common.c: Sort headers.
* dwarf-index-cache.h: Sort headers.
* dwarf-index-cache.c: Sort headers.
* dummy-frame.c: Sort headers.
* dtrace-probe.c: Sort headers.
* disasm.h: Sort headers.
* disasm.c: Sort headers.
* disasm-selftests.c: Sort headers.
* dictionary.c: Sort headers.
* dicos-tdep.c: Sort headers.
* demangle.c: Sort headers.
* dcache.h: Sort headers.
* dcache.c: Sort headers.
* darwin-nat.h: Sort headers.
* darwin-nat.c: Sort headers.
* darwin-nat-info.c: Sort headers.
* d-valprint.c: Sort headers.
* d-namespace.c: Sort headers.
* d-lang.c: Sort headers.
* ctf.c: Sort headers.
* csky-tdep.c: Sort headers.
* csky-linux-tdep.c: Sort headers.
* cris-tdep.c: Sort headers.
* cris-linux-tdep.c: Sort headers.
* cp-valprint.c: Sort headers.
* cp-support.c: Sort headers.
* cp-namespace.c: Sort headers.
* cp-abi.c: Sort headers.
* corelow.c: Sort headers.
* corefile.c: Sort headers.
* continuations.c: Sort headers.
* completer.h: Sort headers.
* completer.c: Sort headers.
* complaints.c: Sort headers.
* coffread.c: Sort headers.
* coff-pe-read.c: Sort headers.
* cli-out.h: Sort headers.
* cli-out.c: Sort headers.
* charset.c: Sort headers.
* c-varobj.c: Sort headers.
* c-valprint.c: Sort headers.
* c-typeprint.c: Sort headers.
* c-lang.c: Sort headers.
* buildsym.c: Sort headers.
* buildsym-legacy.c: Sort headers.
* build-id.h: Sort headers.
* build-id.c: Sort headers.
* btrace.c: Sort headers.
* bsd-uthread.c: Sort headers.
* breakpoint.h: Sort headers.
* breakpoint.c: Sort headers.
* break-catch-throw.c: Sort headers.
* break-catch-syscall.c: Sort headers.
* break-catch-sig.c: Sort headers.
* blockframe.c: Sort headers.
* block.c: Sort headers.
* bfin-tdep.c: Sort headers.
* bfin-linux-tdep.c: Sort headers.
* bfd-target.c: Sort headers.
* bcache.c: Sort headers.
* ax-general.c: Sort headers.
* ax-gdb.h: Sort headers.
* ax-gdb.c: Sort headers.
* avr-tdep.c: Sort headers.
* auxv.c: Sort headers.
* auto-load.c: Sort headers.
* arm-wince-tdep.c: Sort headers.
* arm-tdep.c: Sort headers.
* arm-symbian-tdep.c: Sort headers.
* arm-pikeos-tdep.c: Sort headers.
* arm-obsd-tdep.c: Sort headers.
* arm-nbsd-tdep.c: Sort headers.
* arm-nbsd-nat.c: Sort headers.
* arm-linux-tdep.c: Sort headers.
* arm-linux-nat.c: Sort headers.
* arm-fbsd-tdep.c: Sort headers.
* arm-fbsd-nat.c: Sort headers.
* arm-bsd-tdep.c: Sort headers.
* arch-utils.c: Sort headers.
* arc-tdep.c: Sort headers.
* arc-newlib-tdep.c: Sort headers.
* annotate.h: Sort headers.
* annotate.c: Sort headers.
* amd64-windows-tdep.c: Sort headers.
* amd64-windows-nat.c: Sort headers.
* amd64-tdep.c: Sort headers.
* amd64-sol2-tdep.c: Sort headers.
* amd64-obsd-tdep.c: Sort headers.
* amd64-obsd-nat.c: Sort headers.
* amd64-nbsd-tdep.c: Sort headers.
* amd64-nbsd-nat.c: Sort headers.
* amd64-nat.c: Sort headers.
* amd64-linux-tdep.c: Sort headers.
* amd64-linux-nat.c: Sort headers.
* amd64-fbsd-tdep.c: Sort headers.
* amd64-fbsd-nat.c: Sort headers.
* amd64-dicos-tdep.c: Sort headers.
* amd64-darwin-tdep.c: Sort headers.
* amd64-bsd-nat.c: Sort headers.
* alpha-tdep.c: Sort headers.
* alpha-obsd-tdep.c: Sort headers.
* alpha-nbsd-tdep.c: Sort headers.
* alpha-mdebug-tdep.c: Sort headers.
* alpha-linux-tdep.c: Sort headers.
* alpha-linux-nat.c: Sort headers.
* alpha-bsd-tdep.c: Sort headers.
* alpha-bsd-nat.c: Sort headers.
* aix-thread.c: Sort headers.
* agent.c: Sort headers.
* addrmap.c: Sort headers.
* ada-varobj.c: Sort headers.
* ada-valprint.c: Sort headers.
* ada-typeprint.c: Sort headers.
* ada-tasks.c: Sort headers.
* ada-lang.c: Sort headers.
* aarch64-tdep.c: Sort headers.
* aarch64-ravenscar-thread.c: Sort headers.
* aarch64-newlib-tdep.c: Sort headers.
* aarch64-linux-tdep.c: Sort headers.
* aarch64-linux-nat.c: Sort headers.
* aarch64-fbsd-tdep.c: Sort headers.
* aarch64-fbsd-nat.c: Sort headers.
* aarch32-linux-nat.c: Sort headers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Move x86-specific linker options to elf_linker_x86_params
@ 2019-04-06 14:44 sergiodj+buildbot
2019-04-06 15:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-06 14:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5b9c07b2782fb9368f06c2561b7329c384ec5da0 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5b9c07b2782fb9368f06c2561b7329c384ec5da0
x86: Move x86-specific linker options to elf_linker_x86_params
Remove x86-specific linker options from bfd_link_info and put them in
elf_linker_x86_params. Add _bfd_elf_linker_x86_set_options to pass
x86-specific linker options from ld to bfd.
bfd/
* elf-linker-x86.h: New file.
* elf32-i386.c (elf_i386_convert_load_reloc): Use htab->params
to get x86-specific linker options.
* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
(elf_x86_64_check_relocs): Likewise.
(elf_x86_64_relocate_section): Likewise.
(elf_x86_64_link_setup_gnu_properties): Likewise.
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Likewise.
(_bfd_x86_elf_link_setup_gnu_properties): Likewise.
(_bfd_elf_linker_x86_set_options): New function.
* elfxx-x86.h: Include "elf-linker-x86.h".
(elf_x86_link_hash_table): Add params.
include/
* bfdlink.h (bfd_link_info): Remove x86-specific linker options.
ld/
* Makefile.am (ELF_X86_DEPS): Add $(srcdir)/emultempl/elf-x86.em.
(eelf_i386_sol2.c): Also depend on
$(srcdir)/emultempl/solaris2-x86.em.
(eelf_x86_64_sol2.c): Likewise.
* Makefile.in: Regenerated.
* emulparams/call_nop.sh: Set x86-specific linker options via
params.
* emulparams/cet.sh: Likewise.
* emulparams/reloc_overflow.sh: Likewise.
* emulparams/elf32_x86_64.sh (EXTRA_EM_FILE): New. Set to
"elf-x86".
* emulparams/elf_i386.sh: Likewise.
* emulparams/elf_i386_be.sh: Likewise.
* emulparams/elf_i386_chaos.sh: Likewise.
* emulparams/elf_i386_ldso.sh: Likewise.
* emulparams/elf_i386_vxworks.sh: Likewise.
* emulparams/elf_iamcu.sh: Likewise.
* emulparams/elf_k1om.sh: Likewise.
* emulparams/elf_l1om.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.
* emulparams/elf_i386_sol2.sh (EXTRA_EM_FILE): Changed to
"solaris2-x86".
* emulparams/elf_x86_64_sol2.sh: Likewise.
* emultempl/elf-x86.em: New file.
* emultempl/solaris2-x86.em: Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Don't
set link_info.call_nop_byte.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert the header-sorting patch
@ 2019-04-06 20:05 sergiodj+buildbot
2019-04-06 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-06 20:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4de283e4b5f21207fe12f99913d1f28d4f07843c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 4de283e4b5f21207fe12f99913d1f28d4f07843c
Revert the header-sorting patch
Andreas Schwab and John Baldwin pointed out some bugs in the header
sorting patch; and I noticed that the output was not correct when
limited to a subset of files (a bug in my script).
So, I'm reverting the patch. I may try again after fixing the issues
pointed out.
gdb/ChangeLog
2019-04-05 Tom Tromey <tom@tromey.com>
Revert the header-sorting patch.
* ft32-tdep.c: Revert.
* frv-tdep.c: Revert.
* frv-linux-tdep.c: Revert.
* frame.c: Revert.
* frame-unwind.c: Revert.
* frame-base.c: Revert.
* fork-child.c: Revert.
* findvar.c: Revert.
* findcmd.c: Revert.
* filesystem.c: Revert.
* filename-seen-cache.h: Revert.
* filename-seen-cache.c: Revert.
* fbsd-tdep.c: Revert.
* fbsd-nat.h: Revert.
* fbsd-nat.c: Revert.
* f-valprint.c: Revert.
* f-typeprint.c: Revert.
* f-lang.c: Revert.
* extension.h: Revert.
* extension.c: Revert.
* extension-priv.h: Revert.
* expprint.c: Revert.
* exec.h: Revert.
* exec.c: Revert.
* exceptions.c: Revert.
* event-top.c: Revert.
* event-loop.c: Revert.
* eval.c: Revert.
* elfread.c: Revert.
* dwarf2read.h: Revert.
* dwarf2read.c: Revert.
* dwarf2loc.c: Revert.
* dwarf2expr.h: Revert.
* dwarf2expr.c: Revert.
* dwarf2-frame.c: Revert.
* dwarf2-frame-tailcall.c: Revert.
* dwarf-index-write.h: Revert.
* dwarf-index-write.c: Revert.
* dwarf-index-common.c: Revert.
* dwarf-index-cache.h: Revert.
* dwarf-index-cache.c: Revert.
* dummy-frame.c: Revert.
* dtrace-probe.c: Revert.
* disasm.h: Revert.
* disasm.c: Revert.
* disasm-selftests.c: Revert.
* dictionary.c: Revert.
* dicos-tdep.c: Revert.
* demangle.c: Revert.
* dcache.h: Revert.
* dcache.c: Revert.
* darwin-nat.h: Revert.
* darwin-nat.c: Revert.
* darwin-nat-info.c: Revert.
* d-valprint.c: Revert.
* d-namespace.c: Revert.
* d-lang.c: Revert.
* ctf.c: Revert.
* csky-tdep.c: Revert.
* csky-linux-tdep.c: Revert.
* cris-tdep.c: Revert.
* cris-linux-tdep.c: Revert.
* cp-valprint.c: Revert.
* cp-support.c: Revert.
* cp-namespace.c: Revert.
* cp-abi.c: Revert.
* corelow.c: Revert.
* corefile.c: Revert.
* continuations.c: Revert.
* completer.h: Revert.
* completer.c: Revert.
* complaints.c: Revert.
* coffread.c: Revert.
* coff-pe-read.c: Revert.
* cli-out.h: Revert.
* cli-out.c: Revert.
* charset.c: Revert.
* c-varobj.c: Revert.
* c-valprint.c: Revert.
* c-typeprint.c: Revert.
* c-lang.c: Revert.
* buildsym.c: Revert.
* buildsym-legacy.c: Revert.
* build-id.h: Revert.
* build-id.c: Revert.
* btrace.c: Revert.
* bsd-uthread.c: Revert.
* breakpoint.h: Revert.
* breakpoint.c: Revert.
* break-catch-throw.c: Revert.
* break-catch-syscall.c: Revert.
* break-catch-sig.c: Revert.
* blockframe.c: Revert.
* block.c: Revert.
* bfin-tdep.c: Revert.
* bfin-linux-tdep.c: Revert.
* bfd-target.c: Revert.
* bcache.c: Revert.
* ax-general.c: Revert.
* ax-gdb.h: Revert.
* ax-gdb.c: Revert.
* avr-tdep.c: Revert.
* auxv.c: Revert.
* auto-load.c: Revert.
* arm-wince-tdep.c: Revert.
* arm-tdep.c: Revert.
* arm-symbian-tdep.c: Revert.
* arm-pikeos-tdep.c: Revert.
* arm-obsd-tdep.c: Revert.
* arm-nbsd-tdep.c: Revert.
* arm-nbsd-nat.c: Revert.
* arm-linux-tdep.c: Revert.
* arm-linux-nat.c: Revert.
* arm-fbsd-tdep.c: Revert.
* arm-fbsd-nat.c: Revert.
* arm-bsd-tdep.c: Revert.
* arch-utils.c: Revert.
* arc-tdep.c: Revert.
* arc-newlib-tdep.c: Revert.
* annotate.h: Revert.
* annotate.c: Revert.
* amd64-windows-tdep.c: Revert.
* amd64-windows-nat.c: Revert.
* amd64-tdep.c: Revert.
* amd64-sol2-tdep.c: Revert.
* amd64-obsd-tdep.c: Revert.
* amd64-obsd-nat.c: Revert.
* amd64-nbsd-tdep.c: Revert.
* amd64-nbsd-nat.c: Revert.
* amd64-nat.c: Revert.
* amd64-linux-tdep.c: Revert.
* amd64-linux-nat.c: Revert.
* amd64-fbsd-tdep.c: Revert.
* amd64-fbsd-nat.c: Revert.
* amd64-dicos-tdep.c: Revert.
* amd64-darwin-tdep.c: Revert.
* amd64-bsd-nat.c: Revert.
* alpha-tdep.c: Revert.
* alpha-obsd-tdep.c: Revert.
* alpha-nbsd-tdep.c: Revert.
* alpha-mdebug-tdep.c: Revert.
* alpha-linux-tdep.c: Revert.
* alpha-linux-nat.c: Revert.
* alpha-bsd-tdep.c: Revert.
* alpha-bsd-nat.c: Revert.
* aix-thread.c: Revert.
* agent.c: Revert.
* addrmap.c: Revert.
* ada-varobj.c: Revert.
* ada-valprint.c: Revert.
* ada-typeprint.c: Revert.
* ada-tasks.c: Revert.
* ada-lang.c: Revert.
* aarch64-tdep.c: Revert.
* aarch64-ravenscar-thread.c: Revert.
* aarch64-newlib-tdep.c: Revert.
* aarch64-linux-tdep.c: Revert.
* aarch64-linux-nat.c: Revert.
* aarch64-fbsd-tdep.c: Revert.
* aarch64-fbsd-nat.c: Revert.
* aarch32-linux-nat.c: Revert.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Merge libiberty from gcc
@ 2019-04-07 13:25 sergiodj+buildbot
2019-04-07 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-07 13:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 07ffcfecac22d21774a110db0f65f0387c8f1102 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 07ffcfecac22d21774a110db0f65f0387c8f1102
Merge libiberty from gcc
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c
@ 2019-04-07 13:40 sergiodj+buildbot
2019-04-07 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-07 13:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dffaa15c481cea4081732d616334e24abc557fd1 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: dffaa15c481cea4081732d616334e24abc557fd1
PR24421, Wrong brackets in opcodes/arm-dis.c
PR 24421
* arm-dis.c (print_insn_coprocessor): Correct bracket placement.
(print_insn_neon, print_insn_arm): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix x86_64-rdos build fail
@ 2019-04-08 4:59 sergiodj+buildbot
2019-04-08 5:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 4:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5f2a6b85105b51f2963aaeb1212c724cab678050 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 5f2a6b85105b51f2963aaeb1212c724cab678050
Fix x86_64-rdos build fail
x86_64-rdos is one of the few x86_64 targets that is 64-bit only and
the x86_64 configure entries don't depend on elf-vxworks.lo. This
results in undefined references from elfxx-x86.o.
* configure.ac (elfxx_x86): Define and use.
* configure: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify exception handling
@ 2019-04-08 15:37 sergiodj+buildbot
2019-04-08 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 15:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c5c10118216867e133c132b4f46e19fb6aa9258a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c5c10118216867e133c132b4f46e19fb6aa9258a
Simplify exception handling
Now that cleanups have been removed, TRY/CATCH can't be SJLJ-based any
more. This patch simplifies the exception handling code, by removing
the non-working variants.
Note that the "pure" C++ exception handling code is removed as well; I
think the route forward must be to change exceptions to be
self-destructing, so that try_scope_depth can simply be removed.
Some longjmp-based code remains, as it is needed to throw an exception
through readline.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* common/common-exceptions.h (GDB_XCPT_SJMP, GDB_XCPT_TRY)
(GDB_XCPT_RAW_TRY, GDB_XCPT): Remove.
(TRY, CATCH, END_CATCH): Remove some definitions.
* common/common-exceptions.c: Don't use GDB_XCPT.
(catcher_list_size): Remove.
(throw_exception, throw_it): Simplify.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make exceptions use std::string and be self-managing
@ 2019-04-08 15:53 sergiodj+buildbot
2019-04-08 16:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 15:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3d6e9d2336c9ffcedb10f89631981a23dd518e8e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3d6e9d2336c9ffcedb10f89631981a23dd518e8e
Make exceptions use std::string and be self-managing
This changes the exception's "message" member to be a shared_ptr
wrapping a std::string. This allows removing the stack of exception
messages, because now exceptions will self-destruct when needed. This
also adds a noexcept copy constructor and operator= to gdb_exception,
plus a "what" method.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* xml-support.c (gdb_xml_parser::parse): Update.
* x86-linux-nat.c (x86_linux_nat_target::enable_btrace): Update.
* value.c (show_convenience): Update.
* unittests/cli-utils-selftests.c (test_number_or_range_parser)
(test_parse_flags_qcs): Update.
* thread.c (thr_try_catch_cmd): Update.
* target.c (target_translate_tls_address): Update.
* stack.c (print_frame_arg, read_frame_local, read_frame_arg)
(info_frame_command_core, frame_apply_command_count): Update.
* rust-exp.y (rust_lex_exception_test): Update.
* riscv-tdep.c (riscv_print_one_register_info): Update.
* remote.c (remote_target::enable_btrace): Update.
* record-btrace.c (record_btrace_enable_warn): Update.
* python/py-utils.c (gdbpy_convert_exception): Update.
* printcmd.c (do_one_display, print_variable_and_value): Update.
* mi/mi-main.c (mi_print_exception): Update.
* mi/mi-interp.c (mi_cmd_interpreter_exec): Use SCOPE_EXIT.
* mi/mi-cmd-stack.c (list_arg_or_local): Update.
* linux-nat.c (linux_nat_target::attach): Update.
* linux-fork.c (class scoped_switch_fork_info): Update.
* infrun.c (displaced_step_prepare): Update.
* infcall.c (call_function_by_hand_dummy): Update.
* guile/scm-exception.c (gdbscm_scm_from_gdb_exception): Update.
* gnu-v3-abi.c (print_one_vtable): Update.
* frame.c (get_prev_frame_always): Update.
* f-valprint.c (info_common_command_for_block): Update.
* exec.c (try_open_exec_file): Update.
* exceptions.c (print_exception, exception_print)
(exception_fprintf, exception_print_same): Update.
* dwarf2-frame.c (dwarf2_build_frame_info): Update.
* dwarf-index-cache.c (index_cache::store)
(index_cache::lookup_gdb_index): Update.
* darwin-nat.c (maybe_cache_shell): Update.
* cp-valprint.c (cp_print_value_fields): Update.
* compile/compile-cplus-symbols.c (gcc_cplus_convert_symbol)
(gcc_cplus_symbol_address): Update.
* compile/compile-c-symbols.c (gcc_convert_symbol)
(gcc_symbol_address, generate_c_for_for_one_variable): Update.
* common/selftest.c: Update.
* common/common-exceptions.h (struct gdb_exception) <message>: Now
a std::string.
(exception_try_scope_entry, exception_try_scope_exit): Don't
declare.
(struct exception_try_scope): Remove.
(TRY): Don't use exception_try_scope.
(struct gdb_exception): Add constructor, operator=.
<what>: New method.
(struct gdb_exception_RETURN_MASK_ALL)
(struct gdb_exception_RETURN_MASK_ERROR)
(struct gdb_exception_RETURN_MASK_QUIT): Add constructor.
(struct gdb_quit_bad_alloc): Update.
* common/common-exceptions.c (exception_none): Change
initializer.
(struct catcher) <state, exception>: Initialize inline.
<prev>: Remove member.
(current_catcher): Remove.
(catchers): New global.
(exceptions_state_mc_init): Simplify.
(catcher_pop): Remove.
(exceptions_state_mc, exceptions_state_mc_catch): Update.
(try_scope_depth, exception_try_scope_entry)
(exception_try_scope_exit): Remove.
(throw_exception_sjlj): Update.
(exception_messages, exception_messages_size): Remove.
(throw_it): Simplify.
(gdb_exception_sliced_copy): Remove.
(throw_exception_cxx): Update.
* cli/cli-script.c (script_from_file): Update.
* breakpoint.c (insert_bp_location, update_breakpoint_locations):
Update.
* ada-valprint.c (ada_val_print): Update.
* ada-lang.c (ada_to_fixed_type_1, ada_exception_name_addr)
(create_excep_cond_exprs): Update.
gdb/gdbserver/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* server.c (handle_btrace_general_set, handle_qxfer_btrace)
(handle_qxfer_btrace_conf, detach_or_kill_for_exit_cleanup)
(captured_main, main): Update.
* gdbreplay.c (main): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Rewrite TRY/CATCH
@ 2019-04-08 16:39 sergiodj+buildbot
2019-04-08 16:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 16:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a70b814420059e1f2de2130d532ddd7b2b2500fc ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a70b814420059e1f2de2130d532ddd7b2b2500fc
Rewrite TRY/CATCH
This rewrites gdb's TRY/CATCH to plain C++ try/catch. The patch was
largely written by script, though one change (to a comment in
common-exceptions.h) was reverted by hand.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* xml-support.c: Use C++ exception handling.
* x86-linux-nat.c: Use C++ exception handling.
* windows-nat.c: Use C++ exception handling.
* varobj.c: Use C++ exception handling.
* value.c: Use C++ exception handling.
* valprint.c: Use C++ exception handling.
* valops.c: Use C++ exception handling.
* unittests/parse-connection-spec-selftests.c: Use C++ exception
handling.
* unittests/cli-utils-selftests.c: Use C++ exception handling.
* typeprint.c: Use C++ exception handling.
* tui/tui.c: Use C++ exception handling.
* tracefile-tfile.c: Use C++ exception handling.
* top.c: Use C++ exception handling.
* thread.c: Use C++ exception handling.
* target.c: Use C++ exception handling.
* symmisc.c: Use C++ exception handling.
* symfile-mem.c: Use C++ exception handling.
* stack.c: Use C++ exception handling.
* sparc64-linux-tdep.c: Use C++ exception handling.
* solib.c: Use C++ exception handling.
* solib-svr4.c: Use C++ exception handling.
* solib-spu.c: Use C++ exception handling.
* solib-frv.c: Use C++ exception handling.
* solib-dsbt.c: Use C++ exception handling.
* selftest-arch.c: Use C++ exception handling.
* s390-tdep.c: Use C++ exception handling.
* rust-lang.c: Use C++ exception handling.
* rust-exp.y: Use C++ exception handling.
* rs6000-tdep.c: Use C++ exception handling.
* rs6000-aix-tdep.c: Use C++ exception handling.
* riscv-tdep.c: Use C++ exception handling.
* remote.c: Use C++ exception handling.
* remote-fileio.c: Use C++ exception handling.
* record-full.c: Use C++ exception handling.
* record-btrace.c: Use C++ exception handling.
* python/python.c: Use C++ exception handling.
* python/py-value.c: Use C++ exception handling.
* python/py-utils.c: Use C++ exception handling.
* python/py-unwind.c: Use C++ exception handling.
* python/py-type.c: Use C++ exception handling.
* python/py-symbol.c: Use C++ exception handling.
* python/py-record.c: Use C++ exception handling.
* python/py-record-btrace.c: Use C++ exception handling.
* python/py-progspace.c: Use C++ exception handling.
* python/py-prettyprint.c: Use C++ exception handling.
* python/py-param.c: Use C++ exception handling.
* python/py-objfile.c: Use C++ exception handling.
* python/py-linetable.c: Use C++ exception handling.
* python/py-lazy-string.c: Use C++ exception handling.
* python/py-infthread.c: Use C++ exception handling.
* python/py-inferior.c: Use C++ exception handling.
* python/py-gdb-readline.c: Use C++ exception handling.
* python/py-framefilter.c: Use C++ exception handling.
* python/py-frame.c: Use C++ exception handling.
* python/py-finishbreakpoint.c: Use C++ exception handling.
* python/py-cmd.c: Use C++ exception handling.
* python/py-breakpoint.c: Use C++ exception handling.
* python/py-arch.c: Use C++ exception handling.
* printcmd.c: Use C++ exception handling.
* ppc-linux-tdep.c: Use C++ exception handling.
* parse.c: Use C++ exception handling.
* p-valprint.c: Use C++ exception handling.
* objc-lang.c: Use C++ exception handling.
* mi/mi-main.c: Use C++ exception handling.
* mi/mi-interp.c: Use C++ exception handling.
* mi/mi-cmd-stack.c: Use C++ exception handling.
* mi/mi-cmd-break.c: Use C++ exception handling.
* main.c: Use C++ exception handling.
* linux-thread-db.c: Use C++ exception handling.
* linux-tdep.c: Use C++ exception handling.
* linux-nat.c: Use C++ exception handling.
* linux-fork.c: Use C++ exception handling.
* linespec.c: Use C++ exception handling.
* language.c: Use C++ exception handling.
* jit.c: Use C++ exception handling.
* infrun.c: Use C++ exception handling.
* infcmd.c: Use C++ exception handling.
* infcall.c: Use C++ exception handling.
* inf-loop.c: Use C++ exception handling.
* i386-tdep.c: Use C++ exception handling.
* i386-linux-tdep.c: Use C++ exception handling.
* guile/scm-value.c: Use C++ exception handling.
* guile/scm-type.c: Use C++ exception handling.
* guile/scm-symtab.c: Use C++ exception handling.
* guile/scm-symbol.c: Use C++ exception handling.
* guile/scm-pretty-print.c: Use C++ exception handling.
* guile/scm-ports.c: Use C++ exception handling.
* guile/scm-param.c: Use C++ exception handling.
* guile/scm-math.c: Use C++ exception handling.
* guile/scm-lazy-string.c: Use C++ exception handling.
* guile/scm-frame.c: Use C++ exception handling.
* guile/scm-disasm.c: Use C++ exception handling.
* guile/scm-cmd.c: Use C++ exception handling.
* guile/scm-breakpoint.c: Use C++ exception handling.
* guile/scm-block.c: Use C++ exception handling.
* guile/guile-internal.h: Use C++ exception handling.
* gnu-v3-abi.c: Use C++ exception handling.
* gdbtypes.c: Use C++ exception handling.
* frame.c: Use C++ exception handling.
* frame-unwind.c: Use C++ exception handling.
* fbsd-tdep.c: Use C++ exception handling.
* f-valprint.c: Use C++ exception handling.
* exec.c: Use C++ exception handling.
* event-top.c: Use C++ exception handling.
* event-loop.c: Use C++ exception handling.
* eval.c: Use C++ exception handling.
* dwarf2read.c: Use C++ exception handling.
* dwarf2loc.c: Use C++ exception handling.
* dwarf2-frame.c: Use C++ exception handling.
* dwarf2-frame-tailcall.c: Use C++ exception handling.
* dwarf-index-write.c: Use C++ exception handling.
* dwarf-index-cache.c: Use C++ exception handling.
* dtrace-probe.c: Use C++ exception handling.
* disasm-selftests.c: Use C++ exception handling.
* darwin-nat.c: Use C++ exception handling.
* cp-valprint.c: Use C++ exception handling.
* cp-support.c: Use C++ exception handling.
* cp-abi.c: Use C++ exception handling.
* corelow.c: Use C++ exception handling.
* completer.c: Use C++ exception handling.
* compile/compile-object-run.c: Use C++ exception handling.
* compile/compile-object-load.c: Use C++ exception handling.
* compile/compile-cplus-symbols.c: Use C++ exception handling.
* compile/compile-c-symbols.c: Use C++ exception handling.
* common/selftest.c: Use C++ exception handling.
* common/new-op.c: Use C++ exception handling.
* cli/cli-script.c: Use C++ exception handling.
* cli/cli-interp.c: Use C++ exception handling.
* cli/cli-cmds.c: Use C++ exception handling.
* c-varobj.c: Use C++ exception handling.
* btrace.c: Use C++ exception handling.
* breakpoint.c: Use C++ exception handling.
* break-catch-throw.c: Use C++ exception handling.
* arch-utils.c: Use C++ exception handling.
* amd64-tdep.c: Use C++ exception handling.
* ada-valprint.c: Use C++ exception handling.
* ada-typeprint.c: Use C++ exception handling.
* ada-lang.c: Use C++ exception handling.
* aarch64-tdep.c: Use C++ exception handling.
gdb/gdbserver/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* server.c: Use C++ exception handling.
* linux-low.c: Use C++ exception handling.
* gdbreplay.c: Use C++ exception handling.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some now-dead exception code
@ 2019-04-08 16:39 sergiodj+buildbot
2019-04-08 16:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 16:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d272eb370a4c086a1d0f86a7a94e89328ec8d97e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d272eb370a4c086a1d0f86a7a94e89328ec8d97e
Remove some now-dead exception code
After the rewriting to use try/catch, some of the exception code is
now unused. This patch removes that code.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* common/common-exceptions.h (exception_rethrow): Don't declare.
(TRY_SJLJ): Update comment.
(TRY, CATCH, END_CATCH): Remove.
* common/common-exceptions.c (exception_rethrow): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make exception throwing a bit more efficient
@ 2019-04-08 16:55 sergiodj+buildbot
2019-04-08 17:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 16:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26003a205e207db7985c32ec1964a04652b68413 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 26003a205e207db7985c32ec1964a04652b68413
Make exception throwing a bit more efficient
This makes exception throwing a bit more efficient, by removing some
copies.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* common/common-exceptions.c (throw_exception): Rename from
throw_exception_cxx. Remove old copy. Make argument const.
(throw_it): Create and throw exception objects directly.
* common/common-exceptions.h (throw_exception): Make argument
const.
(struct gdb_exception_error): Add constructor.
(struct gdb_exception_quit): Add constructor.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace throw_exception with throw in some cases
@ 2019-04-08 17:11 sergiodj+buildbot
2019-04-08 18:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 17:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eedc3f4f0a02c9774277bd1a34aab6ebdc32f797 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eedc3f4f0a02c9774277bd1a34aab6ebdc32f797
Replace throw_exception with throw in some cases
This replaces throw_exception with "throw;" when possible. This was
written by script. The rule that is followed is that uses of the
form:
catch (... &name)
{
...
throw_exception (name);
}
... can be rewritten. This should always be safe, because exceptions
are caught by const reference, and therefore can't be modified in the
body of the catch.
gdb/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* valops.c (value_rtti_indirect_type): Replace throw_exception
with throw.
* tracefile-tfile.c (tfile_target_open): Replace throw_exception
with throw.
* thread.c (thr_try_catch_cmd): Replace throw_exception with
throw.
* target.c (target_translate_tls_address): Replace throw_exception
with throw.
* stack.c (frame_apply_command_count): Replace throw_exception
with throw.
* solib-spu.c (append_ocl_sos): Replace throw_exception with
throw.
* s390-tdep.c (s390_frame_unwind_cache): Replace throw_exception
with throw.
* rs6000-tdep.c (rs6000_frame_cache)
(rs6000_epilogue_frame_cache): Replace throw_exception with throw.
* remote.c: Replace throw_exception with throw.
* record-full.c (record_full_message, record_full_wait_1)
(record_full_restore): Replace throw_exception with throw.
* record-btrace.c:
(get_thread_current_frame_id, record_btrace_start_replaying)
(cmd_record_btrace_bts_start, cmd_record_btrace_pt_start)
(cmd_record_btrace_start): Replace throw_exception with throw.
* parse.c (parse_exp_in_context_1): Replace throw_exception with
throw.
* linux-nat.c (detach_one_lwp, linux_resume_one_lwp)
(resume_stopped_resumed_lwps): Replace throw_exception with throw.
* linespec.c:
(find_linespec_symbols): Replace throw_exception with throw.
* infrun.c (displaced_step_prepare, resume): Replace
throw_exception with throw.
* infcmd.c (post_create_inferior): Replace throw_exception with
throw.
* inf-loop.c (inferior_event_handler): Replace throw_exception
with throw.
* i386-tdep.c (i386_frame_cache, i386_epilogue_frame_cache)
(i386_sigtramp_frame_cache): Replace throw_exception with throw.
* frame.c (frame_unwind_pc, get_prev_frame_if_no_cycle)
(get_prev_frame_always, get_frame_pc_if_available)
(get_frame_address_in_block_if_available, get_frame_language):
Replace throw_exception with throw.
* frame-unwind.c (frame_unwind_try_unwinder): Replace
throw_exception with throw.
* eval.c (fetch_subexp_value, evaluate_var_value)
(evaluate_funcall, evaluate_subexp_standard): Replace
throw_exception with throw.
* dwarf2loc.c (call_site_find_chain)
(dwarf2_evaluate_loc_desc_full, dwarf2_locexpr_baton_eval):
Replace throw_exception with throw.
* dwarf2-frame.c (dwarf2_frame_cache): Replace throw_exception
with throw.
* darwin-nat.c (darwin_attach_pid): Replace throw_exception with
throw.
* cp-abi.c (baseclass_offset): Replace throw_exception with throw.
* completer.c (complete_line_internal): Replace throw_exception
with throw.
* compile/compile-object-run.c (compile_object_run): Replace
throw_exception with throw.
* cli/cli-script.c (process_next_line): Replace throw_exception
with throw.
* btrace.c (btrace_compute_ftrace_pt, btrace_compute_ftrace)
(btrace_enable, btrace_maint_update_pt_packets): Replace
throw_exception with throw.
* breakpoint.c (create_breakpoint, save_breakpoints): Replace
throw_exception with throw.
* break-catch-throw.c (re_set_exception_catchpoint): Replace
throw_exception with throw.
* amd64-tdep.c (amd64_frame_cache, amd64_sigtramp_frame_cache)
(amd64_epilogue_frame_cache): Replace throw_exception with throw.
* aarch64-tdep.c (aarch64_make_prologue_cache)
(aarch64_make_stub_cache): Replace throw_exception with throw.
gdb/gdbserver/ChangeLog
2019-04-08 Tom Tromey <tom@tromey.com>
* linux-low.c (linux_detach_one_lwp): Replace throw_exception with
throw.
(linux_resume_one_lwp): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Consolidate AVX512 BF16 entries in i386-opc.tbl
@ 2019-04-08 18:38 sergiodj+buildbot
2019-04-08 19:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 18:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6f2791d5de45a9490ba6844617feac038c8da8bd ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 6f2791d5de45a9490ba6844617feac038c8da8bd
x86: Consolidate AVX512 BF16 entries in i386-opc.tbl
1. Use single entry for vcvtne2ps2bf16 and vdpbf16ps with Disp8ShiftVL.
2. Use 5 entries, instead of 8, for vcvtneps2bf16.
* i386-opc.tbl: Consolidate AVX512 BF16 entries.
* i386-init.h: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets
@ 2019-04-08 19:19 sergiodj+buildbot
2019-04-08 19:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 19:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3ae61bb67d62eb53d110835b8b7c3a289e6bce45 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 3ae61bb67d62eb53d110835b8b7c3a289e6bce45
x86: Remove i386-*-kaos* and i386-*-chaos targets
Remove i386-*-kaos* and i386-*-chaos targets since they are no longer
supported by config.sub:
$ .../config.sub i386-kaos
Invalid configuration `i386-kaos': system `kaos' not recognized
$ .../config.sub i386-chaos
Invalid configuration `i386-chaos': system `chaos' not recognized
$
bfd/
* config.bfd: Remove i[3-7]86-*-kaos* and i[3-7]86-*-chaos targets.
gas/
* configure.tgt: Remove i386-*-kaos* and i386-*-chaos targets.
* testsuite/gas/i386/i386.exp: Remove *-*-caos* and "*-*-kaos*
check.
ld/
* Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_chaos.c.
(eelf_i386_chaos.c): Removed.
* Makefile.in: Regenerated.
* configure.tgt: Remove i[3-7]86-*-kaos*.
* emulparams/elf_i386_chaos.sh: Removed.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Some gdb_exception{,error,quit} tweaks
@ 2019-04-08 19:35 sergiodj+buildbot
2019-04-08 20:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-08 19:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 56be6ea89cdf94078d5dff3734b8c1970dbf52fa ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 56be6ea89cdf94078d5dff3734b8c1970dbf52fa
Some gdb_exception{,error,quit} tweaks
- Explicitly include <string> for std::string.
- Use std::make_shared to construct gdb_exception::message instead of
operator new, avoiding one heap allocation (2 instead of 3). Add
'const char *fmt, va_list ap' parameters to
gdb_exception{,error,quit}'s ctors, and do the std::make_shared in
the gdb_exception ctor.
- gdb_exception_error's constructor does not need to have an 'enum
return_reason' parameter, since it is always RETURN_ERROR, by
definition.
- Similarly, gdb_exception_quit's contructor does not need to have
'enum return_reason'/'enum errors' parameters.
- In the gdb_exception_{quit,_error} ctors that take a gdb_exception
as argument, assert that they're being passed a gdb_exception object
of the right 'reason'.
gdb/ChangeLog:
2019-04-08 Pedro Alves <palves@redhat.com>
* common/common-exceptions.c (throw_exception): Don't create
named object to throw; throw directly.
(throw_it): Likewise. Don't initialize gdb_exception::message
here, with new; pass FMT and AP to the ctor instead.
* common/common-exceptions.h: Include <string>.
(gdb_exception::gdb_exception(enum return_reason, enum errors,
const char *, va_list)): New ctor. Use std::make_shared.
(gdb_exception_error::gdb_exception_error(enum return_reason, enum
errors)): Delete.
(gdb_exception_error::gdb_exception_error(enum errors, const char
*, va_list)): New.
(gdb_exception_error::gdb_exception_error(const gdb_exception &)):
Add assertion.
(gdb_exception_quit::gdb_exception_quit(enum return_reason, enum
errors)): Delete.
(gdb_exception_quit::gdb_exception_quit(const char *, va_list)): New.
(gdb_exception_quit::gdb_exception_quit(const gdb_exception &)):
Add assertion.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce target_ops method thread_info_to_thread_handle
@ 2019-04-09 3:51 sergiodj+buildbot
2019-04-09 4:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 3:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3d6c62048d8408fbfb6c66830e0c650e36259637 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 3d6c62048d8408fbfb6c66830e0c650e36259637
Introduce target_ops method thread_info_to_thread_handle
This patch adds a thread_info_to_thread_handle method to the target_ops
struct. It also implements this functionality for remote targets and
linux native threads.
gdb/ChangeLog:
* gdbthread.h (thread_to_thread_handle): Declare.
* thread.c (gdbtypes.h): Include.
(thread_to_thread_handle): New function.
* target.h (struct target_ops): Add thread_info_to_thread_handle.
(target_thread_info_to_thread_handle): Declare.
* target.c (target_thread_info_to_thread_handle): New function.
* target-debug.h (target_debug_print_gdb_byte_vector): Define.
* target-delegates.c: Regenerate.
* linux-thread-db.c (class thread_db_target): Add method
thread_info_to_thread_handle.
(thread_db_target::thread_info_to_thread_handle): Define.
* remote.c (class remote_target): Add new method
thread_info_to_thread_handle.
(remote_target::thread_info_to_thread_handle): Define.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add python method InferiorThread.handle
@ 2019-04-09 4:09 sergiodj+buildbot
2019-04-09 4:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 4:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cf63b0162b6cbf74bdb056609d1ad777c6d48954 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: cf63b0162b6cbf74bdb056609d1ad777c6d48954
Add python method InferiorThread.handle
gdb/ChangeLog:
* python/py-infthread.c (thpy_thread_handle): New function.
(thread_object_methods): Register thpy_thread_handle.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Tests for gdb.InferiorThread.handle
@ 2019-04-09 4:40 sergiodj+buildbot
2019-04-09 4:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 4:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 947210e5690c61b395ccd887bc58bcb45ccd357b ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 947210e5690c61b395ccd887bc58bcb45ccd357b
Tests for gdb.InferiorThread.handle
gdb/testsuite/ChangeLog:
* gdb.python/py-thrhandle.exp: Add tests for
gdb.InferiorThread.handle.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [MIPS] Add RDHWR with the SEL field for MIPS R6.
@ 2019-04-09 10:15 sergiodj+buildbot
2019-04-09 10:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 10:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7e96e219a4fc703282ea5b0cc8845a96c01ca030 ***
Author: Robert Suchanek <robert.suchanek@mips.com>
Branch: master
Commit: 7e96e219a4fc703282ea5b0cc8845a96c01ca030
[MIPS] Add RDHWR with the SEL field for MIPS R6.
In Release 6 of the MIPS architecture [1], instruction RDHWR supports
a 3rd operand to serve as the 3-bit select field for the hardware
register.
[1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
Instruction Set Manual", Imagination Technologies Ltd., Document
Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
"Alphabetical List of Instructions", pp. 332-334
opcodes/
* mips-opc.c (mips_builtin_opcodes): Add RDHWR rt rd sel.
gas/
* testsuite/gas/mips/mips.exp: Run hwr-names test.
* testsuite/gas/mips/hwr-names.s: Add test cases for RDHWR with
the SEL field.
* testsuite/gas/mips/mipsr6@hwr-names.d: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use -qualified flag when setting temporary breakpoint in start command
@ 2019-04-09 16:54 sergiodj+buildbot
2019-04-09 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 16:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e242fd1249ae85a97f08f95d5c61f4cbe3b906e0 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: e242fd1249ae85a97f08f95d5c61f4cbe3b906e0
Use -qualified flag when setting temporary breakpoint in start command
When using the "start" command, GDB puts a temporary breakpoint on the
"main" symbol (we literally invoke the tbreak command). However, since
it does wild matching by default, it also puts a breakpoint on any C++
method or "main" function in a namespace. For example, when debugging
GDB, it creates a total of 24 locations:
(gdb) start
Temporary breakpoint 1 at 0x198c1e9: main. (24 locations)
as there are a bunch of methods called main in the selftests, such as
selftests::string_view::capacity_1::main()
If such method was called in the constructor of a global object, or a
function marked with the attribute "constructor", then we would stop at
the wrong place. Also, this causes a few extra symtabs (those that
contain the "wrong" mains) to be expanded for nothing.
The dummiest, most straightforward solution is to add -qualified when
invoking tbreak. With this patch, "start" creates a single-location
breakpoint, as expected.
I copied the start.exp test to start-cpp.exp and made it use a C++ test
file, which contains two main functions. The new test verifies that the
output of "start" is the output we get when we set a single-location
breakpoint.
gdb/ChangeLog:
* infcmd.c (run_command_1): Pass -qualified to tbreak when usind
the "start" command.
gdb/testsuite/ChangeLog:
* gdb.base/start-cpp.exp: New file.
* gdb.base/start-cpp.cc: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Consistently use bool for fake_pid_p
@ 2019-04-09 18:18 sergiodj+buildbot
2019-04-09 18:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 18:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9ab8741a48294e19d514721c710c81bba46db7f2 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9ab8741a48294e19d514721c710c81bba46db7f2
Consistently use bool for fake_pid_p
I noticed a few spots where fake_pid_p is handled as an int, whereas
the field in struct inferior has type bool. This patch changes the
remaining places to use bool as well.
Tested by the buildbot.
gdb/ChangeLog
2019-04-09 Tom Tromey <tromey@adacore.com>
* remote.c (remote_target::remote_add_inferior): Change fake_pid_p
to bool.
(extended_remote_target::attach): Update.
(remote_target::remote_notice_new_inferior): Update.
(remote_target::add_current_inferior_and_thread): Update.
* inferior.c (exit_inferior_1): Use "false".
* corelow.c (add_to_thread_list): Make fake_pid_p bool.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use find_thread_in_random in select_event_lwp
@ 2019-04-09 18:36 sergiodj+buildbot
2019-04-09 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 18:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b0319eaaf9d1f4e730c532058f2fff0b4e5ce682 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: b0319eaaf9d1f4e730c532058f2fff0b4e5ce682
Use find_thread_in_random in select_event_lwp
I noticed that find_thread_in_random duplicates the code in
find_thread_in_random, so this patch changes the latter to use the
former.
There are two other spots in gdb that do this, but to unify all of
them would require switching some code from using the "iterate over"
idiom to using iterators.
Another possible improvement is that find_thread_in_random could be
made single-pass using reservoir sampling.
Tested by the buildbot.
gdb/gdbserver/ChangeLog
2019-04-09 Tom Tromey <tromey@adacore.com>
* linux-low.c (select_event_lwp): Use find_thread_in_random.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix Rust lexer buglet
@ 2019-04-09 19:44 sergiodj+buildbot
2019-04-09 19:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 19:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8dc433a0fb04f8fa37530d0788053dd9bea5c37d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 8dc433a0fb04f8fa37530d0788053dd9bea5c37d
Fix Rust lexer buglet
PR rust/24414 points out that the Rust lexer uses strtoul when lexing
an integer, and that this can give the wrong results in some
situations.
This patch changes it to use strtoulst, like most of the rest of gdb.
It also adds a self test.
Tested on x86-64 Fedora 29 using an i686 build.
gdb/ChangeLog
2019-04-09 Ivan Begert <ivanbegert@gmail.com>
Tom Tromey <tromey@adacore.com>
PR rust/24414:
* rust-exp.y (rust_parser::lex_number): Use strtoulst.
(rust_lex_int_test): Change "value" to be LONGEST.
(rust_lex_tests): Add test for long integer literal.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer
@ 2019-04-10 9:22 sergiodj+buildbot
2019-04-10 9:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 9:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b05971a652c35ed72d3c95290e18d8f6e4ef6c46 ***
Author: Michael Forney <mforney@mforney.org>
Branch: master
Commit: b05971a652c35ed72d3c95290e18d8f6e4ef6c46
PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer
PR 24427
* doc/chew.c (free_words): Correctly free "push_text" strings.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some uses of "object_files"
@ 2019-04-10 14:24 sergiodj+buildbot
2019-04-10 14:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 14:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bf227d6105cb3908cde816429c84569da12e829c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bf227d6105cb3908cde816429c84569da12e829c
Remove some uses of "object_files"
The "object_files" macro is sometimes used when iterating over
objfiles. This patch removes a few such uses in favor of the new
range adapter.
gdb/ChangeLog
2019-04-10 Tom Tromey <tom@tromey.com>
* ia64-tdep.c (ia64_get_dyn_info_list): Use foreach.
* minsyms.c (lookup_minimal_symbol): Use foreach.
(lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
(lookup_minimal_symbol_solib_trampoline): Likewise.
* symfile.c (reread_symbols): Use foreach.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix a couple of comments
@ 2019-04-10 14:42 sergiodj+buildbot
2019-04-10 14:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 14:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ee3711344b6e0cffeb237fa6889aab04853f9004 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: ee3711344b6e0cffeb237fa6889aab04853f9004
Fix a couple of comments
While working on objfiles I noticed a typo in one comment, and another
comment that, as far as I can tell, has been obsolete for a very long
time.
gdb/ChangeLog
2019-04-10 Tom Tromey <tom@tromey.com>
* symfile.c (reread_symbols): Remove old comment.
* objfiles.c (free_all_objfiles): Fix a typo.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Pull in patch for libiberty that fixes a stack exhaustion bug when demangling a pathalogically constructed mangled name.
@ 2019-04-10 15:14 sergiodj+buildbot
2019-04-10 15:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 15:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c1202057eb9161a86af27d867703235fee7b7555 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: c1202057eb9161a86af27d867703235fee7b7555
Pull in patch for libiberty that fixes a stack exhaustion bug when demangling a pathalogically constructed mangled name.
PR 89394
* cp-demangle.c (cplus_demangle_fill_name): Reject negative
lengths.
(d_count_templates_scopes): Replace num_templates and num_scopes
parameters with a struct d_print_info pointer parameter. Adjust
body of the function accordingly. Add recursion counter and check
that the recursion limit is not reached.
(d_print_init): Pass dpi parameter to d_count_templates_scopes.
Reset recursion counter afterwards, unless the recursion limit was
reached.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix amd64->i386 linux syscall restart problem
@ 2019-04-11 0:58 sergiodj+buildbot
2019-04-11 0:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 0:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3f52fdbcb599f76b4838020721ca6c9f1cc28f84 ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: 3f52fdbcb599f76b4838020721ca6c9f1cc28f84
Fix amd64->i386 linux syscall restart problem
This commit fixes some failures in gdb.base/interrupt.exp
when debugging a 32-bit i386 linux inferior from an amd64 host.
When running the following test...
make check RUNTESTFLAGS="--target_board unix/-m32 interrupt.exp"
... without this commit, I see the following output:
FAIL: gdb.base/interrupt.exp: continue (the program exited)
FAIL: gdb.base/interrupt.exp: echo data
FAIL: gdb.base/interrupt.exp: Send Control-C, second time
FAIL: gdb.base/interrupt.exp: signal SIGINT (the program is no longer running)
ERROR: Undefined command "".
ERROR: GDB process no longer exists
=== gdb Summary ===
When the test is run with this commit in place, we see 12 passes
instead. This is the desired behavior.
Analysis:
On Linux, when a syscall is interrupted by a signal, the syscall
may return -ERESTARTSYS when a signal occurs. Doing so indicates that
the syscall is restartable. Then, depending on settings associated
with the signal handler, and after the signal handler is called, the
kernel can then either return -EINTR or can cause the syscall to be
restarted. In this discussion, we are concerned with the latter
case.
On i386, the kernel returns this status via the EAX register.
When debugging a 32-bit (i386) process from a 64-bit (amd64)
GDB, the debugger fetches 64-bit registers even though the
process being debugged is 32-bit. Since we're debugging a 32-bit
target, only 32 bits are being saved in the register cache.
Now, ideally, GDB would save all 64-bits in the regcache and
then would be able to restore those same values when it comes
time to continue the target. I've looked into doing this, but
it's not easy and I don't see many benefits to doing so. One
benefit, however, would be that EAX would appear as a negative
value for doing syscall restarts.
At the moment, GDB is setting the high 32 bits of RAX (and other
registers too) to 0. So, when GDB restores EAX just prior to
a syscall restart, the high 32 bits of RAX are zeroed, thus making
it look like a positive value. For this particular purpose, we
need to sign extend EAX so that RAX will appear as a negative
value when EAX is set to -ERESTARTSYS. This in turn will cause
the signal handling code in the kernel to recognize -ERESTARTSYS
which will in turn cause the syscall to be restarted.
This commit is based on work by Jan Kratochvil from 2009:
https://sourceware.org/ml/gdb-patches/2009-11/msg00592.html
Jan's patch had the sign extension code in amd64-nat.c. Several
other native targets make use of this code, so it seemed better
to move the sign extension code to a linux specific file. I
also added similar code to gdbserver.
Another approach is to fix the problem in the kernel. Hui Zhu
tried to get a fix into the kernel back in 2014, but it was not
accepted. Discussion regarding this approach may be found here:
https://lore.kernel.org/patchwork/patch/457841/
Even if a fix were to be put into the kernel, we'd still need
some kind of fix in GDB in order to support older kernels.
Finally, I'll note that Fedora has been carrying a similar patch for
at least nine years. Other distributions, including RHEL and CentOS
have picked up this change and have been using it too.
gdb/ChangeLog:
* amd64-linux-nat.c (amd64_linux_collect_native_gregset): New
function.
(fill_gregset): Call amd64_linux_collect_native_gregset instead
of amd64_collect_native_gregset.
(amd64_linux_nat_target::store_registers): Likewise.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_fill_gregset): Sign extend EAX value
when using a 64-bit gdbserver.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BINUTILS, AArch64, 1/2] Add new LDGM/STGM instruction
@ 2019-04-11 9:38 sergiodj+buildbot
2019-04-11 9:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 9:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e54010f1aeb050cb9d65862a0afe9095a7a85f27 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: e54010f1aeb050cb9d65862a0afe9095a7a85f27
[BINUTILS, AArch64, 1/2] Add new LDGM/STGM instruction
This patch adds the new LDGM/STGM instructions of the
Armv8.5-A Memory Tagging Extension. This is part of the changes
that have been introduced recently in the 00bet10 release
The instructions are as follows:
LDGM Xt, [<Xn|SP>]
STGM Xt, [<Xn|SP>]
*** gas/ChangeLog ***
2019-04-11 Sudakshina Das <sudi.das@arm.com>
* testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for ldgm and stgm.
* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
* testsuite/gas/aarch64/illegal-memtag.s: Likewise.
*** opcodes/ChangeLog ***
2019-04-11 Sudakshina Das <sudi.das@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Likewise.
* aarch64-opc-2.c: Likewise.
* aarch64-tbl.h (aarch64_opcode): Add new ldgm and stgm.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructions
@ 2019-04-11 9:56 sergiodj+buildbot
2019-04-11 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 9:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bd7ceb8d26e011ff3fd23402ec2587d7c374f090 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: bd7ceb8d26e011ff3fd23402ec2587d7c374f090
[BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructions
This patch updates the Store allocation tags instructions in
Armv8.5-A Memory Tagging Extension. This is part of the changes
that have been introduced recently in the 00bet10 release
All of these instructions have an updated register operand (Xt -> <Xt|SP>)
- STG <Xt|SP>, [<Xn|SP>, #<simm>]
- STG <Xt|SP>, [<Xn|SP>, #<simm>]!
- STG <Xt|SP>, [<Xn|SP>], #<simm>
- STZG <Xt|SP>, [<Xn|SP>, #<simm>]
- STZG <Xt|SP>, [<Xn|SP>, #<simm>]!
- STZG <Xt|SP>, [<Xn|SP>], #<simm>
- ST2G <Xt|SP>, [<Xn|SP>, #<simm>]
- ST2G <Xt|SP>, [<Xn|SP>, #<simm>]!
- ST2G <Xt|SP>, [<Xn|SP>], #<simm>
- STZ2G <Xt|SP>, [<Xn|SP>, #<simm>]
- STZ2G <Xt|SP>, [<Xn|SP>, #<simm>]!
- STZ2G <Xt|SP>, [<Xn|SP>], #<simm>
In order to accept <Rt|SP> a new operand type Rt_SP is introduced which has
the same field as FLD_Rt but follows other semantics of Rn_SP.
*** gas/ChangeLog ***
2019-04-11 Sudakshina Das <sudi.das@arm.com>
* config/tc-aarch64.c (process_omitted_operand): Add case for
AARCH64_OPND_Rt_SP.
(parse_operands): Likewise.
* testsuite/gas/aarch64/armv8_5-a-memtag.d: Update tests.
* testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise.
* testsuite/gas/aarch64/illegal-memtag.l: Likewise.
* testsuite/gas/aarch64/illegal-memtag.s: Likewise.
*** include/ChangeLog ***
2019-04-11 Sudakshina Das <sudi.das@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rt_SP.
*** opcodes/ChangeLog ***
2019-04-11 Sudakshina Das <sudi.das@arm.com>
* aarch64-opc.c (aarch64_print_operand): Add case for
AARCH64_OPND_Rt_SP.
(verify_constraints): Likewise.
* aarch64-tbl.h (QL_LDST_AT): Update to add SP qualifier.
(struct aarch64_opcode): Update stg, stzg, st2g, stz2g instructions
to accept Rt|SP as first operand.
(AARCH64_OPERANDS): Add new Rt_SP.
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: When DF_BIND_NOW don't use TLSDESC GOT value.
@ 2019-04-11 10:57 sergiodj+buildbot
2019-04-11 11:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 10:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ce12121b63145322b4961bbb2b94b939cb916ba7 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: ce12121b63145322b4961bbb2b94b939cb916ba7
AArch64: When DF_BIND_NOW don't use TLSDESC GOT value.
When using DF_BIND_NOW on AArch64 we don't reserve the GOT slot for a TLSDESC,
but we still emitted DT_TLSDESC_GOT and DT_TLSDESC_PLT. This caused random
memory corruption as the "special" value of (bfd_vma)-1 would be set for
dt_tlsdesc_got.
Since we don't have a value of dt_tlsdesc_got I also don't emit DT_TLSDESC_PLT
now becuase it would point to an incomplete PLT. To be able to write the PLT
entry DT_TLSDESC_GOT is needed and since we don't have one we can't write the
PLT entry either.
It is my understanding that GLIBC doesn't need these two entries when not lazy
loading. Conversely AArch32 does not reserve neither the GOT not the PLT slot
when doing DF_BIND_NOW.
AArch32 does not need these checks because these values are initialized to 0
and so the if (...) checks don't pass, but on AArch64 these are initialized
to (bfd_vma)-1 and thus we need some extra checks.
bfd/ChangeLog:
PR ld/24302
* elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit
DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW.
(elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW.
ld/ChangeLog:
PR ld/24302
* testsuite/ld-aarch64/aarch64-elf.exp: Add new test.
* testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24435, buffer overflow reading dynamic entries
@ 2019-04-11 11:45 sergiodj+buildbot
2019-04-11 11:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 11:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9bff840e8cc560f5096a43609ed3e0d980733fd9 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 9bff840e8cc560f5096a43609ed3e0d980733fd9
PR24435, buffer overflow reading dynamic entries
PR 24435
* elflink.c (elf_link_add_object_symbols): Don't read partial
dynamic entries from fuzzed objects.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add cc-with-dwz.exp and cc-with-dwz-m.exp
@ 2019-04-11 17:34 sergiodj+buildbot
2019-04-11 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 17:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c30391f893fd99e768c1a6282763ef553c45f1ff ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: c30391f893fd99e768c1a6282763ef553c45f1ff
[gdb/testsuite] Add cc-with-dwz.exp and cc-with-dwz-m.exp
We can use CC_WITH_TWEAKS_FLAGS when cd-ing into the gdb build subdir and
invoking make check:
...
$ cd $objdir/gdb
$ make check \
RUNTESTFLAGS='--target_board=cc-with-tweaks' \
CC_WITH_TWEAKS_FLAGS='-z'
...
But when cd-ing into the top-level build dir and invoking make check-gdb
instead:
...
$ cd $objdir
$ make check-gdb \
RUNTESTFLAGS='--target_board=cc-with-tweaks' \
CC_WITH_TWEAKS_FLAGS='-z'
...
using CC_WITH_TWEAKS_FLAGS has no effect, because CC_WITH_TWEAKS_FLAGS is not
passed down from the top level Makefile.
Add cc-with-dwz.exp and cc-with-dwz-m.exp, that don't require
CC_WITH_TWEAKS_FLAGS to be set in the make invocation, allowing us to run these
test configurations from the toplevel build dir:
...
$ cd $objdir
$ make check-gdb \
RUNTESTFLAGS='--target_board=cc-with-dwz'
...
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-04-11 Tom de Vries <tdevries@suse.de>
* boards/cc-with-dwz-m.exp: New file.
* boards/cc-with-dwz.exp: New file.
* boards/cc-with-tweaks.exp: Note that check-gdb doesn't work.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make "msg" const in internal_vproblem
@ 2019-04-11 19:21 sergiodj+buildbot
2019-04-11 19:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 19:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 02cf60c7a42710ee0364698c436b6ca5e771374b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 02cf60c7a42710ee0364698c436b6ca5e771374b
Make "msg" const in internal_vproblem
I noticed that the "msg" variable in internal_vproblem could be
"const". This seems like an improvement because it can wind up in
rodata.
Tested by rebuilding.
gdb/ChangeLog
2019-04-11 Tom Tromey <tromey@adacore.com>
* utils.c (internal_vproblem): Make "msg" const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Fix alignment computation for structs with only static fields
@ 2019-04-11 23:12 sergiodj+buildbot
2019-04-11 23:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 23:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 41077b6625d16cc6c0c4b404a177a8850300b8a0 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 41077b6625d16cc6c0c4b404a177a8850300b8a0
gdb: Fix alignment computation for structs with only static fields
The current code in gdbtypes.c:type_align incorrectly returns 0 as the
alignment for a structure containing only static fields. After this
patch the correct value of 1 is returned. The gdb.base/align.exp test
is extended to cover this case.
gdb/ChangeLog:
* gdbtypes.c (type_align): A struct with no non-static fields also
has alignment of 1.
gdb/testsuite/ChangeLog:
* gdb.base/align.exp: Extend test to cover structures containing
only static fields.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove LANG_MAGIC
@ 2019-04-12 8:47 sergiodj+buildbot
2019-04-12 8:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 8:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 62253a61473764b0d084b01eff06a93fb38bb2e3 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 62253a61473764b0d084b01eff06a93fb38bb2e3
gdb: Remove LANG_MAGIC
The language_defn structure has an la_magic field, this used to be
used as a basic check that the language_defn structure had the
expected layout - at least the end of the structure was where we
expected it to be.
This feature only really makes sense if we imagine GDB dynamically
loading language support from dynamic libraries, where a version
mismatch might cause problems.
However, in current GDB language support is statically built into GDB,
and since this commit:
commit 47e77640be31fc1a4eb3718f594ed5fd0faff065
Date: Thu Jul 20 18:28:01 2017 +0100
Make language_def O(1)
the existing (if pointless) check of the la_magic field was removed.
There now appears to be no use of the la_magic field, and I propose
that we delete it.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* ada-lang.c (ada_language_defn): Remove use of LANG_MAGIC.
* c-lang.c (c_language_defn): Likewise.
(cplus_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
* d-lang.c (d_language_defn): Likewise.
* f-lang.c (f_language_defn): Likewise.
* go-lang.c (go_language_defn): Likewise.
* language.c (unknown_language_defn): Likewise.
(auto_language_defn): Likewise.
* language.h (struct language_defn): Remove la_magic field.
(LANG_MAGIC): Delete.
* m2-lang.c (m2_language_defn): Remove use of LANG_MAGIC.
* objc-lang.c (objc_language_defn): Likewise.
* opencl-lang.c (opencl_language_defn): Likewise.
* p-lang.c (pascal_language_defn): Likewise.
* rust-lang.c (rust_language_defn): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Add gdbserver sysroot test
@ 2019-04-12 10:57 sergiodj+buildbot
2019-04-12 11:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 10:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e5a1a79a4e0ee33292d45b10a759eb41f7358b7c ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: e5a1a79a4e0ee33292d45b10a759eb41f7358b7c
Testsuite: Add gdbserver sysroot test
The local board file ensures that the sysroot is always set to load
files from the local filesystem.
Add a gdbserver test to explicitly test the sysroot set to both the
remote target and the local filesystem.
gdb/testsuite/ChangeLog:
* gdb.server/sysroot.c: New test.
* gdb.server/sysroot.exp: New file.
* lib/gdbserver-support.exp (gdb_target_cmd): Add additional text
matching param.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Another fix for GDB styling
@ 2019-04-12 12:53 sergiodj+buildbot
2019-04-12 13:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 12:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c
Another fix for GDB styling
gdb/ChangeLog:
2019-04-12 Eli Zaretskii <eliz@gnu.org>
* utils.c (prompt_for_continue): Don't restore the styling at the
end, as applied_style has the wrong value. This fixes styling in
long lists of file names that are interrupted by the "Continue?"
prompt.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Fix failure in gdb.base/complex-parts.exp for x86-32
@ 2019-04-13 0:05 sergiodj+buildbot
2019-04-13 0:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-13 0:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 35add35e85c21f02e3e5808273cb77b24069b0aa ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 35add35e85c21f02e3e5808273cb77b24069b0aa
gdb: Fix failure in gdb.base/complex-parts.exp for x86-32
The x86-32 ABI specifies 96-bit long double, this was causing a
failure on the test gdb.base/complex-parts.exp.
The problem is that GDB tries to find a builtin floating point type of
the correct size in order to reuse the name of that type as the name
for the components of the complex type being built.
Previously GDB was only aware of floating point types sized 32, 64, or
128 bits. This patch teaches GDB how to handle 96 bit floating point
type.
gdb/ChangeLog:
* dwarf2read.c (dwarf2_init_complex_target_type): Handle complex
target types of size 96-bits, add some additional comments, and
check that the builtin type we found was the correct size.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim: Use host not target byte order for merging and splitting values
@ 2019-04-13 21:26 sergiodj+buildbot
2019-04-13 22:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-13 21:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 798066abd8e5ec2a411979fd34bfe0cd494c1813 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 798066abd8e5ec2a411979fd34bfe0cd494c1813
sim: Use host not target byte order for merging and splitting values
When using writes to memory through a struct to merge and extract
multi-word value, it is the endianness of the host, not the target
that affects which order the component words need to be written into
the structure.
Of the 5 functions adjusted here 4 of them are unused. The 5th,
JOINSIDF will soon be used by the or1k target.
For or1k, simulated on x86-64, this change fixes this function so that
the correct bytes are now returned.
sim/common/ChangeLog:
* cgen-ops.h (SUBWORDXFSI): Compare HOST_BYTE_ORDER not
CURRENT_TARGET_BYTE_ORDER.
(SUBWORDTFSI): Likewise.
(JOINSIDF): Likewise.
(JOINSIXF): Likewise.
(JOINSITF): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 5/16] BF insns infrastructure with new global reloc R_ARM_THM_BF16
@ 2019-04-15 12:26 sergiodj+buildbot
2019-04-15 12:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 12:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e5d6e09ee6cea13942a8042945e784f483a6f3af ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: e5d6e09ee6cea13942a8042945e784f483a6f3af
[binutils, ARM, 5/16] BF insns infrastructure with new global reloc R_ARM_THM_BF16
This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This adds infrastructure for the BF instructions which is one of the first instructions in Arm that have more than one relocations in them.
This is the third infrastructure patch that adds a new relocation R_ARM_THM_BF16.
The inconsistency between external R_ARM_THM_BF16 and internal
BFD_RELOC_ARM_THUMB_BF17 is because internally we count the static bit-0 of the immediate and we don't externally.
ChangeLog entries are as follows :
*** bfd/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_ARM_THUMB_BF17): New enum.
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
* bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF16.
(elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF17
and R_ARM_THM_BF16 together.
(get_value_helper): New reloc helper.
(elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF16.
*** elfcpp/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm.h (R_ARM_THM_BF16): New relocation code.
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (md_pcrel_from_section): New switch case for
BFD_RELOC_ARM_THUMB_BF17.
(md_appdy_fix): Likewise.
(tc_gen_reloc): Likewise.
*** include/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF16.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Updated to accept new %W pattern.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 6/16] New BF instruction for Armv8.1-M Mainline
@ 2019-04-15 12:41 sergiodj+buildbot
2019-04-15 12:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 12:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4389b29a5af431eeac517272b66560e12df3c430 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 4389b29a5af431eeac517272b66560e12df3c430
[binutils, ARM, 6/16] New BF instruction for Armv8.1-M Mainline
This patch is part of a series of patches to add support for Armv8.1-M Mainline
instructions to binutils.
This patch adds the BF instruction.
ChangeLog entries are as follows:
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (T16_32_TAB): New entries for bf.
(do_t_branch_future): New.
(insns): New instruction for bf.
* testsuite/gas/arm/armv8_1-m-bf.d: New.
* testsuite/gas/arm/armv8_1-m-bf.s: New.
* testsuite/gas/arm/armv8_1-m-bf-bad.s: New.
* testsuite/gas/arm/armv8_1-m-bf-bad.l: New.
* testsuite/gas/arm/armv8_1-m-bf-bad.d: New.
* testsuite/gas/arm/armv8_1-m-bf-rel.d: New.
* testsuite/gas/arm/armv8_1-m-bf-rel.s: New.
*** ld/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-arm/bf.s: New.
* testsuite/ld-arm/bf.d: New.
* testsuite/ld-arm/arm-elf.exp: Add above test.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (thumb32_opcodes): New instructions for bf.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 7/16] New BFX and BFLX instruction for Armv8.1-M Mainline
@ 2019-04-15 13:09 sergiodj+buildbot
2019-04-15 13:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 13:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1c7f42126274d48f6b0a929e4e15a32193997c6 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: f1c7f42126274d48f6b0a929e4e15a32193997c6
[binutils, ARM, 7/16] New BFX and BFLX instruction for Armv8.1-M Mainline
This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This patch adds the BFX and BFLX instructions.
ChangeLog entries are as follows :
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (T16_32_TAB): New entries for bfx and bflx.
(do_t_v8_1_branch): New switch cases for bfx and bflx.
(insns): New instruction for bfx and bflx.
* testsuite/gas/arm/armv8_1-m-bf-exchange.d: New.
* testsuite/gas/arm/armv8_1-m-bf-exchange.s: New.
* testsuite/gas/arm/armv8_1-m-bf-exchange-bad.s: New
* testsuite/gas/arm/armv8_1-m-bf-exchange-bad.l: New
* testsuite/gas/arm/armv8_1-m-bf-exchange-bad.d: New
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Add '%<bitfield>S' to print an
Arm register with r13 and r15 unpredictable.
(thumb32_opcodes): New instructions for bfx and bflx.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 8/16] BFL infrastructure with new global reloc R_ARM_THM_BF18
@ 2019-04-15 13:18 sergiodj+buildbot
2019-04-15 13:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 13:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1caf72a5849abf9a717ed3e0232abf591ff933e7 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 1caf72a5849abf9a717ed3e0232abf591ff933e7
[binutils, ARM, 8/16] BFL infrastructure with new global reloc R_ARM_THM_BF18
This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This adds infrastructure for the BFL instructions which is one of the first instructions in Arm that have more than one relocations in them.
This adds a new relocation R_ARM_THM_BF18.
The inconsistency between external R_ARM_THM_BF18 and internal
BFD_RELOC_ARM_THUMB_BF19 is because internally we count the static bit-0 of the immediate and we don't externally.
ChangeLog entries are as follows :
*** bfd/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_ARM_THUMB_BF19): New
* libbfd.h: Regenerated.
* bfd-in2.h: Regenerated.
* bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF18.
(elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF19
and R_ARM_THM_BF18 together.
(elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF19.
*** elfcpp/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm.h (R_ARM_THM_BF18): New relocation code.
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (md_pcrel_from_section): New switch case for
BFD_RELOC_ARM_THUMB_BF19.
(md_appdy_fix): Likewise.
(tc_gen_reloc): Likewise.
*** include/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF18.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Updated to accept new %Y pattern.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline
@ 2019-04-15 13:33 sergiodj+buildbot
2019-04-15 13:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 13:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 65d1bc05e89e45b102783422c3984ed718547d5c ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 65d1bc05e89e45b102783422c3984ed718547d5c
[binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline
This patch is part of a series of patches to add support for Armv8.1-M Mainline
instructions to binutils.
This patch adds the BFL instruction.
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (T16_32_TAB): New entrie for bfl.
(do_t_v8_1_branch): New switch case for bfl.
(insns): New instruction for bfl.
* testsuite/gas/arm/armv8_1-m-bfl.d: New.
* testsuite/gas/arm/armv8_1-m-bfl.s: New.
* testsuite/gas/arm/armv8_1-m-bfl-bad.s: New.
* testsuite/gas/arm/armv8_1-m-bfl-bad.d: New.
* testsuite/gas/arm/armv8_1-m-bfl-bad.l: New.
* testsuite/gas/arm/armv8_1-m-bfl-rel.d: New.
* testsuite/gas/arm/armv8_1-m-bfl-rel.s: New.
*** ld/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-arm/bfl.s: New.
* testsuite/ld-arm/bfl.d: New.
* testsuite/ld-arm/arm-elf.exp: Add above test.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (thumb32_opcodes): New instruction bfl.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 10/16] BFCSEL infrastructure with new global reloc R_ARM_THM_BF12
@ 2019-04-15 13:50 sergiodj+buildbot
2019-04-15 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 13:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1889da7048b310151d142b100678b6bd6053b548 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 1889da7048b310151d142b100678b6bd6053b548
[binutils, ARM, 10/16] BFCSEL infrastructure with new global reloc R_ARM_THM_BF12
This patch is part of a series of patches to add support for Armv8.1-M Mainline
instructions to binutils.
This adds infrastructure for the BFCSEL instructions which is one of the first
instructions in Arm that have more than one relocations in them.
This adds a new relocation R_ARM_THM_BF12.
The inconsistency between external R_ARM_THM_BF12 and internal
BFD_RELOC_ARM_THUMB_BF13 is because internally we count the static bit-0 of the
immediate and we don't externally.
ChangeLog entries are as follows :
ChangeLog entries are as follows :
*** bfd/ChnageLog ***
2019-04-04 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_ARM_THUMB_BF13): New.
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
* elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF13.
(elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF13
and R_ARM_THM_BF12 together.
(elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF13.
*** elfcpp/ChangeLog ***
2019-04-04 Sudakshina Das <sudi.das@arm.com>
* arm.h (R_ARM_THM_BF12): New relocation code.
*** gas/ChangeLog ***
2019-04-04 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (md_pcrel_from_section): New switch case for
BFD_RELOC_ARM_THUMB_BF13.
(md_appdy_fix): Likewise.
(tc_gen_reloc): Likewise.
*** include/ChangeLog ***
2019-04-04 Sudakshina Das <sudi.das@arm.com>
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF12.
*** opcodes/ChangeLog ***
2019-04-04 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Updated to accept new %Z pattern.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 11/16] New BFCSEL instruction for Armv8.1-M Mainline
@ 2019-04-15 14:07 sergiodj+buildbot
2019-04-15 14:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 14:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f6b2b12db82f7b76c30ec389a67fbce5d2805323 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: f6b2b12db82f7b76c30ec389a67fbce5d2805323
[binutils, ARM, 11/16] New BFCSEL instruction for Armv8.1-M Mainline
s patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This patch adds the BFCSEL instruction. It also adds a local relocation with a new bfd_reloc_code_real enum.
ChangeLog entries are as follows:
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_THUMB_PCREL_BFCSEL): New relocation.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (T16_32_TAB): New entriy for bfcsel.
(do_t_v8_1_branch): New switch case for bfcsel.
(toU): Define.
(insns): New instruction for bfcsel.
(md_pcrel_from_section): New switch case
for BFD_RELOC_THUMB_PCREL_BFCSEL.
(md_appdy_fix): Likewise
(tc_gen_reloc): Likewise.
* testsuite/gas/arm/armv8_1-m-bfcsel.d: New.
* testsuite/gas/arm/armv8_1-m-bfcsel.s: New.
*** ld/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-arm/bfcsel.s: New.
* testsuite/ld-arm/bfcsel.d: New.
* testsuite/ld-arm/arm-elf.exp: Add above test.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (thumb32_opcodes): New instruction bfcsel.
(print_insn_thumb32): Edit the switch case for %Z.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM
@ 2019-04-15 14:41 sergiodj+buildbot
2019-04-15 14:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 14:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4b5a202f107b5393da30fd0b488c3eff2bc758a5 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 4b5a202f107b5393da30fd0b488c3eff2bc758a5
[binutils, ARM, 13/16] Add support for CLRM
Given the similarity between LDM/STM and CLRM register lists, most of the changes in this patch aim at sharing code between those two sets of instruction. Sharing is achieved both in parsing and encoding of those instructions.
In terms of parsing, parse_reg_list () is extended to take a type that describe what type of instruction is being parsed. The reg_list_els used for parse_vfp_reg_list () is reused for the type and that function is added an assert for the new REGLIST_CLRM and REGLIST_RN enumerators.
parse_reg_list () is then taught to accept APSR and reject SP and PC when parsing for a CLRM instruction. At last, caller of parse_reg_list () is updated accordingly and logic is added for the new OP_CLRMLST operand.
Encoding-wise, encode_thumb2_ldmstm () is reused to encode the variable bits of CLRM and is thus renamed encode_thumb2_multi (). A new do_io parameter is added to distinguish between LDM/STM and CLRM which guard all the LDM/STM specific code of the function.
Finally objdump is told how to disassemble CLRM, again reusing the logic to print the LDM/STM register list (format specifier 'm'). Tests are also added in the form of negative tests to check parsing and encoding/disassembling tests.
ChangeLog entries are as follows:
*** gas/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/tc-arm.c (enum reg_list_els): Define earlier and add
REGLIST_RN and REGLIST_CLRM enumerators.
(parse_reg_list): Add etype parameter to distinguish between regular
core register list and CLRM register list. Add logic to
recognize CLRM register list.
(parse_vfp_reg_list): Assert type is not for core register list.
(s_arm_unwind_save_core): Update call to parse_reg_list to new
prototype.
(enum operand_parse_code): Declare OP_CLRMLST enumerator.
(parse_operands): Update call to parse_reg_list to new prototype. Add
logic for OP_CLRMLST.
(encode_thumb2_ldmstm): Rename into ...
(encode_thumb2_multi): This. Add do_io parameter. Add logic to
encode CLRM and guard LDM/STM only code by do_io.
(do_t_ldmstm): Adapt to use encode_thumb2_multi.
(do_t_push_pop): Likewise.
(do_t_clrm): New function.
(insns): Define CLRM.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.d: New file.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Likewise.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Likewise.
* testsuite/gas/arm/archv8m_1m-cmse-main.d: Likewise.
* testsuite/gas/arm/archv8m_1m-cmse-main.s: Likewise.
*** opcodes/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* arm-dis.c (thumb_opcodes): Document %n control code. Add entry for
CLRM.
(print_insn_thumb32): Add logic to print %n CLRM register list.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 15/16] Add support for VSCCLRM
@ 2019-04-15 15:14 sergiodj+buildbot
2019-04-15 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 15:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT efd6b3591b4bc8440f4145dfc0e6dbfc0545f7d8 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: efd6b3591b4bc8440f4145dfc0e6dbfc0545f7d8
[binutils, ARM, 15/16] Add support for VSCCLRM
Like for CLRM, this patch aims to share as much logic with the similar looking VLDM/VSTM. This is achieved by adding 2 new enumerator values in enum reg_list_els for the single-precision and double-precision variants of VSCCLRM and extending parse_vfp_reg_list () to deal with these types.
These behave like the existing REGLIST_VFP_S and REGLIST_VFP_D types with extra logic to expect VPR as the last element in the register list.
The function is algo augmented with a new partial_match parameter to indicate if any register other than VPR had already been parsed in the register list so as to not try parsing the second variant if that's the case and return the right error message.
The rest of the patch is the usual encoding function, new disassembler table entries and format specifier and parsing, encoding and disassembling tests.
It is worth mentioning that the new entry in the disassembler table was added in the coprocessor-related table despite VSCCLRM always being available even in FPU-less configurations. The main reason for this is that VSCCLRM also match VLDMIA entry and must thus be tried first but coprocessor entries are tried before T32 entries. It also makes sense because it is in the same encoding space as coprocessor and VFP instructions and is thus the natural place for someone to look for this instruction.
Note: Both variants of VSCCLRM support D16-D31 registers but Armv8.1-M Mainline overall does not. I have thus decided not to implement support for these registers in order to keep the code simpler. It can always be added later if needed.
ChangeLog entries are as follows:
*** gas/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/tc-arm.c (arm_typed_reg_parse): Fix typo in comment.
(enum reg_list_els): New REGLIST_VFP_S_VPR and REGLIST_VFP_D_VPR
enumerators.
(parse_vfp_reg_list): Add new partial_match parameter. Set
*partial_match to TRUE if at least one element in the register list has
matched. Add support for REGLIST_VFP_S_VPR and REGLIST_VFP_D_VPR
register lists which expect VPR as last element in the list.
(s_arm_unwind_save_vfp_armv6): Adapt call to parse_vfp_reg_list to new
prototype.
(s_arm_unwind_save_vfp): Likewise.
(enum operand_parse_code): New OP_VRSDVLST enumerator.
(parse_operands): Adapt call to parse_vfp_reg_list to new prototype.
Handle new OP_VRSDVLST case.
(do_t_vscclrm): New function.
(insns): New entry for VSCCLRM instruction.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Add invalid VSCCLRM
instructions.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Add error expectations
for above instructions.
* testsuite/gas/arm/archv8m_1m-cmse-main.s: Add tests for VSCCLRM
instruction.
* testsuite/gas/arm/archv8m_1m-cmse-main.d: Add expected disassembly
for above instructions.
*** opcodes/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* arm-dis.c (coprocessor_opcodes): Document new %C format control code.
Add new entries for VSCCLRM instruction.
(print_insn_coprocessor): Handle new %C format control code.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers
@ 2019-04-15 15:32 sergiodj+buildbot
2019-04-15 15:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 15:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66
[binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers
GNU as' Arm backend assumes each mnemonic has a single entry in the instruction table but VLDR (system register) and VSTR (system register) are different instructions than VLDR and VSTR. It is thus necessary to add some form of demultiplexing in the parser. It starts by creating a new operand type OP_VLDR which indicate that the operand is either the existing OP_RVSD operand or a system register. The function parse_operands () then tries these two cases in order, calling the new parse_sys_vldr_vstr for the second case.
Since the encoding function is specified in the instruction table entry, it also need to have some sort of demultiplexing. This is done in do_vldr_vstr which either calls the existing do_neon_ldr_str () or calls the new do_t_vldr_vstr_sysreg ().
A new internal relocation is needed as well since the offset has a shorter range than in other Thumb coprocessor instructions. Disassembly also requires special care since VSTR (system register) reuse the STC encoding with the coprocessor number 15. Armv8.1-M Mainline ARM manual states that coprocessor 8, 14 and 15 are reserved for floating-point and MVE instructions a feature bit check is added if the coprocessor number is one of this value and we are trying to match a coprocessor instruction (eg. STC) to forbid the match.
ChangeLog entries are as follows:
*** bfd/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* reloc.c (BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM): New internal
relocation.
* bfd-in2.h: Regenerate.
* libbfd.h: Likewise.
*** gas/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/tc-arm.c (parse_sys_vldr_vstr): New function.
(OP_VLDR): New enum operand_parse_code enumerator.
(parse_operands): Add logic for OP_VLDR.
(do_t_vldr_vstr_sysreg): New function.
(do_vldr_vstr): Likewise.
(insns): Guard VLDR and VSTR by arm_ext_v4t for Thumb mode.
(md_apply_fix): Add bound check for VLDR and VSTR co-processor offset.
Add masking logic for BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM relocation.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Add examples of bad
uses of VLDR and VSTR.
* testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Add error messages for
above bad uses.
* testsuite/gas/arm/archv8m_1m-cmse-main.s: Add examples of VLDR and
VSTR valid uses.
* testsuite/gas/arm/archv8m_1m-cmse-main.d: Add disassembly for the
above examples.
*** opcodes/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* arm-dis.c (coprocessor_opcodes): Document new %J and %K format
specifier. Add entries for VLDR and VSTR of system registers.
(print_insn_coprocessor): Forbid coprocessor numbers 8, 14 and 15 in
coprocessor instructions on Armv8.1-M Mainline targets. Add handling
of %J and %K format specifier.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init
@ 2019-04-15 15:51 sergiodj+buildbot
2019-04-15 16:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 15:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ccb8d7e8194b848a6c4aa43272540eec0f4f21f2 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ccb8d7e8194b848a6c4aa43272540eec0f4f21f2
AArch64: Tidy up aarch64_gdbarch_init
Move the lookup_by_info to the top of the function to avoid unnecessarily
creating a new feature when the gdbarch already exists.
Add some additional cleanups that have no functional effect.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_gdbarch_init): Move gdbarch lookup.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64 SVE: Check for vector length change when getting gdbarch
@ 2019-04-15 16:10 sergiodj+buildbot
2019-04-15 16:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 16:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4da037ef9dba6c17089250d228efdbe6f7d830c9 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 4da037ef9dba6c17089250d228efdbe6f7d830c9
AArch64 SVE: Check for vector length change when getting gdbarch
Override the thread_architecture method, similar to SPU. If the vector
length has changed, then find the arch using info, making sure the vector
length is passed down to the init routine.
In the init routine, ensure the arch has the correct vector length.
Example output. Program is stopped in thread 2, just before it calls prctl
to change the vector length
(gdb) info threads
Id Target Id Frame
1 Thread 0xffffbf6f4000 (LWP 3188) "sve_change" 0x0000ffffbf6ae130 in pthread_join ()
* 2 Thread 0xffffbf55e200 (LWP 3189) "sve_change" thread1 (arg=0xfeedface) at sve_change_size.c:28
(gdb) print $vg
$1 = 8
(gdb) print $z0.s.u
$2 = {623191333, 623191333, 623191333, 623191333, 0 <repeats 12 times>}
(gdb) n
29 int ret = prctl(PR_SVE_SET_VL, vl/2);
(gdb) n
30 printf ("Changed: ret\n", ret);
(gdb) print $vg
$4 = 4
(gdb) print $z0.s.u
$5 = {623191333, 623191333, 623191333, 623191333, 0, 0, 0, 0}
(gdb) thr 1
[Switching to thread 1 (Thread 0xffffbf6f4000 (LWP 3181))]
(gdb) print $vg
$6 = 8
(gdb) print $z0.s.u
$7 = {623191333, 623191333, 623191333, 623191333, 0 <repeats 12 times>}
gdb/ChangeLog:
* aarch64-linux-nat.c
(aarch64_linux_nat_target::thread_architecture): Add override.
* aarch64-tdep.c (aarch64_gdbarch_init): Ensure different tdesc for
each VQ.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix AMD64 return value ABI in expression evaluation
@ 2019-04-15 16:46 sergiodj+buildbot
2019-04-15 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-15 16:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4aa866af6b13c7080c6d92201fc1a2f4ea19998e ***
Author: Leszek Swirski <leszeks@google.com>
Branch: master
Commit: 4aa866af6b13c7080c6d92201fc1a2f4ea19998e
Fix AMD64 return value ABI in expression evaluation
The AMD64 System V ABI specifies that when a function has a return type
classified as MEMORY, the caller provides space for the value and passes
the address to this space as the first argument to the function (before
even the "this" pointer). The classification of MEMORY is applied to
struct that are sufficiently large, or ones with unaligned fields.
The expression evaluator uses call_function_by_hand to call functions,
and the hand-built frame has to push arguments in a way that matches the
ABI of the called function. call_function_by_hand supports ABI-based
struct returns, based on the value of gdbarch_return_value, however on
AMD64 the implementation of the classifier incorrectly assumed that all
non-POD types (implemented as "all types with a base class") should be
classified as MEMORY and use the struct return.
This ABI mismatch resulted in issues when calling a function that returns
a class of size <16 bytes which has a base class, including issues such
as the "this" pointer being incorrect (as it was passed as the second
argument rather than the first).
This is now fixed by checking for field alignment rather than POD-ness,
and a testsuite is added to test expression evaluation for AMD64.
gdb/ChangeLog:
* amd64-tdep.c (amd64_classify_aggregate): Use cp_pass_by_reference
rather than a hand-rolled POD check when checking for forced MEMORY
classification.
gdb/testsuite/ChangeLog:
* gdb.arch/amd64-eval.cc: New file.
* gdb.arch/amd64-eval.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Allow breakpoints to be created at invalid addresses
@ 2019-04-17 0:08 sergiodj+buildbot
2019-04-17 0:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 0:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c01660c625766e848195285cc20581b9ed7ecfe2 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c01660c625766e848195285cc20581b9ed7ecfe2
gdb/riscv: Allow breakpoints to be created at invalid addresses
Some testsuite cases (gdb.cp/nsalias.exp for example) construct dwarf2
debug info for fake functions to test that this debug info is handled
correctly.
We currently get an error trying to read from an invalid address while
creating breakpoints for these fake functions.
Other targets allow creating breakpoints on invalid addresses, and
only error when GDB actually tries to insert the breakpoints.
In order to make RISC-V behave in the same way as other targets, this
commit makes the failure to read memory during breakpoint creation
non-fatal, we then expect to see a failure when GDB tries to insert
the breakpoint, just like other targets.
Tested with a riscv64-linux native testsuite run.
gdb/ChangeLog:
* riscv-tdep.c (riscv_breakpoint_kind_from_pc): Hanndle case where
code read might fail, assume 4-byte breakpoint in that case.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdbserver: Move remote_debug to a single place
@ 2019-04-17 9:15 sergiodj+buildbot
2019-04-17 9:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 9:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c1bc0935a4afb513486dc0a479cd57c0924b677c ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: c1bc0935a4afb513486dc0a479cd57c0924b677c
gdbserver: Move remote_debug to a single place
A comment in debug.h (written in 2014) states: "We declare debug format
variables here, and debug_threads but no other debug content variables
(e.g., not remote_debug) because while this file is not currently used by
IPA it may be some day, and IPA may have its own set of debug content
variables".
This has resulted in remote_debug being declared in many .c/.h files
throughout gdbserver.
It would be much simplier to define it one place. The most logical place to
define it is in debug.h, surrounded by #define guards. If IPA is changed,
then at that point the variable can be moved elsewhere.
gdb/gdbserver/ChangeLog:
* debug.c (remote_debug): Add definition.
* debug.h (remote_debug): Add declaration.
* hostio.c (remote_debug): Remove declaration.
* remote-utils.c (struct ui_file): Likewise.
(remote_debug): Likewise.
* remote-utils.h (remote_debug): Likewise,
* server.c (remote_debug): Remove definition.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdbserver: Add debug-file option
@ 2019-04-17 9:56 sergiodj+buildbot
2019-04-17 10:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 9:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aeb2e706e1b9c491d20c88c8ead1ae9df9cee04a ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: aeb2e706e1b9c491d20c88c8ead1ae9df9cee04a
gdbserver: Add debug-file option
Add command line option to send all debug output to a given file.
Always default back to stderr.
Add matching monitor command. Add documentation.
gdb/doc/ChangeLog:
* gdb.texinfo
(Other Command-Line Arguments for gdbserver): Add debug-file
option.
(Monitor Commands for gdbserver): Likewise.
(gdbserver man): Likewise.
gdb/gdbserver/ChangeLog:
* debug.c (debug_set_output): New function.
(debug_vprintf): Send output to debug_file.
(debug_flush): Likewise.
* debug.h (debug_set_output): New declaration.
* server.c (handle_monitor_command): Add debug-file option.
(captured_main): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Avoid crash in dwarf2_init_complex_target_type
@ 2019-04-17 13:19 sergiodj+buildbot
2019-04-17 13:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 13:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a12e57448ecf2644e3ddc98bbd4bbb914a5f8c92 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a12e57448ecf2644e3ddc98bbd4bbb914a5f8c92
Avoid crash in dwarf2_init_complex_target_type
After commit 35add35 ("gdb: Fix failure in gdb.base/complex-parts.exp
for x86-32"), dwarf2_init_complex_target_type can crash if "tt" is
nullptr. This patch avoids the problem by checking for this case.
No test case because I don't know a good way to write one; it was
found by an internal AdaCore test case that apparently uses a 16 bit
floating point type.
gdb/ChangeLog:
* dwarf2read.c (dwarf2_init_complex_target_type): Check "tt"
against nullptr before use.
gdb/ChangeLog
2019-04-17 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (dwarf2_init_complex_target_type): Check "tt"
against nullptr before use.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Also check x86 linker_def for non-shared definition
@ 2019-04-17 16:36 sergiodj+buildbot
2019-04-17 16:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 16:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4e84a8f8bbeab52fa7048873655e582ceb92534d ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 4e84a8f8bbeab52fa7048873655e582ceb92534d
x86: Also check x86 linker_def for non-shared definition
Since elf_x86_linker_defined sets linker_def in elf_x86_link_hash_entry
for linker defined symbols, SYMBOL_DEFINED_NON_SHARED_P should also check
linker_def in elf_x86_link_hash_entry.
bfd/
PR ld/24458
* elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86
linker_def.
ld/
PR ld/24458
* testsuite/ld-x86-64/x86-64.exp: Run PR ld/24458 tests.
* testsuite/ld-x86-64/pr24458.s: New file.
* testsuite/ld-x86-64/pr24458a-x32.d: Likewise.
* testsuite/ld-x86-64/pr24458a.d: Likewise.
* testsuite/ld-x86-64/pr24458b-x32.d: Likewise.
* testsuite/ld-x86-64/pr24458b.d: Likewise.
* testsuite/ld-x86-64/pr24458c-x32.d: Likewise.
* testsuite/ld-x86-64/pr24458c.d: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86: Suggest -fPIE when not building shared object
@ 2019-04-17 17:44 sergiodj+buildbot
2019-04-17 17:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 17:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9a7f0679fd3b9815b8eb938bfdad3934b8435419 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 9a7f0679fd3b9815b8eb938bfdad3934b8435419
x86: Suggest -fPIE when not building shared object
When PIC is needed, linker should suggest -fPIE, instead of -fPIC, when
not building shared object.
bfd/
* elf64-x86-64.c (elf_x86_64_need_pic): Suggest -fPIE when not
building shared object.
* elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Likewise.
ld/
* testsuite/ld-i386/i386.exp: Run pr18801a and pr18801b instead
of pr18801.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr18801.d: Removed.
* testsuite/ld-x86-64/pr18801.d: Likewise.
* testsuite/ld-i386/pr18801a.d: New file.
* testsuite/ld-i386/pr18801b.d: Likewise.
* testsuite/ld-x86-64/pr18801a.d: Likewise.
* testsuite/ld-x86-64/pr18801b.d: Likewise.
* testsuite/ld-x86-64/pie2.d: Suggest -fPIE instead of -fPIC.
* testsuite/ld-x86-64/pie2.d: Likewise.
* testsuite/ld-x86-64/pr19719.d: Likewise.
* testsuite/ld-x86-64/pr19807-2a.d: Likewise.
* testsuite/ld-x86-64/pr19969.d: Likewise.
* testsuite/ld-x86-64/pr21997-1a.err: Likewise.
* testsuite/ld-x86-64/pr21997-1b.err: Likewise.
* testsuite/ld-x86-64/pr22001-1a.err: Likewise.
* testsuite/ld-x86-64/pr22001-1b.err: Likewise.
* testsuite/ld-x86-64/pr22791-1.err: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Handle vfork in thread with follow-fork-mode child
@ 2019-04-18 16:30 sergiodj+buildbot
2019-04-18 16:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-18 16:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b73715df01e6e9b3de5a49cd7bf4170deef48461 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: b73715df01e6e9b3de5a49cd7bf4170deef48461
[gdb] Handle vfork in thread with follow-fork-mode child
When debugging any of the testcases added by this commit, which do a
vfork in a thread with "set follow-fork-mode child" + "set
detach-on-fork on", we run into this assertion:
...
src/gdb/nat/x86-linux-dregs.c:146: internal-error: \
void x86_linux_update_debug_registers(lwp_info*): \
Assertion `lwp_is_stopped (lwp)' failed.
...
The assert is caused by the following: the vfork-child exit or exec
event is handled by handle_vfork_child_exec_or_exit, which calls
target_detach to detach from the vfork parent. During target_detach
we call linux_nat_target::detach, which:
#1 - stops all the threads
#2 - waits for all the threads to be stopped
#3 - detaches all the threads
However, during the second step we run into this code in
stop_wait_callback:
...
/* If this is a vfork parent, bail out, it is not going to report
any SIGSTOP until the vfork is done with. */
if (inf->vfork_child != NULL)
return 0;
...
and we don't wait for the threads to be stopped, which results in this
assert in x86_linux_update_debug_registers triggering during the third
step:
...
gdb_assert (lwp_is_stopped (lwp));
...
The fix is to reset the vfork parent's vfork_child field before
calling target_detach in handle_vfork_child_exec_or_exit. There's
already similar code for the other paths handled by
handle_vfork_child_exec_or_exit, so this commit refactors the code a
bit so that all paths share the same code.
The new tests cover both a vfork child exiting, and a vfork child
execing, since both cases would trigger the assertion.
The new testcases also exercise following the vfork children with "set
detach-on-fork off", since it doesn't seem to be tested anywhere.
Tested on x86_64-linux, using native and native-gdbserver.
gdb/ChangeLog:
2019-04-18 Tom de Vries <tdevries@suse.de>
Pedro Alves <palves@redhat.com>
PR gdb/24454
* infrun.c (handle_vfork_child_exec_or_exit): Reset vfork parent's
vfork_child field before calling target_detach.
gdb/testsuite/ChangeLog:
2019-04-18 Tom de Vries <tdevries@suse.de>
Pedro Alves <palves@redhat.com>
PR gdb/24454
* gdb.threads/vfork-follow-child-exec.c: New file.
* gdb.threads/vfork-follow-child-exec.exp: New file.
* gdb.threads/vfork-follow-child-exit.c: New file.
* gdb.threads/vfork-follow-child-exit.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make process_stratum_target::stratum "final"
@ 2019-04-18 16:56 sergiodj+buildbot
2019-04-18 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-18 16:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dc34c8972ec803b093201c4c12e084f059be32f7 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: dc34c8972ec803b093201c4c12e084f059be32f7
Make process_stratum_target::stratum "final"
It seemed to me that process_stratum_target::stratum ought to be
"final".
Tested by rebuilding, let me know what you think.
gdb/ChangeLog
2019-04-18 Tom Tromey <tromey@adacore.com>
* process-stratum-target.h (class process_stratum_target)
<stratum>: Add "final".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver
@ 2019-04-18 21:56 sergiodj+buildbot
2019-04-18 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-18 21:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 36cd4ba59817473935f781174744e7883ff221ee ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 36cd4ba59817473935f781174744e7883ff221ee
[gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver
When running break-probes.exp with native-gdbserver, we run into:
...
FAIL: gdb.base/break-probes.exp: run til our library loads (the program exited)
FAIL: gdb.base/break-probes.exp: call (int) foo(23)
...
due to the fact that we're trying to match:
...
Inferior loaded /data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\
/break-probes/break-probes-solib.so
...
using pattern:
...
Inferior loaded $sysroot$binfile_lib
...
which expands into:
...
Inferior loaded //data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\
/break-probes/break-probes-solib.so
...
Fix by setting sysroot to "" in local-board.exp.
Tested on x86_64-linux with native-gdbserver.
gdb/testsuite/ChangeLog:
2019-04-18 Tom de Vries <tdevries@suse.de>
PR gdb/24433
* boards/local-board.exp: Set sysroot to "".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] s12z and h8300 no-print-map-discarded fails
@ 2019-04-19 8:42 sergiodj+buildbot
2019-04-19 9:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-19 8:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fce9773608d45757dfb26ef7783f37d432ae9a88 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: fce9773608d45757dfb26ef7783f37d432ae9a88
s12z and h8300 no-print-map-discarded fails
This tidies the remaining --no-print-map-discarded fails. h8300-elf
warns on a section without flags, and s12z doesn't support
--gc-sections.
bfd/
* elf32-s12z.c (elf_backend_can_gc_sections): Don't define
ld/
* testsuite/ld-gc/skip-map-discarded.s: Add section attributes.
* testsuite/lib/ld-lib.exp (check_gc_sections_available): Add
s12z to list of targets not supporting --gc-sections.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell"
@ 2019-04-20 15:04 sergiodj+buildbot
2019-04-20 15:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 15:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d563b953142db796f61425a1a300f0feddcdcd55 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: d563b953142db796f61425a1a300f0feddcdcd55
OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell"
gdb/ChangeLog
2019-04-19 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* cli/cli-cmds.c (_initialize_cli_cmds): Move "shell" "!" alias
close to the add_com "shell".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix GDB crash when registers cannot be modified.
@ 2019-04-20 15:36 sergiodj+buildbot
2019-04-20 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 15:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ee3c5f8968e7b43854204898fa46933b3a1b5991 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: ee3c5f8968e7b43854204898fa46933b3a1b5991
Fix GDB crash when registers cannot be modified.
This crash was detected when using GDB with the valgrind gdbserver.
To reproduce:
valgrind sleep 10000
In another window:
gdb
target remote | vgdb
p printf("make sleep print something\n")
=>
terminate called after throwing an instance of 'gdb_exception_error'
Aborted
The problem is that the valgrind gdbserver does not allow to change
registers when the inferior is blocked in a system call.
GDB then raises an exception. The exception causes the destructor
of
typedef std::unique_ptr<infcall_suspend_state, infcall_suspend_state_deleter>
infcall_suspend_state_up;
to be called. This destructor itself tries to restore the value of
the registers, and fails similarly. We must catch the exception in
the destructor to avoid crashing GDB.
If the destructor encounters a problem, no warning is produced if
there is an uncaught exception, as in this case, the user will already
be informed of a problem via this exception.
With this change, no crash anymore, and all the valgrind 3.15 tests
pass succesfully.
gdb/ChangeLog
2019-04-19 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* inferior.h (struct infcall_suspend_state_deleter):
Catch exception in destructor to avoid crash.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix "list" when control characters are seen
@ 2019-04-20 15:56 sergiodj+buildbot
2019-04-20 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 15:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 62160ec9547cdd21ac7334d9a378ca2930aac61c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 62160ec9547cdd21ac7334d9a378ca2930aac61c
Fix "list" when control characters are seen
PR symtab/24423 points out that control characters in a source file
cause a hang in the "list" command, a regression introduced by the
styling changes.
This patch, from the PR, fixes the bug. I've included a minimal
change to the "list" test that exercises this code.
I recall that this bug was discussed on gdb-patches, and I thought
there was a patch there as well, but I was unable to find it.
gdb/ChangeLog
2019-04-19 Ilya Yu. Malakhov <malakhov@mcst.ru>
PR symtab/24423:
* source.c (print_source_lines_base): Advance "iter" when a
control character is seen.
gdb/testsuite/ChangeLog
2019-04-19 Tom Tromey <tromey@adacore.com>
PR symtab/24423:
* gdb.base/list0.h (foo): Add a control-l character.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make copy_name return std::string
@ 2019-04-20 17:12 sergiodj+buildbot
2019-04-20 17:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 61f4b350419e91560be94e0671a760b2e4902c65 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61f4b350419e91560be94e0671a760b2e4902c65
Make copy_name return std::string
This changes copy_name to return a std::string, updating all the
callers. In some cases, an extra copy was removed. This also
required a little bit of constification.
Tested by the buildbot.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* type-stack.h (struct type_stack) <insert>: Constify string.
* type-stack.c (type_stack::insert): Constify string.
* gdbtypes.h (lookup_template_type): Update.
(address_space_name_to_int): Update.
* gdbtypes.c (address_space_name_to_int): Make space_identifier
const.
(lookup_template_type): Make name const.
* c-exp.y: Update rules.
(lex_one_token, classify_name, classify_inner_name)
(c_print_token): Update.
* p-exp.y: Update rules.
(yylex): Update.
* f-exp.y: Update rules.
(yylex): Update.
* d-exp.y: Update rules.
(lex_one_token, classify_name, classify_inner_name): Update.
* parse.c (write_dollar_variable, copy_name): Return std::string.
* parser-defs.h (copy_name): Change return type.
* m2-exp.y: Update rules.
(yylex): Update.
* go-exp.y (lex_one_token): Update.
Update rules.
(classify_unsafe_function, classify_packaged_name)
(classify_name, yylex): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make objfile::static_links an htab_up
@ 2019-04-20 17:28 sergiodj+buildbot
2019-04-20 17:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cf250e36790aaa255bb486e2122bb83c95c7669b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cf250e36790aaa255bb486e2122bb83c95c7669b
Make objfile::static_links an htab_up
This changes objfile::static_links to be an htab_up, so that ~objfile
no longer has to explicitly destroy it.
Tested by the buildbot.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* symfile.c (reread_symbols): Update.
* objfiles.c (objfile_register_static_link)
(objfile_lookup_static_link): Update
(~objfile) Don't delete static_links.
* objfiles.h (struct objfile) <static_links>: Now an htab_up.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use std::list for event notifications in gdbserver
@ 2019-04-20 17:46 sergiodj+buildbot
2019-04-20 18:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 17:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b494cdff6922944383ef4dc20fcc90c4d823d315 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b494cdff6922944383ef4dc20fcc90c4d823d315
Use std::list for event notifications in gdbserver
This changes gdbserver to use std::list rather than common/queue.h for
event notifications.
gdb/gdbserver/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* server.c (struct vstop_notif): Derive from notif_event.
<base>: Remove.
(queue_stop_reply): Update.
(remove_all_on_match_ptid): Change type. Rewrite.
(discard_queued_stop_replies): Rewrite.
(in_queued_stop_replies_ptid): Change type.
(in_queued_stop_replies): Rewrite.
(notif_stop): Update.
(queue_stop_reply_callback): Update.
(captured_main): Don't call initialize_notif.
(push_stop_notification): Update.
* notif.c (notif_write_event, handle_notif_ack)
(notif_event_enque, notif_push): Update.
(notif_event_xfree, initialize_notif): Remove.
* notif.h (struct notif_event): Include <list>, not
"common/queue.h".
(struct notif_server) <queue>: Now a std::list.
(notif_event_p): Remove typedef.
(initialize_notif): Don't declare.
(struct notif_event): Add virtual destructor.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove an include of common/queue.h
@ 2019-04-20 18:22 sergiodj+buildbot
2019-04-20 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 18:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8732db6ceb3d5d352685199a15306dbb69c086d6 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8732db6ceb3d5d352685199a15306dbb69c086d6
Remove an include of common/queue.h
event-loop.c does not need to include common/queue.h, so this removes
it.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* event-loop.c: Don't include "common/queue.h".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove common/queue.h
@ 2019-04-20 18:38 sergiodj+buildbot
2019-04-20 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-20 18:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fb8819867993ee942aacd8ea6d5027b16cecda48 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fb8819867993ee942aacd8ea6d5027b16cecda48
Remove common/queue.h
gdb no longer needs common/queue.h, so this removes it.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* common/queue.h: Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] solib-svr4: Pass down svr4_info as much as possible
@ 2019-04-22 18:42 sergiodj+buildbot
2019-04-23 2:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-22 18:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d70cc3ba8740fc0eb0328da2453cefba8211944b ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: d70cc3ba8740fc0eb0328da2453cefba8211944b
solib-svr4: Pass down svr4_info as much as possible
While reviewing
https://sourceware.org/ml/gdb-patches/2019-04/msg00141.html
I noticed that we relied heavily on global state through the
get_svr4_info function, which uses current_program_space. I thought we
could improve this (make things more explicit and easier to follow) by
- Making get_svr4_info accept a program_space parameter, making it
return the SVR4 info for that program space.
- Passing down the svr4_info object from callers as much as possible.
This means looking up the svr4_info for the appropriate program space at
the entry points of the solib-svr4.c file and passing it down. For now,
these entry points (most of them are "methods" of svr4_so_ops) rely on
current_program_space, but we can later try to change the target_so_ops
interface to pass down the program space.
gdb/ChangeLog:
* solib-svr4.c (get_svr4_info): Add pspace parameter.
(svr4_keep_data_in_core): Pass current_program_space to get_svr4_info.
(open_symbol_file_object): Likewise.
(svr4_default_sos): Add info parameter.
(svr4_read_so_list): Likewise.
(svr4_current_sos_direct): Adjust functions calls to pass down
info.
(svr4_current_sos_1): Add info parameter.
(svr4_current_sos): Call get_svr4_info, pass info down to
svr4_current_sos_1.
(svr4_fetch_objfile_link_map): Pass objfile->pspace to
get_svr4_info.
(svr4_in_dynsym_resolve_code): Pass current_program_space to
get_svr4_info.
(probes_table_htab_remove_objfile_probes): Pass objfile->pspace
to get_svr4_info.
(probes_table_remove_objfile_probes): Likewise.
(register_solib_event_probe): Add info parameter.
(solist_update_incremental): Pass info parameter down to
svr4_read_so_list.
(disable_probes_interface): Add info parameter.
(svr4_handle_solib_event): Pass current_program_space to
get_svr4_info. Adjust disable_probes_interface cleanup.
(svr4_create_probe_breakpoints): Add info parameter, pass it
down to register_solib_event_probe.
(svr4_create_solib_event_breakpoints): Add info parameter,
pass it down to svr4_create_probe_breakpoints.
(enable_break): Pass info down to
svr4_create_solib_event_breakpoints.
(svr4_solib_create_inferior_hook): Pass current_program_space to
get_svr4_info.
(svr4_clear_solib): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Enable 32-bit linux gdb core file support.
@ 2019-04-23 3:32 sergiodj+buildbot
2019-04-23 3:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 3:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79b8e8ab453619cb0262e1ad18447d918a605073 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 79b8e8ab453619cb0262e1ad18447d918a605073
RISC-V: Enable 32-bit linux gdb core file support.
bfd/
* elfnn-riscv.c (PRSTATUS_SIZE) [ARCH_SIZE==32]: Change from 0 to 204.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [FYI] Add myself to gdb/MAINTAINERS
@ 2019-04-23 3:48 sergiodj+buildbot
2019-04-23 4:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 3:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ad9d13f8e966a844e7e647af6e82259101956f17 ***
Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: ad9d13f8e966a844e7e647af6e82259101956f17
[FYI] Add myself to gdb/MAINTAINERS
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support for DW_OP_addrx and DW_FORM_addrx tags
@ 2019-04-23 4:05 sergiodj+buildbot
2019-04-23 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 4:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 336d760da60d93ce76c4560525f65339f3403914 ***
Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: 336d760da60d93ce76c4560525f65339f3403914
Support for DW_OP_addrx and DW_FORM_addrx tags
DW_OP_addrx is the new name of DW_OP_GNU_addr_index, and DW_FORM_addrx
is the name of DW_FORM_addr_index in the Dwarf 5 standard. This is a small
step towards supporting Dwarf 5 in gdb.
Note: I could not find any tests specifically for *_GNU_addr_index, and
I did not add any new tests, please advise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Testsuite: Remove pie from trace tests
@ 2019-04-23 13:32 sergiodj+buildbot
2019-04-23 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 13:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ba22ff8694e366fe5f27824566aae65fc6626841 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ba22ff8694e366fe5f27824566aae65fc6626841
Testsuite: Remove pie from trace tests
Ubuntu/Debian defaults PIE to enabled. This causes the trace tests
to fall over due to variables being returned as "unavailable". The
tests were never designed to work with pie.
Simply ensure the nopie flag is always used for the failing tests.
This removes 100+ failures when running native-gdbserver on Ubuntu 18.04.
gdb/testsuite/ChangeLog:
* gdb.trace/backtrace.exp: Use nopie flag.
* gdb.trace/circ.exp: Likewise.
* gdb.trace/collection.exp: Likewise.
* gdb.trace/ftrace.exp: Likewise.
* gdb.trace/mi-trace-unavailable.exp: Likewise.
* gdb.trace/mi-traceframe-changed.exp: Likewise.
* gdb.trace/qtro.exp: Likewise.
* gdb.trace/read-memory.exp: Likewise.
* gdb.trace/report.exp: Likewise.
* gdb.trace/tfile.exp: Likewise.
* gdb.trace/tfind.exp: Likewise.
* gdb.trace/unavailable.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/contrib] Remove superfluous .alt file after dwz invocation in cc-with-tweaks.sh
@ 2019-04-23 13:59 sergiodj+buildbot
2019-04-23 14:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 13:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6892f60143f7809641dc1824e29dcc406a705df6 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 6892f60143f7809641dc1824e29dcc406a705df6
[gdb/contrib] Remove superfluous .alt file after dwz invocation in cc-with-tweaks.sh
The -m option of cc-with-tweaks.sh sets want_multi to true, invoking dwz like
this:
...
elif [ "$want_multi" = true ]; then
cp $output_file ${output_file}.alt
$DWZ -m ${output_file}.dwz "$output_file" ${output_file}.alt \
> /dev/null 2>&1
fi
...
The problem that is being solved here, is that we want to test dwz in
multifile mode, which requires more than one input file, while we only have
(at the scope of cc-with-tweaks.sh) one executable. We handle this by copying
the executable and offering this as a second input (and using a copy has the
additional benefit that it maximally enables dwz transformation).
However, after the dwz invocation, the copy is no longer used, and the
presence of the file actually causes a test regression:
...
FAIL: gdb.base/jit-so.exp: test jit-reader-load filename completion
...
Fix this by removing the superflous copy after dwz invocation.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-04-23 Tom de Vries <tdevries@suse.de>
PR gdb/24438
* contrib/cc-with-tweaks.sh: Remove superfluous .alt file after dwz
invocation.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver
@ 2019-04-23 14:16 sergiodj+buildbot
2019-04-23 14:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 14:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade
[gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver
When running gdb.btrace/reconnect.exp with native-gdbserver, we run into:
...
FAIL: gdb.btrace/reconnect.exp: first: stepi 19
...
due to the fact that we're trying to match:
...
stepi 19^M
0x00007ffff7dd8b57 in _dl_start () from /lib64/ld-linux-x86-64.so.2^M
...
using pattern:
...
gdb_test "stepi 19" "0x.* in .* from target.*"
...
Fix this by changing the pattern to:
...
gdb_test "stepi 19" "0x.* in .* from .*"
...
Tested on x86_64-linux with native and native-gdbserver.
gdb/testsuite/ChangeLog:
2019-04-23 Tom de Vries <tdevries@suse.de>
PR gdb/24433
* gdb.btrace/reconnect.exp: Fix stepi 19 pattern.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove unused overload of line_header::file_name_at
@ 2019-04-23 17:28 sergiodj+buildbot
2019-04-23 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 17:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9e97ba436a8e59ac4574001d618240eac0328934 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9e97ba436a8e59ac4574001d618240eac0328934
Remove unused overload of line_header::file_name_at
I noticed that one of the overloads of line_header::file_name_at is
unused. This patch removes it.
gdb/ChangeLog
2019-04-23 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (line_header::file_name_at): Remove unused
overload.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible
@ 2019-04-23 22:28 sergiodj+buildbot
2019-04-23 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bf12844a68f3f4f267846a19df6a280f53e7ec5f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf12844a68f3f4f267846a19df6a280f53e7ec5f
gdb/iq2000: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/iq2000-tdep.c (iq2000_unwind_sp): Delete.
(iq2000_unwind_pc): Delete.
(iq2000_dummy_id): Delete.
(iq2000_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible
@ 2019-04-23 22:47 sergiodj+buildbot
2019-04-23 23:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 946c28d2f93789ff4eec86a8c321af35759fa20a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 946c28d2f93789ff4eec86a8c321af35759fa20a
gdb/lm32: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/lm32-tdep.c (lm32_unwind_sp): Delete.
(lm32_unwind_pc): Delete.
(lm32_dummy_id): Delete.
(lm32_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/m32c: Use default gdbarch methods where possible
@ 2019-04-23 23:54 sergiodj+buildbot
2019-04-24 0:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 23:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89b268d8233e11acdfbc5af196166aacc1440ff3 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 89b268d8233e11acdfbc5af196166aacc1440ff3
gdb/m32c: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* m32c-tdep.c (m32c_unwind_pc): Delete.
(m32c_unwind_sp): Delete.
(m32c_dummy_id): Delete.
(m32c_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/m68hc11: Use default gdbarch methods where possible
@ 2019-04-24 0:27 sergiodj+buildbot
2019-04-24 1:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 0:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 43cf3eded2d3ec0af6f5cf534dd89f47d4958a92 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 43cf3eded2d3ec0af6f5cf534dd89f47d4958a92
gdb/m68hc11: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_unwind_pc, and
gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* m68hc11-tdep.c (m68hc11_unwind_pc): Delete.
(m68hc11_unwind_sp): Delete.
(m68hc11_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/mn10300: Use default gdbarch methods where possible
@ 2019-04-24 1:00 sergiodj+buildbot
2019-04-24 1:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 1:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aee6c3cd1fea463422f19394f95c311f239b6067 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: aee6c3cd1fea463422f19394f95c311f239b6067
gdb/mn10300: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* mn10300-tdep.c (mn10300_dummy_id): Delete.
(mn10300_unwind_pc): Delete.
(mn10300_unwind_sp): Delete.
(mn10300_push_dummy_call): Use gdbarch_unwind_sp not
mn10300_unwind_sp.
(mn10300_frame_unwind_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible
@ 2019-04-24 1:15 sergiodj+buildbot
2019-04-24 1:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 1:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 27f113c8e9b2361caf3dfcf15437020306bf93b9 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 27f113c8e9b2361caf3dfcf15437020306bf93b9
gdb/moxie: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* moxie-tdep.c (moxie_unwind_sp): Delete.
(moxie_unwind_pc): Delete.
(moxie_dummy_id): Delete.
(moxie_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible
@ 2019-04-24 1:32 sergiodj+buildbot
2019-04-24 1:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 1:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c825904428f7c89a65eeb313b243f65e950a0a19 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c825904428f7c89a65eeb313b243f65e950a0a19
gdb/msp430: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* msp430-tdep.c (msp430_unwind_pc): Delete.
(msp430_unwind_sp): Delete.
(msp430_dummy_id): Delete.
(msp430_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible
@ 2019-04-24 1:49 sergiodj+buildbot
2019-04-24 2:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 1:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca0ab0aa8194eda711cf52efe6c26cb821218476 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ca0ab0aa8194eda711cf52efe6c26cb821218476
gdb/nds32: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* nds32-tdep.c (nds32_dummy_id): Delete.
(nds32_unwind_pc): Delete.
(nds32_unwind_sp): Delete.
(nds32_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/nios2: Use default gdbarch methods where possible
@ 2019-04-24 2:06 sergiodj+buildbot
2019-04-24 2:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 2:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 96acf8844a655e34de3f3b014a7f64f26266dee1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 96acf8844a655e34de3f3b014a7f64f26266dee1
gdb/nios2: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id, and
gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* nios2-tdep.c (nios2_dummy_id): Delete.
(nios2_unwind_sp): Delete.
(nios2_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible
@ 2019-04-24 2:22 sergiodj+buildbot
2019-04-24 2:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 2:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3f2cef4945a916e3b566010340bbc70cfe927916 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 3f2cef4945a916e3b566010340bbc70cfe927916
gdb/or1k: Use default gdbarch methods where possible
Make use of the default gdbarch method gdbarch_dummy_id where
possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
This commit leaves or1k_unwind_sp and or1k_unwind_pc in place. These
functions do match the default methods except that they add additional
debugging code. In order to preserve the debug I have left these
functions unchanged.
gdb/ChangeLog:
* or1k-tdep.c (or1k_dummy_id): Delete.
(or1k_gdbarch_init): Don't register deleted function with gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/rs6000: Use default gdbarch methods where possible
@ 2019-04-24 2:39 sergiodj+buildbot
2019-04-24 2:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 2:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 833a4480dd7cadfd645d7b141168a0e22dc50665 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 833a4480dd7cadfd645d7b141168a0e22dc50665
gdb/rs6000: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* rs6000-tdep.c (rs6000_unwind_pc): Delete.
(rs6000_dummy_id): Delete.
(rs6000_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/score: Use default gdbarch methods where possible
@ 2019-04-24 3:12 sergiodj+buildbot
2019-04-24 3:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 3:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a40dde9db56ffcea8c2b99e8c4e292ce64f64f9c ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a40dde9db56ffcea8c2b99e8c4e292ce64f64f9c
gdb/score: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* score-tdep.c (score_unwind_sp): Delete.
(score_unwind_pc): Delete.
(score_dummy_id): Delete.
(score_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/sh: Use default gdbarch methods where possible
@ 2019-04-24 3:29 sergiodj+buildbot
2019-04-24 3:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 3:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6d14d64dfefef524398f45fd59c1443ebac624f6 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6d14d64dfefef524398f45fd59c1443ebac624f6
gdb/sh: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* sh-tdep.c (sh_unwind_sp): Delete.
(sh_unwind_pc): Delete.
(sh_dummy_id): Delete.
(sh_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/sparc: Use default_unwind_pc
@ 2019-04-24 3:46 sergiodj+buildbot
2019-04-24 4:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 3:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d31f262c36a450fe64e5886228d585c75cfecf14 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d31f262c36a450fe64e5886228d585c75cfecf14
gdb/sparc: Use default_unwind_pc
Make use of the default gdbarch method gdbarch_unwind_pc where
possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* sparc-tdep.c (sparc_unwind_pc): Delete.
(sparc32_gdbarch_init): Don't register deleted function with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/v850: Use default gdbarch methods where possible
@ 2019-04-24 4:34 sergiodj+buildbot
2019-04-24 4:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 4:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 29222070e410d441108895fcc3011f576bd05461 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 29222070e410d441108895fcc3011f576bd05461
gdb/v850: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* v850-tdep.c (v850_unwind_sp): Delete.
(v850_unwind_pc): Delete.
(v850_dummy_id): Delete.
(v850_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/vax: Use default gdbarch methods where possible
@ 2019-04-24 4:50 sergiodj+buildbot
2019-04-24 4:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 4:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 541aad8ac923fa2d4a9d35fdf82b487b9f6e0ea8 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 541aad8ac923fa2d4a9d35fdf82b487b9f6e0ea8
gdb/vax: Use default gdbarch methods where possible
Make use of the default gdbarch method gdbarch_unwind_pc where
possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* vax-tdep.c (vax_unwind_pc): Delete.
(vax_gdbarch_init): Don't register deleted function with gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible
@ 2019-04-24 5:07 sergiodj+buildbot
2019-04-24 5:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 5:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 14faed38e730e3ab2a1aa8d5232b4883638fd857 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 14faed38e730e3ab2a1aa8d5232b4883638fd857
gdb/xstormy16: Use default gdbarch methods where possible
Make use of the default gdbarch methods for gdbarch_dummy_id,
gdbarch_unwind_pc, and gdbarch_unwind_sp where possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* xstormy16-tdep.c (xstormy16_unwind_sp): Delete.
(xstormy16_unwind_pc): Delete.
(xstormy16_dummy_id): Delete.
(xstormy16_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible
@ 2019-04-24 5:24 sergiodj+buildbot
2019-04-24 6:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 5:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b614e6f3f820fe08d407b57821456f672d4d1a6f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b614e6f3f820fe08d407b57821456f672d4d1a6f
gdb/rl78: Use default gdbarch methods where possible
Make use of the default gdbarch method gdbarch_unwind_sp where
possible.
I have not tested this change but, by inspecting the code, I believe
the default methods are equivalent to the code being deleted.
gdb/ChangeLog:
* rl78-tdep.c (rl78_unwind_sp): Delete.
(rl78_gdbarch_init): Don't register deleted function with gdbarch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: Opcodes: Handle bit map operations with non-canonical operands.
@ 2019-04-24 9:43 sergiodj+buildbot
2019-04-24 9:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 9:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a679f24ecc00ff7df02c5e6e4804fc9f19cbe595 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: a679f24ecc00ff7df02c5e6e4804fc9f19cbe595
S12Z: Opcodes: Handle bit map operations with non-canonical operands.
opcodes/
* s12z-opc.c (bm_decode): Handle the RESERVERD0 case.
gas/
* testsuite/gas/s12z/bit-manip-invalid.d: Extend the test.
* testsuite/gas/s12z/bit-manip-invalid.s: Extend the test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: s12z-opc.h: Add extern "C" bracketing
@ 2019-04-24 9:43 sergiodj+buildbot
2019-04-24 9:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 9:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d10be0cb9e61f29a0de368ebcc78bba22a902ad5 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: d10be0cb9e61f29a0de368ebcc78bba22a902ad5
S12Z: s12z-opc.h: Add extern "C" bracketing
opcodes/
* s12z-opc.h: Add extern "C" bracketing to help
users who wish to use this interface in c++ code.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix passing of struct with bitfields on x86-64
@ 2019-04-24 18:26 sergiodj+buildbot
2019-04-24 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 18:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a59240a41ac34d91e4ef5dd8b484763639388364 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a59240a41ac34d91e4ef5dd8b484763639388364
Fix passing of struct with bitfields on x86-64
Commit 4aa866af ("Fix AMD64 return value ABI in expression
evaluation") introduced a regression when calling a function with a
structure that contains bitfields.
Because the caller of amd64_has_unaligned_fields handles bitfields
already, it seemed to me that the simplest fix was to ignore bitfields
here.
gdb/ChangeLog
2019-04-24 Tom Tromey <tromey@adacore.com>
* amd64-tdep.c (amd64_has_unaligned_fields): Ignore bitfields.
gdb/testsuite/ChangeLog
2019-04-24 Tom Tromey <tromey@adacore.com>
* gdb.arch/amd64-eval.exp: Test bitfield return.
* gdb.arch/amd64-eval.cc (struct Bitfields): New.
(class Foo) <return_bitfields>: New method.
(main): Call it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix Rust testing
@ 2019-04-24 20:48 sergiodj+buildbot
2019-04-24 21:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 20:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1670072efb31e82d52d408940062860e2835d79c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 1670072efb31e82d52d408940062860e2835d79c
Fix Rust testing
This changes the gdb test suite to omit -fno-stack-protector when
compiling Rust code. This makes Rust testing work again.
I think I saw this patch somewhere already, but I couldn't find it
again just now, so I'm checking this version in.
gdb/testsuite/ChangeLog
2019-04-24 Tom Tromey <tromey@adacore.com>
* lib/gdb.exp (gdb_compile): Don't add -fno-stack-protector for
Rust.
^ permalink raw reply [flat|nested] 3666+ messages in thread
[parent not found: <@gdb-build>]
* [binutils-gdb] Detect invalid length field in debug frame FDE header.
@ 2019-04-25 14:51 sergiodj+buildbot
2019-04-25 14:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 14:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 723adb650a31859d7cc45832cb8adca0206455ed ***
Author: Sandra Loosemore <sandra@codesourcery.com>
Branch: master
Commit: 723adb650a31859d7cc45832cb8adca0206455ed
Detect invalid length field in debug frame FDE header.
GDB was failing to catch cases where a corrupt ELF or core file
contained an invalid length value in a Dwarf debug frame FDE header.
It was checking for buffer overflow but not cases where the length was
negative or caused pointer wrap-around.
In addition to the additional validity check, this patch cleans up the
multiple signed/unsigned conversions on the length field so that an
unsigned representation is used consistently throughout.
This patch fixes CVE-2017-9778 and PR gdb/21600.
2019-04-25 Sandra Loosemore <sandra@codesourcery.com>
Kang Li <kanglictf@gmail.com>
PR gdb/21600
* dwarf2-frame.c (read_initial_length): Be consistent about using
unsigned representation of length.
(decode_frame_entry_1): Likewise. Check for wraparound of
end pointer as well as buffer overflow.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-04-25 14:51 [binutils-gdb] Detect invalid length field in debug frame FDE header sergiodj+buildbot
@ 2019-04-25 14:55 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 14:55 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9804>
Commit(s) tested:
723adb650a31859d7cc45832cb8adca0206455ed
Author(s) (in the same order as the commits):
Sandra Loosemore <sandra@codesourcery.com>
Subject:
Detect invalid length field in debug frame FDE header.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/72/723adb650a31859d7cc45832cb8adca0206455ed/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: other threads ran - unlocked
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=2dd2ce50>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=2dd2ce50>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Implement dump of mappings with ELF headers by gcore
@ 2019-04-25 19:20 sergiodj+buildbot
2019-04-25 18:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 19:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 57e5e645010430b3d73f8c6a757d09f48dc8f8d5 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 57e5e645010430b3d73f8c6a757d09f48dc8f8d5
Implement dump of mappings with ELF headers by gcore
This patch has a long story, but it all started back in 2015, with
commit df8411da087dc05481926f4c4a82deabc5bc3859 ("Implement support
for checking /proc/PID/coredump_filter"). The purpose of that commit
was to bring GDB's corefile generation closer to what the Linux kernel
does. However, back then, I did not implement the full support for
the dumping of memory mappings containing ELF headers (like mappings
of DSOs or executables). These mappings were being dumped most of
time, though, because the default value of /proc/PID/coredump_filter
is 0x33, which would cause anonymous private mappings (DSOs/executable
code mappings have this type) to be dumped. Well, until something
happened on binutils...
A while ago, I noticed something strange was happening with one of our
local testcases on Fedora GDB: it was failing due to some strange
build-id problem. On Fedora GDB, we (unfortunately) carry a bunch of
"local" patches, and some of these patches actually extend upstream's
build-id support in order to generate more useful information for the
user of a Fedora system (for example, when the user loads a corefile
into GDB, we detect whether the executable that generated that
corefile is present, and if it's not we issue a warning suggesting
that it should be installed, while also providing the build-id of the
executable). A while ago, Fedora GDB stopped printing those warnings.
I wanted to investigate this right away, and spent some time trying to
determine what was going on, but other things happened and I got
sidetracked. Meanwhile, the bug started to be noticed by some of our
users, and its priority started changing. Then, someone on IRC also
mentioned the problem, and when I tried helping him, I noticed he
wasn't running Fedora. Hm... So maybe the bug was *also* present
upstream.
After "some" time investigating, and with a lot of help from Keith and
others, I was finally able to determine that yes, the bug is also
present upstream, and that even though it started with a change in ld,
it is indeed a GDB issue.
So, as I said, the problem started with binutils, more specifically
after the following commit was pushed:
commit f6aec96dce1ddbd8961a3aa8a2925db2021719bb
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Feb 27 11:34:20 2018 -0800
ld: Add --enable-separate-code
This commit makes ld use "-z separate-code" by default on x86-64
machines. What this means is that code pages and data pages are now
separated in the binary, which is confusing GDB when it tries to decide
what to dump.
BTW, Fedora 28 binutils doesn't have this code, which means that
Fedora 28 GDB doesn't have the problem. From Fedora 29 on, binutils
was rebased and incorporated the commit above, which started causing
Fedora GDB to fail.
Anyway, the first thing I tried was to pass "-z max-page-size" and
specify a bigger page size (I saw a patch that did this and was
proposed to Linux, so I thought it might help). Obviously, this
didn't work, because the real "problem" is that ld will always use
separate pages for code and data. So I decided to look into how GDB
dumped the pages, and that's where I found the real issue.
What happens is that, because of "-z separate-code", the first two pages
of the ELF binary are (from /proc/PID/smaps):
00400000-00401000 r--p 00000000 fc:01 799548 /file
Size: 4 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 4 kB
Pss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 4 kB
Private_Dirty: 0 kB
Referenced: 4 kB
Anonymous: 0 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd mr mw me dw sd
00401000-00402000 r-xp 00001000 fc:01 799548 /file
Size: 4 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 4 kB
Pss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
Referenced: 4 kB
Anonymous: 4 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd ex mr mw me dw sd
Whereas before, we had only one:
00400000-00401000 r-xp 00000000 fc:01 798593 /file
Size: 4 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 4 kB
Pss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
Referenced: 4 kB
Anonymous: 4 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 0 kB
THPeligible: 0
VmFlags: rd ex mr mw me dw sd
Notice how we have "Anonymous" data mapped into the page. This will be
important.
So, the way GDB decides which pages it should dump has been revamped
by my patch in 2015, and now it takes the contents of
/proc/PID/coredump_filter into account. The default value for Linux
is 0x33, which means:
Dump anonymous private, anonymous shared, ELF headers and HugeTLB
private pages.
Or:
filter_flags filterflags = (COREFILTER_ANON_PRIVATE
| COREFILTER_ANON_SHARED
| COREFILTER_ELF_HEADERS
| COREFILTER_HUGETLB_PRIVATE);
Now, it is important to keep in mind that GDB doesn't always have *all*
of the necessary information to exactly determine the type of a page, so
the whole algorithm is based on heuristics (you can take a look at
linux-tdep.c:dump_mapping_p and
linux-tdep.c:linux_find_memory_regions_full for more info).
Before the patch to make ld use "-z separate-code", the (single) page
containing data and code was being flagged as an anonymous (due to the
non-zero "Anonymous:" field) private (due to the "r-xp" permission),
which means that it was being dumped into the corefile. That's why it
was working fine.
Now, as you can imagine, when "-z separate-code" is used, the *data*
page (which is where the ELF notes are, including the build-id one) now
doesn't have any "Anonymous:" mapping, so the heuristic is flagging it
as file-backed private, which is *not* dumped by default.
The next question I had to answer was: how come a corefile generated by
the Linux kernel was correct? Well, the answer is that GDB, unlike
Linux, doesn't actually implement the COREFILTER_ELF_HEADERS support.
On Linux, even though the data page is also treated as a file-backed
private mapping, it is also checked to see if there are any ELF headers
in the page, and then, because we *do* have ELF headers there, it is
dumped.
So, after more time trying to think of ways to fix this, I was able to
implement an algorithm that reads the first few bytes of the memory
mapping being processed, and checks to see if the ELF magic code is
present. This is basically what Linux does as well, except that, if
it finds the ELF magic code, it just dumps one page to the corefile,
whereas GDB will dump the whole mapping. But I don't think that's a
big issue, to be honest.
It's also important to explain that we *only* perform the ELF magic
code check if:
- The algorithm has decided *not* to dump the mapping so far, and;
- The mapping is private, and;
- The mapping's offset is zero, and;
- The user has requested us to dump mappings with ELF headers.
IOW, we're not going to blindly check every mapping.
As for the testcase, I struggled even more trying to write it. Since
our build-id support on upstream GDB is not very extensive, it's not
really possible to determine whether a corefile contains build-id
information or not just by using GDB. So, after thinking a lot about
the problem, I decided to rely on an external tool, eu-unstrip, in
order to verify whether the dump was successful. I verified the test
here on my machine, and everything seems to work as expected (i.e., it
fails without the patch, and works with the patch applied). We are
working hard to upstream our "local" Fedora GDB patches, and we intend
to submit our build-id extension patches "soon", so hopefully we'll be
able to use GDB itself to perform this verification.
I built and regtested this on the BuildBot, and no problems were
found.
gdb/ChangeLog:
2019-04-25 Sergio Durigan Junior <sergiodj@redhat.com>
PR corefiles/11608
PR corefiles/18187
* linux-tdep.c (dump_mapping_p): Add new parameters ADDR and
OFFSET. Verify if current mapping contains an ELF header.
(linux_find_memory_regions_full): Adjust call to
dump_mapping_p.
gdb/testsuite/ChangeLog:
2019-04-25 Sergio Durigan Junior <sergiodj@redhat.com>
PR corefiles/11608
PR corefiles/18187
* gdb.base/coredump-filter-build-id.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove exception_none
@ 2019-04-25 19:27 sergiodj+buildbot
2019-04-25 19:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 19:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cc06b668978e542ecbc2aff1beca40e5baff86b0 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: cc06b668978e542ecbc2aff1beca40e5baff86b0
Remove exception_none
Now that gdb_exception has a constructor, there's no need for
exception_none. This patch removes it.
gdb/ChangeLog
2019-04-25 Tom Tromey <tromey@adacore.com>
* xml-support.c (gdb_xml_parser::gdb_xml_parser): Update.
* python/py-value.c (valpy_getitem, valpy_nonzero): Update.
* python/py-inferior.c (infpy_write_memory, infpy_search_memory):
Update.
* python/py-breakpoint.c (bppy_set_condition, bppy_set_commands):
Update.
* mi/mi-interp.c (mi_interp::exec): Update.
* linespec.c (parse_linespec): Update.
* infcall.c (run_inferior_call): Update.
* guile/scm-value.c (gdbscm_value_to_lazy_string): Update.
* guile/scm-symbol.c (gdbscm_lookup_symbol)
(gdbscm_lookup_global_symbol): Update.
* guile/scm-param.c (gdbscm_parameter_value): Update.
* guile/scm-frame.c (gdbscm_frame_read_register)
(gdbscm_frame_read_var): Update.
* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Update.
* exec.c (try_open_exec_file): Update.
* event-top.c (gdb_rl_callback_read_char_wrapper_noexcept)
(gdb_rl_callback_handler): Update.
* common/common-exceptions.h (exception_none): Don't declare.
* common/common-exceptions.c (exception_none): Don't define.
(struct catcher) <exception>: Update.
* cli/cli-interp.c (safe_execute_command): Update.
* breakpoint.c (insert_bp_location, location_to_sals): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make SJLJ exceptions more efficient
@ 2019-04-25 19:44 sergiodj+buildbot
2019-04-25 19:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 19:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c6fdd8b2052baa9b7a27d4d34f109c9622b53509 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c6fdd8b2052baa9b7a27d4d34f109c9622b53509
Make SJLJ exceptions more efficient
This changes the SJLJ exception handling code to be a bit more
efficient, by using rvalue references and move assignment when
possible.
Tested by the buildbot.
gdb/ChangeLog
2019-04-25 Tom Tromey <tromey@adacore.com>
* event-top.c (gdb_rl_callback_read_char_wrapper_noexcept)
(gdb_rl_callback_handler): Use std::move.
* common/common-exceptions.h (struct gdb_exception): Add move
assignment operator.
(throw_exception_sjlj): Change "exception" to const reference.
* common/common-exceptions.c (exceptions_state_mc_catch): Update.
(throw_exception_sjlj): Change "exception" to const reference.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] c++/24367: Infinite recursion of typedef substitution
@ 2019-04-25 20:51 sergiodj+buildbot
2019-04-25 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 20:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 725cbb63263d27e87f5a4f9b73281e7710de53e4 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 725cbb63263d27e87f5a4f9b73281e7710de53e4
c++/24367: Infinite recursion of typedef substitution
This bug finds another usage where we end up segfaulting while
normalizing user input. inspect_type and replace_type recurse,
attempting to substitute the "real" symbol name for the typedef name.
However, since the both these names are the same, they keep calling
each other until the stack overflows.
A simple reproducer for it is given by
typedef struct foo foo;
int qux (foo *f) { return 0; }
(gdb) b qux(foo*)
Segmentation fault
inspect_type already contains some special handling to prevent a
similar situation from occurring with namespaces. I wonder, however,
whether we need be so pedantic about the exact nature of the substitution.
This patch implements this rather more aggressive assumption that these
substitutions should be avoided whenever the replacement symbol's name is
exactly the same as the one we're trying to substitute. [In the above
example, we're trying to substitute the tyepdef named "foo" with the symbol
named "foo" (a struct).]
gdb/ChangeLog:
PR c++/24367
* cp-support.c (inspect_type): Don't attempt substitutions
of symbol with the same name.
gdb/testsuite/ChangeLog:
PR c++/24367
* gdb.cp/meth-typedefs.cc (incomplete_struct)
(another_incomplete_struct, test_incomplete): New definitions.
(main): Use new definitions.
* gdb.cp/meth-typedefs.exp: Add new tests for `test_incomplete'
functions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [MIPS] Add load-link, store-conditional paired instructions
@ 2019-04-27 1:55 sergiodj+buildbot
2019-04-27 2:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 1:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a45328b93bdd5399da8a9e56817e445cc2068edd ***
Author: Andrew Bennett <andrew.bennett@imgtec.com>
Branch: master
Commit: a45328b93bdd5399da8a9e56817e445cc2068edd
[MIPS] Add load-link, store-conditional paired instructions
Add several baseline MIPS32R6[1] and MIPS64R6[2] instructions
that were omitted from the initial spec. These instructions
are optional in implementations but not associated with any
ASE or pseudo-ASE. Their presence is indicated by the XNP bit
in the Config5 register.
[1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
Instruction Set Manual", Imagination Technologies Ltd., Document
Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
"Alphabetical List of Instructions", pp. 228-229, pp. 354-357.
[2] "MIPS Architecture for Programmers Volume II-A: The MIPS64
Instruction Set Manual", Imagination Technologies Ltd., Document
Number: MD00087, Revision 6.06, December 15, 2016, Section 3.2
"Alphabetical List of Instructions", pp. 289-290 and pp. 458-460.
gas/
* config/tc-mips.c (macro) <M_LLWP_AB, M_LLDP_AB, M_SCWP_AB,
M_SCDP_AB>: New cases and expansions for paired instructions.
* testsuite/gas/mips/llpscp-32.s: New test source.
* testsuite/gas/mips/llpscp-64.s: Likewise.
* testsuite/gas/mips/llpscp-32.d: New test.
* testsuite/gas/mips/llpscp-64.d: Likewise.
* testsuite/gas/mips/mips.exp: Run the new tests.
* testsuite/gas/mips/r6.s: Add new instructions to test source.
* testsuite/gas/mips/r6-64.s: Likewise.
* testsuite/gas/mips/r6-64-n32.d: Check new instructions.
* testsuite/gas/mips/r6-64-n64.d: Likewise.
* testsuite/gas/mips/r6-n32.d: Likewise.
* testsuite/gas/mips/r6-n64.d: Likwwise.
* testsuite/gas/mips/r6.d: Likewise.
include/
* opcode/mips.h (M_LLWP_AB, M_LLDP_AB): New enum values.
(M_SCWP_AB, M_SCDP_AB): Likewise.
opcodes/
* mips-opc.c (mips_builtin_opcodes): Add llwp, lldp, scwp, scdp.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Implement show | set may-call-functions [on|off]
@ 2019-04-27 11:41 sergiodj+buildbot
2019-04-27 11:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 11:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 136afab8c7d8a8a91dbf38e79be4f9dc4125d552 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 136afab8c7d8a8a91dbf38e79be4f9dc4125d552
Implement show | set may-call-functions [on|off]
Inferior function calls are powerful but might lead to undesired
results such as crashes when calling nested functions (frequently
used in particular in Ada).
This implements a GDB setting to disable calling inferior functions.
Note: the idea is that if/when the 'slash command' patch is pushed,
that this setting can be changed e.g. by using the shortcut /c.
This is version 2 of the patch. It handles all the received comments,
mostly replace 'can-call' by 'may-call', and avoid using
'inferior function call' in factor of 'calling function in the program'.
2019-04-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
gdb/ChangeLog
* NEWS: Mention the new set|show may-call-functions.
* infcall.c (may_call_functions_p): New variable.
(show_may_call_functions_p): New function.
(call_function_by_hand_dummy): Throws an error if not
may-call-functions.
(_initialize_infcall): Call add_setshow_boolean_cmd for
may-call-functions.
gdb/testsuite/ChangeLog
* gdb.base/callexit.exp: Test may-call-functions off.
gdb/doc/ChangeLog
* gdb.texinfo (Calling): Document the new
set|show may-call-functions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Follow-up to Support style in 'frame|thread apply'
@ 2019-04-28 5:25 sergiodj+buildbot
2019-04-28 5:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-28 5:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fa731fa0d400568fb1fd68c247fc0c55b53c2a2f ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: fa731fa0d400568fb1fd68c247fc0c55b53c2a2f
Follow-up to Support style in 'frame|thread apply'
Fix build problem when configuring with guile.
Fix the forgotten copy of ChangeLog info to ChangeLog.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] S12Z: Opcodes: Fix crash when trying to decode a truncated operation.
@ 2019-04-29 14:33 sergiodj+buildbot
2019-04-29 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 14:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a90ce955e5bcde074b8616ff9d20f9939a9a358 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: 4a90ce955e5bcde074b8616ff9d20f9939a9a358
S12Z: Opcodes: Fix crash when trying to decode a truncated operation.
opcodes/
* s12z-opc.c (shift_discrim): Return OP_INVALID when reading fails.
gas/
* testsuite/gas/s12z/truncated.d: New file.
* testsuite/gas/s12z/truncated.s: New file.
* testsuite/gas/s12z/s12z.exp: Add new test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix regexp in skip_opencl_tests
@ 2019-04-29 15:13 sergiodj+buildbot
2019-04-29 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 15:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d2b584a55b658fa52ffa3a42b689940d2e98e969 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: d2b584a55b658fa52ffa3a42b689940d2e98e969
[gdb/testsuite] Fix regexp in skip_opencl_tests
When running gdb-caching-proc.exp, if skip_opencl_tests fails like this:
...
(gdb) run
Starting program: \
build/gdb/testsuite/outputs/gdb.base/gdb-caching-proc/opencltest13530.x
CHK_ERR (clGetPlatformIDs (1, &platform, NULL), -1001)
src/gdb/testsuite/lib/opencl_hostapp.c:73 error: Unknown
[Inferior 1 (process 13600) exited with code 01]
(gdb)
skip_opencl_tests: OpenCL support not detected
...
then this regexp in skip_opencl_tests fails to match:
...
-re ".*$inferior_exited_re code.*${gdb_prompt} $" {
...
so instead we hit the default clause after a 30 seconds timeout. With the
iteration count set at 10, we end up taking 6 minutes to run this test-case.
Fix this by adding the missing "with" in the regexp, bring back the runtime to
half a minute.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-04-29 Tom de Vries <tdevries@suse.de>
* lib/opencl.exp (skip_opencl_tests): Add missing "with" in regexp.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Introduce new language field la_struct_too_deep_ellipsis
@ 2019-04-29 21:38 sergiodj+buildbot
2019-04-29 21:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 21:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 721b08c68679ad4058bfa7ae73811e6f9e845cfd ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 721b08c68679ad4058bfa7ae73811e6f9e845cfd
gdb: Introduce new language field la_struct_too_deep_ellipsis
This commit is preparation work for a later commit, and by itself
makes no user visible change to GDB. I've split this work into a
separate commit in order to make code review easier.
This commit adds a new field 'la_struct_too_deep_ellipsis' to the
language struct, this string will be used in the next commit to print
a language specific string from within the generic value printing
code.
In this commit I add the new field and initialise it for each
language, however at this stage the new field is never used.
gdb/ChangeLog:
* language.h (struct language_defn) <la_struct_too_deep_ellipsis>:
New field.
* ada-lang.c (ada_language_defn): Initialise new field.
* c-lang.c (c_language_defn): Likewise.
(cplus_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
* d-lang.c (d_language_defn): Likewise.
* f-lang.c (f_language_defn): Likewise.
* go-lang.c (go_language_defn): Likewise.
* language.c (unknown_language_defn): Likewise.
(auto_language_defn): Likewise.
* m2-lang.c (m2_language_defn): Likewise.
* objc-lang.c (objc_language_defn): Likewise.
* opencl-lang.c (opencl_language_defn): Likewise.
* p-lang.c (pascal_language_defn): Likewise.
* rust-lang.c (rust_language_defn): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Introduce new language field la_is_string_type_p
@ 2019-04-29 21:55 sergiodj+buildbot
2019-04-29 21:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 21:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4be290b2517839872ef7de47230be8dbd291a7e5 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4be290b2517839872ef7de47230be8dbd291a7e5
gdb: Introduce new language field la_is_string_type_p
This commit is preparation work for the next commit, and by itself
makes no user visible change to GDB. I've split this work into a
separate commit in order to make code review easier.
This commit adds a new field 'la_is_string_type_p' to the language
struct, this predicate will return true if a type is a string type for
the given language.
Some languages already have a "is this a string" predicate that I was
able to reuse, while for other languages I've had to add a new
predicate. In this case I took inspiration from the value printing
code for that language - what different conditions would result in
printing something as a string.
A default "is this a string" method has also been added that looks for
TYPE_CODE_STRING, this is the fallback I've used for a couple of
languages.
In this commit I add the new field and initialise it for each
language, however at this stage the new field is never used.
gdb/ChangeLog:
* ada-lang.c (ada_language_defn): Initialise new field.
* c-lang.c (c_is_string_type_p): New function.
(c_language_defn): Initialise new field.
(cplus_language_defn): Initialise new field.
(asm_language_defn): Initialise new field.
(minimal_language_defn): Initialise new field.
* c-lang.h (c_is_string_type_p): Declare new function.
* d-lang.c (d_language_defn): Initialise new field.
* f-lang.c (f_is_string_type_p): New function.
(f_language_defn): Initialise new field.
* go-lang.c (go_is_string_type_p): New function.
(go_language_defn): Initialise new field.
* language.c (default_is_string_type_p): New function.
(unknown_language_defn): Initialise new field.
(auto_language_defn): Initialise new field.
* language.h (struct language_defn) <la_is_string_type_p>: New
member variable.
(default_is_string_type_p): Declare new function.
* m2-lang.c (m2_language_defn): Initialise new field.
* objc-lang.c (objc_language_defn): Initialise new field.
* opencl-lang.c (opencl_language_defn): Initialise new field.
* p-lang.c (pascal_is_string_type_p): New function.
(pascal_language_defn): Initialise new field.
* rust-lang.c (rust_is_string_type_p): New function.
(rust_language_defn): Initialise new field.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Introduce 'print max-depth' feature
@ 2019-04-29 22:12 sergiodj+buildbot
2019-04-29 22:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 22:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7
gdb: Introduce 'print max-depth' feature
Introduce a new print setting max-depth which can be set with 'set
print max-depth DEPTH'. The default value of DEPTH is 20, but this
can also be set to unlimited.
When GDB is printing a value containing nested structures GDB will
stop descending at depth DEPTH. Here is a small example:
typedef struct s1 { int a; } s1;
typedef struct s2 { s1 b; } s2;
typedef struct s3 { s2 c; } s3;
typedef struct s4 { s3 d; } s4;
s4 var = { { { { 3 } } } };
The following table shows how various depth settings affect printing
of 'var':
| Depth Setting | Result of 'p var' |
|---------------+--------------------------------|
| Unlimited | $1 = {d = {c = {b = {a = 3}}}} |
| 4 | $1 = {d = {c = {b = {a = 3}}}} |
| 3 | $1 = {d = {c = {b = {...}}}} |
| 2 | $1 = {d = {c = {...}}} |
| 1 | $1 = {d = {...}} |
| 0 | $1 = {...} |
Only structures, unions, and arrays are replaced in this way, scalars
and strings are not replaced.
The replacement is counted from the level at which you print, not from
the top level of the structure. So, consider the above example and
this GDB session:
(gdb) set print max-depth 2
(gdb) p var
$1 = {d = {c = {...}}}
(gdb) p var.d
$2 = {c = {b = {...}}}
(gdb) p var.d.c
$3 = {b = {a = 3}}
Setting the max-depth to 2 doesn't prevent the user from exploring
deeper into 'var' by asking for specific sub-fields to be printed.
The motivation behind this feature is to try and give the user more
control over how much is printed when examining large, complex data
structures.
The default max-depth of 20 means that there is a change in GDB's
default behaviour. Someone printing a data structure with 20 levels
of nesting will now see '{...}' instead of their data, they would need
to adjust the max depth, or call print again naming a specific field
in order to dig deeper into their data structure. If this is
considered a problem then we could increase the default, or even make
the default unlimited.
This commit relies on the previous commit, which added a new field to
the language structure, this new field was a string that contained the
pattern that should be used when a structure/union/array is replaced
in the output, this allows languages to use a syntax that is more
appropriate, mostly this will be selecting the correct types of
bracket '(...)' or '{...}', both of which are currently in use.
This commit should have no impact on MI output, expressions are
printed through the MI using -var-create and then -var-list-children.
As each use of -var-list-children only ever displays a single level of
an expression then the max-depth setting will have no impact.
This commit also adds the max-depth mechanism to the scripting
language pretty printers following basically the same rules as for the
built in value printing.
One quirk is that when printing a value using the display hint 'map',
if the keys of the map are structs then GDB will hide the keys one
depth level after it hides the values, this ensures that GDB produces
output like this:
$1 = map_object = {[{key1}] = {...}, [{key2}] = {...}}
Instead of this less helpful output:
$1 = map_object = {[{...}] = {...}, [{...}] = {...}}
This is covered by the new tests in gdb.python/py-nested-maps.exp.
gdb/ChangeLog:
* cp-valprint.c (cp_print_value_fields): Allow an additional level
of depth when printing anonymous structs or unions.
* guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer):
Don't print either the top-level value, or the children if the
max-depth is exceeded.
(ppscm_print_children): When printing the key of a map, allow one
extra level of depth.
* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Don't
print either the top-level value, or the children if the max-depth
is exceeded.
(print_children): When printing the key of a map, allow one extra
level of depth.
* python/py-value.c (valpy_format_string): Add max_depth keyword.
* valprint.c: (PRINT_MAX_DEPTH_DEFAULT): Define.
(user_print_options): Initialise max_depth field.
(val_print_scalar_or_string_type_p): New function.
(val_print): Check to see if the max depth has been reached.
(val_print_check_max_depth): Define new function.
(show_print_max_depth): New function.
(_initialize_valprint): Add 'print max-depth' option.
* valprint.h (struct value_print_options) <max_depth>: New field.
(val_print_check_max_depth): Declare new function.
* NEWS: Document new feature.
gdb/doc/ChangeLog:
* gdb.texinfo (Print Settings): Document 'print max-depth'.
* guile.texi (Guile Pretty Printing API): Document that 'print
max-depth' can effect the display of a values children.
* python.texi (Pretty Printing API): Likewise.
(Values From Inferior): Document max_depth keyword.
gdb/testsuite/ChangeLog:
* gdb.base/max-depth.c: New file.
* gdb.base/max-depth.exp: New file.
* gdb.python/py-nested-maps.c: New file.
* gdb.python/py-nested-maps.exp: New file.
* gdb.python/py-nested-maps.py: New file.
* gdb.python/py-format-string.exp (test_max_depth): New proc.
(test_all_common): Call test_max_depth.
* gdb.fortran/max-depth.exp: New file.
* gdb.fortran/max-depth.f90: New file.
* gdb.go/max-depth.exp: New file.
* gdb.go/max-depth.go: New file.
* gdb.modula2/max-depth.exp: New file.
* gdb.modula2/max-depth.c: New file.
* lib/gdb.exp (get_print_expr_at_depths): New proc.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Additional builtin procedures
@ 2019-04-30 13:16 sergiodj+buildbot
2019-04-30 13:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 13:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c
gdb/fortran: Additional builtin procedures
Add some additional builtin procedures for Fortran, these are MOD,
CEILING, FLOOR, MODULO, and CMPLX.
gdb/ChangeLog:
* f-exp.y (BINOP_INTRINSIC): New token.
(exp): New parser rule handling BINOP_INTRINSIC.
(f77_keywords): Add new builtin procedures.
* f-lang.c (evaluate_subexp_f): Handle BINOP_MOD, UNOP_FORTRAN_CEILING,
UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
(operator_length_f): Handle UNOP_FORTRAN_CEILING,
UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
(print_unop_subexp_f): New function.
(print_binop_subexp_f): New function.
(print_subexp_f): Handle UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR,
BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX.
(dump_subexp_body_f): Likewise.
(operator_check_f): Likewise.
* fortran-operator.def: Add UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR,
BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX
gdb/testsuite/ChangeLog:
* gdb.fortran/intrinsics.exp: Extend to cover MOD, CEILING, FLOOR,
MODULO, CMPLX.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: print function arguments when printing function type
@ 2019-04-30 13:50 sergiodj+buildbot
2019-04-30 13:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 13:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bf7a4de1722a63c8b017d010e75d5e9e5e622f36 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf7a4de1722a63c8b017d010e75d5e9e5e622f36
gdb/fortran: print function arguments when printing function type
Before this commit using ptype on a Fortran function will include
information about the functions return type, but not the expected
arguments as it would for C or C++. After this commit argument types
are included in the ptype output.
For example, before GDB prints:
(gdb) ptype fun1
type = integer(kind=4) ()
(gdb) ptype is_bigger
type = logical(kind=4) ()
and after GDB prints:
(gdb) ptype fun1
type = integer(kind=4) (integer(kind=4))
(gdb) ptype is_bigger
type = logical(kind=4) (integer(kind=4), integer(kind=4))
gdb/ChangeLog:
* f-typeprint.c (f_type_print_varspec_suffix): Handle printing
function arguments.
gdb/testsuite/ChangeLog:
* gdb.fortran/ptype-on-functions.exp: New file.
* gdb.fortran/ptype-on-functions.f90: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Update rules for printing whitespace in types
@ 2019-04-30 14:07 sergiodj+buildbot
2019-04-30 14:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 14:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1fdc960664c24d911d6189b94e5c054b4bb9053 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f1fdc960664c24d911d6189b94e5c054b4bb9053
gdb/fortran: Update rules for printing whitespace in types
The whitespace produced as types are printed seems inconsistent. This
commit updates the rules in an attempt to make whitespace more
balanced and consistent. Expected results are updated.
gdb/ChangeLog:
* f-typeprint.c (f_print_type): Update rules for printing
whitespace.
(f_type_print_varspec_suffix): Likewise.
gdb/testsuite/ChangeLog:
* gdb.fortran/ptr-indentation.exp: Update expected results.
* gdb.fortran/ptype-on-functions.exp: Likewise.
* gdb.fortran/vla-ptr-info.exp: Likewise.
* gdb.fortran/vla-value.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add allocatable type qualifier
@ 2019-04-30 14:23 sergiodj+buildbot
2019-04-30 14:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 14:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bc68014d16c30a6e90fdf9fc43e98be8cbbead9a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bc68014d16c30a6e90fdf9fc43e98be8cbbead9a
gdb/fortran: Add allocatable type qualifier
Types in Fortran can have the 'allocatable' qualifier attached to
indicate that memory needs to be explicitly allocated by the user.
This patch extends GDB to show this qualifier when printing types.
Lots of tests results are then updated to include this new qualifier
in the expected results.
gdb/ChangeLog:
* f-typeprint.c (f_type_print_base): Print 'allocatable' type
qualifier.
* gdbtypes.h (TYPE_IS_ALLOCATABLE): Define.
gdb/testsuite/ChangeLog:
* gdb.fortran/vla-datatypes.exp: Update expected results.
* gdb.fortran/vla-ptype.exp: Likewise.
* gdb.fortran/vla-type.exp: Likewise.
* gdb.fortran/vla-value.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix crash in dwarf2read.c with template parameters
@ 2019-04-30 15:12 sergiodj+buildbot
2019-04-30 15:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 15:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a776957c8c3a9177345ee7ca91077234ed7f508e ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a776957c8c3a9177345ee7ca91077234ed7f508e
Fix crash in dwarf2read.c with template parameters
PR c++/24470 concerns a crash in dwarf2read.c that occurs with a
particular test case.
The issue turns out to be that process_structure_scope will pass NULL
to symbol_symtab. This happens because new_symbol decided not to
create a symbol for the particular DIE.
This patch fixes the problem by finding another reasonably-appropriate
symtab to use instead; issuing a complaint if one cannot be found for
some reason.
As mentioned in the bug, I think there are other bugs here. For
example, when using "ptype" on the "l" object in the test case, I
think I would expect to see the template parameter. I didn't research
this too closely, since it seemed more important to fix the crash.
Tested on x86-64 Fedora 29.
I'd like to check this in to the 8.3 branch as well.
2019-04-30 Tom Tromey <tromey@adacore.com>
PR c++/24470:
* dwarf2read.c (process_structure_scope): Handle case where type
has template parameters but no symbol was created.
gdb/testsuite/ChangeLog
2019-04-30 Tom Tromey <tromey@adacore.com>
PR c++/24470:
* gdb.cp/temargs.cc: Add test code from PR.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix "catch exception" with dynamic linking
@ 2019-04-30 15:28 sergiodj+buildbot
2019-04-30 15:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 15:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2ff0a947394eebf5ff9cd26088dce60ec8c10b48 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 2ff0a947394eebf5ff9cd26088dce60ec8c10b48
Fix "catch exception" with dynamic linking
When an Ada program is dynamically linked against libgnat, and when
one of the standard exceptions is used, the exception object may be
referenced by the main executable using a copy relocation.
In this situation, a "catch exception" for those exceptions will not
manage to stop. This happens because, under the hood, "catch
exception" creates an expression object that examines the object
addresses -- but in this case, the address will be incorrect.
This patch fixes the problem by arranging for these filter expressions
to examine all the relevant minimal symbols. This way, the object
from libgnat will be found as well.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-04-30 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_lookup_simple_minsyms): New function.
(create_excep_cond_exprs): Iterate over program spaces.
(ada_exception_catchpoint_cond_string): Examine all minimal
symbols for exception types.
gdb/testsuite/ChangeLog
2019-04-30 Tom Tromey <tromey@adacore.com>
* lib/ada.exp (find_ada_tool): New proc.
* lib/gdb.exp (gdb_compile_shlib): Allow .o files as inputs.
* gdb.ada/catch_ex_std.exp: New file.
* gdb.ada/catch_ex_std/foo.adb: New file.
* gdb.ada/catch_ex_std/some_package.adb: New file.
* gdb.ada/catch_ex_std/some_package.ads: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/windows-nat.c: Get rid of main_thread_id global
@ 2019-04-30 21:55 sergiodj+buildbot
2019-04-30 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 21:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ab4ee6147eb2e8fafd1fb96c945029c789182d3b ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: ab4ee6147eb2e8fafd1fb96c945029c789182d3b
gdb/windows-nat.c: Get rid of main_thread_id global
This global is meant to point to the "main" thread of execution of
the program we are debugging. It is set when attaching to a process
or when receiving a CREATE_PROCESS_DEBUG_EVENT event. The theory at
the time was that this was also going to be the thread receiving
the EXIT_PROCESS_DEBUG_EVENT event.
Unfortunately, we have discovered since then that this is actually
not guaranteed. What this means in practice is that there is moderate
risk that main_thread_id refers to a thread which no longer exists.
This global is used in 3 situations:
- OUTPUT_DEBUG_STRING_EVENT
- LOAD_DLL_DEBUG_EVENT
- UNLOAD_DLL_DEBUG_EVENT
It's not clear why we would need to use the main_thread_id in those cases
instead of using the thread ID provided by the kernel events itself.
So this patch implements this approach, which then allows us to delete
the main_thread_id global.
gdb/testsuite:
* windows-nat.c (main_thread_id): Delete.
(handle_output_debug_string): Replace main_thread_id by
current_event.dwThreadId.
(fake_create_process): Likewise.
(get_windows_debug_event) <CREATE_PROCESS_DEBUG_EVENT>:
Do not set main_thread_id.
<LOAD_DLL_DEBUG_EVENT>: Replace main_thread_id by
current_event.dwThreadId.
<UNLOAD_DLL_DEBUG_EVENT>: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.
@ 2019-04-30 23:41 sergiodj+buildbot
2019-04-30 23:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 23:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b ***
Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b
Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.
Dwarf5 defines DW_FORM_strx1 and others, which are similar
to DW_FORM_strx but uses 1-4 bytes unsigned integers. This is
a small step towards supporting dwarf5 in gdb.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-04-30 23:41 [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms sergiodj+buildbot
@ 2019-04-30 23:43 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 23:43 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9848>
Commit(s) tested:
15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b
Author(s) (in the same order as the commits):
Ali Tamur <tamur@google.com>
Subject:
Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/15/15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=eaf7ef42>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=eaf7ef42>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp
@ 2019-05-01 13:53 sergiodj+buildbot
2019-05-01 14:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f59f30f55776b10d4f728065e9f9a10cf63a1b29 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f59f30f55776b10d4f728065e9f9a10cf63a1b29
[gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp
When running fullpath-expand.exp with target_board=dwarf4-gdb-index, we run
into:
...
$ make check-gdb RUNTESTFLAGS="--target_board=dwarf4-gdb-index fullpath-expand.exp"
Running src/gdb/testsuite/gdb.base/fullpath-expand.exp ...
gdb compile failed, cc-with-tweaks.sh: unable to find usable gdb
=== gdb Summary ===
nr of untested testcases 1
...
The same happens with fullname.exp.
The dwarf4-gdb-index.exp board file includes cc-with-tweaks.exp, which uses
cc-with-tweaks.sh, which calls gdb-add-index.sh.
The gdb-add-index.sh script uses a gdb executable, defaulting to gdb:
...
GDB=${GDB:=gdb}
...
The cc-with-tweaks.sh script tries to ensure that the build gdb executable is
used by gdb-add-index.sh:
...
if [ -z "$GDB" ]
then
if [ -f ./gdb ]
then
GDB="./gdb -data-directory data-directory"
elif [ -f ../gdb ]
then
GDB="../gdb -data-directory ../data-directory"
elif [ -f ../../gdb ]
then
GDB="../../gdb -data-directory ../../data-directory"
else
echo "$myname: unable to find usable gdb" >&2
exit 1
fi
fi
...
So, if the current directory is build/gdb/testsuite, then a gdb executable
build/gdb/testsuite/../gdb will be used.
However, in the case of fullpath-expand.exp the test cd's into the sources:
...
set saved_pwd [pwd]
cd $srcdir
set err [gdb_compile "${subdir}/${srcfile} ${subdir}/${srcfile2}" $binfile \
executable {debug}]
cd $saved_pwd
...
and cc-with-tweaks.sh generates the "unable to find usable gdb" error.
The same error occurs if we use --target_board=cc-with-dwz instead (only in
this case we actually don't need gdb, we just need the GDB variable to be set
in cc-with-tweaks.sh, which arguably is a bug in cc-with-tweaks.sh).
Fix both errors in cc-with-tweaks.exp by generating a gdb script gdb.sh using
$GDB, $GDBFLAGS and $INTERNAL_GDBFLAGS and passing this script to
cc-with-tweaks.sh by setting env(GDB).
Tested on x86_64-linux for gdb.base.
gdb/testsuite/ChangeLog:
2019-05-01 Tom de Vries <tdevries@suse.de>
* boards/cc-with-tweaks.exp: Generate gdb.sh, and pass it in env(GDB).
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix bug in assignment to nested packed structure
@ 2019-05-01 14:52 sergiodj+buildbot
2019-05-01 14:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 14:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4504bbdec57c77b6468838276e62b2137eedfdd5 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4504bbdec57c77b6468838276e62b2137eedfdd5
Fix bug in assignment to nested packed structure
A user at AdaCore found a case where assignment to a nested packed
structure would fail. The bug is that ada_value_primitive_field
doesn't account for the situation where a field is not packed relative
to its containing structure, but where the structure itself is packed
in its parent.
gdb/ChangeLog
2019-05-01 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_value_primitive_field): Treat more fields as
bitfields.
gdb/testsuite/ChangeLog
2019-05-01 Tom Tromey <tromey@adacore.com>
* gdb.ada/packed_array_assign/aggregates.ads (Nested_Packed): New
record.
(NPR): New variable.
* gdb.ada/packed_array_assign.exp: Add nested packed assignment
test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension
@ 2019-05-01 16:32 sergiodj+buildbot
2019-05-01 17:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 16:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b83b4b138298d2a6bfab11f533d7e315c0a1c97b ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: b83b4b138298d2a6bfab11f533d7e315c0a1c97b
[BINUTILS, AArch64] Enable Transactional Memory Extension
This patch enables the new Transactional Memory Extension added recently
as part of Arm's new architecture technologies.
We introduce a new optional extension "tme" to enable this. The following
instructions are part of the extension:
* tstart <Xt>
* ttest <Xt>
* tcommit
* tcancel #<imm>
The ISA for the above can be found here:
https://developer.arm.com/docs/ddi0602/latest/base-instructions-alphabetic-order
*** gas/ChangeLog ***
2019-05-01 Sudakshina Das <sudi.das@arm.com>
* config/tc-aarch64.c (parse_operands): Add case for
AARCH64_OPND_TME_UIMM16.
(aarch64_features): Add "tme".
* doc/c-aarch64.texi: Document the same.
* testsuite/gas/aarch64/tme-invalid.d: New test.
* testsuite/gas/aarch64/tme-invalid.l: New test.
* testsuite/gas/aarch64/tme-invalid.s: New test.
* testsuite/gas/aarch64/tme.d: New test.
* testsuite/gas/aarch64/tme.s: New test.
*** include/ChangeLog ***
2019-05-01 Sudakshina Das <sudi.das@arm.com>
* opcode/aarch64.h (AARCH64_FEATURE_TME): New.
(enum aarch64_opnd): Add AARCH64_OPND_TME_UIMM16.
*** opcodes/ChangeLog ***
2019-05-01 Sudakshina Das <sudi.das@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
* aarch64-opc.c (operand_general_constraint_met_p): Add case for
AARCH64_OPND_TME_UIMM16.
(aarch64_print_operand): Likewise.
* aarch64-tbl.h (QL_IMM_NIL): New.
(TME): New.
(_TME_INSN): New.
(struct aarch64_opcode): Add tstart, tcommit, ttest and tcancel.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove _initialize_valarith
@ 2019-05-03 1:02 sergiodj+buildbot
2019-05-03 2:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 1:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b8c05e85ef4ce9610a3a43198180cf24aea327cb ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: b8c05e85ef4ce9610a3a43198180cf24aea327cb
Remove _initialize_valarith
I noticed that _initialize_valarith is empty. This patch removes it.
Because init.c is constructed at build time, there's no reason to keep
empty initialization functions around, because there's no overhead to
reintroducing them when needed.
gdb/ChangeLog
2019-05-02 Tom Tromey <tromey@adacore.com>
* valarith.c (_initialize_valarith): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] On MS-Windows, define _WIN32_WINNT in a single common place.
@ 2019-05-03 8:37 sergiodj+buildbot
2019-05-03 8:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 8:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 353ea2d106a51cfd1680f7d351f35eb8f69c9248 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 353ea2d106a51cfd1680f7d351f35eb8f69c9248
On MS-Windows, define _WIN32_WINNT in a single common place.
This changeset defines _WIN32_WINNT to at least 0x0501, the level
of Windows XP, unless defined to a higher level, in a single
place. It then removes all the overrides of _WIN32_WINNT in
individual files as no longer needed. Doing this also solves
compilation of windows-nat.c with mingw.org's MinGW, as that
file uses CONSOLE_FONT_INFO which needs the XP level to become
exposed in the Windows headers, while mingw.org defaults to
Windows 9X.
gdb/ChangeLog:
2019-05-03 Eli Zaretskii <eliz@gnu.org>
* common/common-defs.h [__MINGW32__ || __CYGWIN__]: Define
_WIN32_WINNT to the XP level, unless already defined to a higher
level.
* unittests/parse-connection-spec-selftests.c:
* ser-tcp.c:
* common/netstuff.c [USE_WIN32API]: Remove the _WIN32_WINNT
override.
gdb/gdbserver/ChangeLog:
2019-05-03 Eli Zaretskii <eliz@gnu.org>
* remote-utils.c:
* gdbreplay.c [USE_WIN32API]: Remove the _WIN32_WINNT override.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add cc-with-gdb-index.exp
@ 2019-05-03 11:15 sergiodj+buildbot
2019-05-03 11:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 11:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0fdfd794d22b3b516c3031e76afecaa0ed813931 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 0fdfd794d22b3b516c3031e76afecaa0ed813931
[gdb/testsuite] Add cc-with-gdb-index.exp
Add a target board cc-with-gdb-index.exp, to make it easy to run cc-with-tweaks
with CC_WITH_TWEAKS_FLAGS='-i'.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-03 Tom de Vries <tdevries@suse.de>
* boards/cc-with-gdb-index.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add noyywrap to ada-lex.l
@ 2019-05-03 23:22 sergiodj+buildbot
2019-05-03 23:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 23:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fcd60b848ed7619461b0b0e316201e7745cdb61d ***
Author: Dilyan Palauzov <dilyan.palauzov@aegee.org>
Branch: master
Commit: fcd60b848ed7619461b0b0e316201e7745cdb61d
Add noyywrap to ada-lex.l
This patch comes from PR ada/21406. It adds the noyywrap option to
ada-lex.l. This was already done (by the same author) for other .l
files in the binutils-gdb tree, so it seems reasonably safe.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-03 Dilyan Palauzov <dilyan.palauzov@aegee.org>
PR ada/21406:
* ada-exp.y (yywrap): Don't define.
* ada-lex.l (%option): Add noyywrap
(yywrap): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix cast of character to enum type in Ada
@ 2019-05-03 23:39 sergiodj+buildbot
2019-05-04 0:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 23:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 222a8d255834c717f1690658a9f85501a46f9403 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 222a8d255834c717f1690658a9f85501a46f9403
Fix cast of character to enum type in Ada
An internal bug report points out that, when a global character enum
type is used, casting fails, like:
(gdb) print global_char_enum'('F')
$1 = 70
The bug here turns out to be that enumerators are qualified, so for
example the mangled name might be "pck__QU48", rather than "QU48".
This patch fixes the problem by only examining the suffix of the
enumerator. This is ok because the type is already known, and because
the mangling scheme ensures that there won't be clashes.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-03 Tom Tromey <tromey@adacore.com>
* ada-exp.y (convert_char_literal): Check suffix of each
enumerator.
gdb/testsuite/ChangeLog
2019-05-03 Tom Tromey <tromey@adacore.com>
* gdb.ada/char_enum/pck.ads (Global_Enum_Type): New type.
* gdb.ada/char_enum/foo.adb: Use Global_Enum_Type.
* gdb.ada/char_enum.exp: Add test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24511, nm should not mark symbols in .init_array as "t"
@ 2019-05-04 8:16 sergiodj+buildbot
2019-05-04 8:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 8:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a288c270991de1578ad28ac312120f4167347234 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a288c270991de1578ad28ac312120f4167347234
PR24511, nm should not mark symbols in .init_array as "t"
This patch restricts the section names matched in coff_section_type,
a function that translates section names to symbol type, and arranges
to translate section flags to symbol type before looking at names.
The latter change resulted in various test failures due to improper
section flags being used in tests, and by the plugin support, so fix
that too.
The new test fails on many ELF targets that lack .init/fini_array
in their scripts. I've just xfailed those. pru-elf oddly defines
__init_array_begin rather than __init_array_start. I've left that
target as a FAIL, and pj-elf too which reports an error for undefined
weak symbols.
bfd/
PR 24511
* syms.c (coff_section_type): Only allow '.', '$' and numeric
following the standard section names.
(bfd_decode_symclass): Prioritize section flag tests in
decode_section_type before name tests in coff_section_type.
* plugin.c (bfd_plugin_canonicalize_symtab): Init fake_section
and fake_common_section using BFD_FAKE_SECTION. Use "fake" as
their names and choose standard .text section flags for
fake_section.
ld/
PR 24511
* testsuite/ld-elf/pr14156a.d: Allow for .init/.fini being a
data section on hppa64.
* testsuite/ld-elf/pr14156b.d: Likewise.
* testsuite/ld-scripts/pr18963.t: Map standard sections to set
output section flags.
* testsuite/ld-scripts/sane1.t: Likewise.
* testsuite/ld-elf/init-fini-arrays.s: Reference __init_array_start
and __fini_array_start. Define __start et al.
* testsuite/ld-elf/pr24511.d: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't derive partial_symbol from general_symbol_info
@ 2019-05-04 20:02 sergiodj+buildbot
2019-05-04 20:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 20:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af97b4161f07a716783183f1b17fa5cac9f99a49 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: af97b4161f07a716783183f1b17fa5cac9f99a49
Don't derive partial_symbol from general_symbol_info
This patch partly reverts commit 8a6d42345 ("Change representation of
psymbol to flush out accessors"); specifically, it changes
partial_symbol to no longer derive from general_symbol_info.
The basic problem here is that the bcache compares objects bitwise,
and this change made it less likely that the relevant fields in the
psymbol would be fully initialized. This could be seen by running a
test under valgrind on the Fedora-i686 buildbot.
I considered a simpler patch, namely just zeroing the psymbol's
"value" field in add_psymbol_to_bcache. However, it wasn't clear to
me that this memset could not then be optimized away by the compiler.
Regression tested by the buildbot. I think this should go in 8.3 as
well.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* psymtab.c (psymbol_name_matches, match_partial_symbol)
(lookup_partial_symbol, print_partial_symbols)
(recursively_search_psymtabs, sort_pst_symbols, psymbol_hash)
(psymbol_compare): Update.
(add_psymbol_to_bcache): Clear the entire psymbol.
(maintenance_check_psymtabs): Update.
* psympriv.h (struct partial_symbol): Don't derive from
general_symbol_info.
<obj_section, unrelocated_address, address,
set_unrelocated_address>: Update.
<ginfo>: New member.
* dwarf-index-write.c (write_psymbols, debug_names::insert)
(debug_names::write_psymbols): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change valid_user_defined_cmd_name_p to return bool
@ 2019-05-04 21:04 sergiodj+buildbot
2019-05-04 21:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 21:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b
Change valid_user_defined_cmd_name_p to return bool
This changes valid_user_defined_cmd_name_p to return bool.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* cli/cli-decode.c (valid_user_defined_cmd_name_p): Return bool.
* command.h (valid_user_defined_cmd_name_p): Channge return type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change valid_command_p to return bool
@ 2019-05-04 21:19 sergiodj+buildbot
2019-05-04 21:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 21:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6fe876770ad6739a5b3ca50f53dfcfbe433ba0fa ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6fe876770ad6739a5b3ca50f53dfcfbe433ba0fa
Change valid_command_p to return bool
This changes valid_command_p to return bool.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.c (valid_command_p): Return bool.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use bool, true, and false in arc-tdep.c
@ 2019-05-04 21:52 sergiodj+buildbot
2019-05-04 22:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 21:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fa9c2a59e3110d8c7d37c1fa602cb6b25b796dc7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fa9c2a59e3110d8c7d37c1fa602cb6b25b796dc7
Use bool, true, and false in arc-tdep.c
This changes arc-tdep.c to use bool, true, and false.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* arc-tdep.c (arc_tdesc_init): Use bool.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use "false" in compile_cplus_convert_enum
@ 2019-05-04 22:08 sergiodj+buildbot
2019-05-04 22:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9c056022194f9d1f068885cb45c9d23a2e44db54 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9c056022194f9d1f068885cb45c9d23a2e44db54
Use "false" in compile_cplus_convert_enum
This changes compile_cplus_convert_enum to use "false".
Note that this variable is never modified, which seems like an error.
I filed PR compile/24473 for this.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* compile/compile-cplus-types.c (compile_cplus_convert_enum): Use
"false".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use gdb_assert_not_reached in arm-linux-nat.c
@ 2019-05-04 22:24 sergiodj+buildbot
2019-05-04 22:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b
Use gdb_assert_not_reached in arm-linux-nat.c
This changes arm-linux-nat.c to use gdb_assert_not_reached rather than
an assert of false.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* arm-linux-nat.c (arm_linux_nat_target::can_use_hw_breakpoint):
Use gdb_assert_not_reached.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change arc_tdesc_init to return bool
@ 2019-05-04 22:41 sergiodj+buildbot
2019-05-04 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 22:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fbdf05a16ec647358e65582721c4ca7dae15e58d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: fbdf05a16ec647358e65582721c4ca7dae15e58d
Change arc_tdesc_init to return bool
This changes arc_tdesc_init to return bool.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* arc-tdep.c (arc_tdesc_init): Return bool.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove a VEC from aarch64-tdep.c
@ 2019-05-04 23:12 sergiodj+buildbot
2019-05-04 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 23:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89055eaa122ceb99ae20bfe10d028da2ca7fee83 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 89055eaa122ceb99ae20bfe10d028da2ca7fee83
Remove a VEC from aarch64-tdep.c
This removes a VEC from aarch64-tdep.c, replacing it with a
std::vector.
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* aarch64-tdep.c (stack_item_t): Remove typedef and DEF_VEC.
(struct aarch64_call_info): Add initializers.
<si>: Now a std::vector.
(pass_on_stack, aarch64_push_dummy_call): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PicoJava weak undefined symbols
@ 2019-05-06 3:06 sergiodj+buildbot
2019-05-06 2:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-06 3:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9
PicoJava weak undefined symbols
This fixes the recently added ld-elf/pr24511 test failure on pj-elf.
Incidentally, pj-elf has failed its gas "pj" test since 2005-12-22
(git commit 54758c3e39). I think that makes the target ripe for
obsolescence.
bfd/
* elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error.
ld/
* testsuite/ld-undefined/weak-undef.exp: Don't xfail pj.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add load-link, store-conditional paired EVA instructions
@ 2019-05-06 14:09 sergiodj+buildbot
2019-05-06 14:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-06 14:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 41cee0897b670168e0d6f455c9bc45c73f8023df ***
Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 41cee0897b670168e0d6f455c9bc45c73f8023df
Add load-link, store-conditional paired EVA instructions
Add paired load-link and store-conditional instructions to the
EVA ASE for MIPS32R6[1]. These instructions are optional within
the EVA ASE. Their presence is indicated by the XNP bit in the
Config5 register.
[1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
Instruction Set Manual", Imagination Technologies Ltd., Document
Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
"Alphabetical List of Instructions", pp. 230-231, pp. 357-360.
gas/
* config/tc-mips.c (mips_set_ase): Handle ASE_EVA_R6.
(macro) <M_LLWPE_AB, M_SCWPE_AB>: New cases.
(mips_after_parse_args): Translate EVA to EVA_R6.
* testsuite/gas/mips/ase-errors-1.s: Add new instructions.
* testsuite/gas/mips/eva.s: Likewise.
* testsuite/gas/mips/ase-errors-1.l: Check errors for
new instructions.
* testsuite/gas/mips/mipsr6@eva.d: Check new test cases.
include/
* opcode/mips.h (ASE_EVA_R6): New macro.
(M_LLWPE_AB, M_SCWPE_AB): New enum values.
opcodes/
* mips-dis.c (mips_calculate_combination_ases): Add ISA
argument and set ASE_EVA_R6 appropriately.
(set_default_mips_dis_options): Pass ISA to above.
(parse_mips_dis_option): Likewise.
* mips-opc.c (EVAR6): New macro.
(mips_builtin_opcodes): Add llwpe, scwpe.
Derived from patch authored by Andrew Bennett <andrew.bennett@imgtec.com>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler
@ 2019-05-07 9:16 sergiodj+buildbot
2019-05-07 8:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 9:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 456ba0fa36d17648a6cf32d1561c8c5802103153 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 456ba0fa36d17648a6cf32d1561c8c5802103153
[gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler
When running gdb.dwarf2/multidictionary.exp with target board cc-with-dwz and
current dwz, we run into a dwz abort:
...
gdb compile failed, gdb/contrib/cc-with-tweaks.sh: line 188: 11484 Aborted \
(core dumped) $DWZ "$output_file" > /dev/null 2>&1
UNTESTED: gdb.dwarf2/multidictionary.exp: multidictionary.exp
...
The dwz abort (PR dwz/24169) is caused by an invalid DW_FORM_ref_addr in the
multidictionary binary.
The multidictionary binary is build from multidictionary.S which is generated
using the dwarf assembler, and multidictionary.S contains dwarf for 3
compilation units.
In multidictionary0.o (generated from multidictionary.S), we find a concrete
formal parameter DIE:
...
<2><dc>: Abbrev Number: 4 (DW_TAG_formal_parameter)
<dd> DW_AT_abstract_origin: <0xa6>
...
referring to an abstract formal parameter DIE at 0xa6:
...
<2><a6>: Abbrev Number: 8 (DW_TAG_formal_parameter)
<a7> DW_AT_name : msg
<ab> DW_AT_type : <0x92>
...
but in the multidictionary binary the concrete formal parameter DIE is still
referring to 0xa6:
...
<2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter)
<1a4> DW_AT_abstract_origin: <0xa6>
...
while the abstract formal parameter DIE has moved to 0x16d:
...
<2><16d>: Abbrev Number: 8 (DW_TAG_formal_parameter)
<16e> DW_AT_name : msg
<172> DW_AT_type : <0x159>
...
The concrete formal parameter DIE is specified in multidictionary.S like this:
...
.Llabel21:
.uleb128 4
.4byte .Llabel17 - .Lcu1_begin
...
The problem is that the .Lcu1_begin label is assumed to mark the start of the
.debug_info section in the executable, but in fact it marks the start of the
first compilation unit from multidictionary.S in the executable. Usually
these two entities are the same, but they are not when linked in object files
contain dwarf info and are placed in the .debug_info section before the
compilation units generated from multidictionary.S.
Fix this in the dwarf assembler by generating instead the label itself:
...
.Llabel21:
.uleb128 4
.4byte .Llabel17
...
resulting in a relocation in the object file:
...
Offset Info Type Sym. Value Sym. Name + Addend
0000000000dd 00040000000a R_X86_64_32 0000000000000000 .debug_info + a6
...
and resulting in the correct offset in the executable:
...
<2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter)
<1a4> DW_AT_abstract_origin: <0x16d>
...
Tested on x86_64-linux with native and cc-with-dwz.
gdb/testsuite/ChangeLog:
2019-05-07 Tom de Vries <tdevries@suse.de>
PR testsuite/24159
* lib/dwarf.exp: Fix handling of DW_FORM_ref_addr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S
@ 2019-05-07 9:16 sergiodj+buildbot
2019-05-07 9:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 9:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 77e7aaa4bd980fb96244b874bc867e20b399fe60 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 77e7aaa4bd980fb96244b874bc867e20b399fe60
[gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S
When running gdb.dwarf2/dw2-case-insensitive.exp with target board
cc-with-debug-names, we run into:
...
FAIL: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off \
(GDB internal error)
...
in more detail:
...
(gdb) info functions fUnC_lang
gdb/dwarf2read.c:5293: internal-error: \
compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \
bound_minimal_symbol, CORE_ADDR, obj_section*, int): \
Assertion `result != NULL' failed.
...
The problem is that the .debug_aranges section in dw2-case-insensitive-debug.S
contains a debug_info_offset which is set to 0:
...
.section .debug_aranges,"",@progbits
.4byte .Laranges_end - .Laranges_start
.Laranges_start:
.2byte 0x2
.4byte 0
...
while the compilation unit at offset 0 in the .debug_section of the executable
is in fact not the compilation unit generated from
dw2-case-insensitive-debug.S.
This happens when linked in object files contain dwarf info and are placed in
the .debug_info section before the compilation unit generated from
dw2-case-insensitive-debug.S.
Fix this by defining the debug_info_offset field using the label .Lcu1_begin
that defines the start of the compilation unit:
...
- .4byte 0
+ .4byte .Lcu1_begin
...
Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.
gdb/testsuite/ChangeLog:
2019-05-07 Tom de Vries <tdevries@suse.de>
PR testsuite/24522
* gdb.dwarf2/dw2-case-insensitive-debug.S: Fix debug_info_offset in
.debug_aranges section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in watch-loc.c
@ 2019-05-07 9:52 sergiodj+buildbot
2019-05-07 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 9:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 75f06e9dc59d3f810e2afe2f47afbcb74204ef61 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 75f06e9dc59d3f810e2afe2f47afbcb74204ef61
[gdb/testsuite] Fix .debug_aranges in watch-loc.c
When running gdb.dlang/watch-loc.exp with target board cc-with-debug-names, we
run into:
...
FAIL: gdb.dlang/watch-loc.exp: disassemble _Dmain (GDB internal error)
...
in more detail:
...
(gdb) disassemble _Dmain
gdb/dwarf2read.c:5293: internal-error: \
compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \
bound_minimal_symbol, CORE_ADDR, obj_section*, int): \
Assertion `result != NULL' failed.
...
The problem is that the .debug_aranges section in watch-loc.c contains a
debug_info_offset which is set to 0:
...
asm (
" .pushsection .debug_aranges,\"\",%progbits\n"
" .4byte .Laranges_end - .Laranges_start\n"
".Laranges_start:\n"
" .2byte 0x2\n"
" .4byte 0\n"
...
while the compilation unit at offset 0 in the .debug_section in the executable
is in fact not the compilation unit generated from watch-loc-dw.S.
[ Note: this is a non-trivial test-case. The file watch-loc-dw.S contains a
.debug_info section, but not an .debug_aranges section or any actual code.
The file watch-loc.c contains code and a .debug_aranges section, but no other
debug section. So, the intent for the .debug_aranges section in watch-loc.c
is to refer to a compilation unit in the .debug_info section in
watch-loc-dw.S. ]
This happens when linked in object files contain dwarf info and are placed in
the .debug_info section before the compilation units generated from
watch-loc.c and watch-loc-dw.S.
Fix this by defining the debug_info_offset field using a label .Lcu1_begin
that defines the start of an empty .debug_section compilation unit:
...
asm (
+ " .pushsection .debug_info,\"\",%progbits\n"
+ ".Lcu1_begin:"
+ " .popsection\n"
" .pushsection .debug_aranges,\"\",%progbits\n"
" .4byte .Laranges_end - .Laranges_start \n"
".Laranges_start:\n"
" .2byte 0x2\n"
- " .4byte 0\n"
+ " .4byte .Lcu1_begin\n"
...
which during linking merges with the start of the .debug_info section of
watch-loc-dw.S.
Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.
gdb/testsuite/ChangeLog:
2019-05-07 Tom de Vries <tdevries@suse.de>
PR testsuite/24522
* gdb.dlang/watch-loc.c: Fix debug_info_offset in .debug_aranges
section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix ls_host return in index-cache.exp
@ 2019-05-07 10:09 sergiodj+buildbot
2019-05-07 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 10:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7bd55dac80c2faced875119b60acfb51741e397e ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 7bd55dac80c2faced875119b60acfb51741e397e
[gdb/testsuite] Fix ls_host return in index-cache.exp
When adding a debug print here in index-cache.exp:
...
proc_with_prefix test_cache_disabled { cache_dir } {
lassign [ls_host $cache_dir] ret files_before
+ puts "before: '$files_before'"
+ exit
...
we have:
...
files_before: ''
...
When further adding:
...
proc_with_prefix test_cache_disabled { cache_dir } {
+ exec touch $cache_dir/foo.1 $cache_dir/foo.2 $cache_dir/foo.3
...
we have:
...
files_before: 'foo.1'
...
while we're expecting file_before to contain foo.[123].
Fix this by making the return statement in ls_host return a list rather than a
string (in accordance with the ls_host documentation), after which we have:
...
files_before: 'foo.1 foo.2 foo.3'
...
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-07 Tom de Vries <tdevries@suse.de>
* gdb.base/index-cache.exp (ls_host): Fix return statement.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Do not force the m68k-elf linker to fail if it encoutners a non-ELF format file.
@ 2019-05-08 14:11 sergiodj+buildbot
2019-05-08 14:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 14:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79299211a1a9a701f146620d419da6ee0175798c ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 79299211a1a9a701f146620d419da6ee0175798c
Do not force the m68k-elf linker to fail if it encoutners a non-ELF format file.
PR 24523
* elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Return TRUE
rather than FALSE if encountering a non-ELF file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix VLA printing for Ada
@ 2019-05-08 16:34 sergiodj+buildbot
2019-05-08 16:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 16:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 988915ee7b880ff059f849893b71118d9bd2c4fc ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 988915ee7b880ff059f849893b71118d9bd2c4fc
Fix VLA printing for Ada
While looking at a different Ada problem, I found that printing a
record containing a VLA did not work properly.
I tracked the problem down to dwarf2_evaluate_property trying, and
failing, to compare two types that differed only in qualifiers.
This patch changes dwarf2_evaluate_property to ignore qualifiers when
comparing types.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* dwarf2loc.c (dwarf2_evaluate_property) <PROP_ADDR_OFFSET>:
Compare main types.
gdb/testsuite/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* gdb.ada/vla.exp: New file.
* gdb.ada/vla/vla.adb: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change ptype/o to print bit offset
@ 2019-05-08 17:16 sergiodj+buildbot
2019-05-08 17:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 17:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3
Change ptype/o to print bit offset
Consider this short C example:
struct inner
{
unsigned x;
unsigned y : 3;
unsigned z : 3;
};
struct outer
{
unsigned char o : 3;
struct inner i __attribute__ ((packed));
};
When I use "ptype/o" on this, I get:
(gdb) ptype/o struct outer
/* offset | size */ type = struct outer {
/* 0: 5 | 1 */ unsigned char o : 3;
/* XXX 5-bit hole */
/* 1 | 8 */ struct inner {
/* 1 | 4 */ unsigned int x;
/* 5:29 | 4 */ unsigned int y : 3;
/* 5:26 | 4 */ unsigned int z : 3;
/* XXX 2-bit padding */
/* XXX 3-byte padding */
/* total size (bytes): 8 */
} i;
/* total size (bytes): 9 */
}
In the location of "o" ("0: 5"), the "5" means "there are 5 bits left
relative to the size of the underlying type.
I find this very difficult to follow. On irc, Sergio said that this
choice came because it is what pahole does. However, I think it's not
very useful, and maybe is just an artifact of the way that
DW_AT_bit_offset was defined in DWARF 3.
This patch changes ptype/o to print the offset of a bitfield in a more
natural way, that is, using the bit number according to the platform's
bit numbering.
With this patch, the output is now:
(gdb) ptype/o struct outer
/* offset | size */ type = struct outer {
/* 0: 0 | 1 */ unsigned char o : 3;
/* XXX 5-bit hole */
/* 1 | 8 */ struct inner {
/* 1 | 4 */ unsigned int x;
/* 5: 0 | 4 */ unsigned int y : 3;
/* 5: 3 | 4 */ unsigned int z : 3;
/* XXX 2-bit padding */
/* XXX 3-byte padding */
/* total size (bytes): 8 */
} i;
/* total size (bytes): 9 */
}
This is better, IMO, because now the "offset" of a bitfield is
consistent with the offset of an ordinary member, referring to its
offset from the start of the structure.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* typeprint.c (print_offset_data::update): Print the bit offset,
not the number of bits remaining.
gdb/doc/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* gdb.texinfo (Symbols): Document change to ptype/o.
gdb/testsuite/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* gdb.base/ptype-offsets.exp: Update tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Correctly handle non-C-style arrays in c_get_string
@ 2019-05-08 17:32 sergiodj+buildbot
2019-05-08 17:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 17:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 80e55b132940813fa454da2592a31db6c8af85f1 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 80e55b132940813fa454da2592a31db6c8af85f1
Correctly handle non-C-style arrays in c_get_string
A user here noticed that the Python Value.string method did not work
for Ada arrays. I tracked this down to an oddity in value_as_address
-- namely, it calls coerce_array, but that function will not force
array coercion when the language has c_style_arrays=false, as Ada
does.
This patch fixes the problem by changing c_get_string so that arrays
take the "in GDB's memory" branch. The actual patch is somewhat more
complicated than you might think, because the caller can request more
array elements than the type allows. This is normal when the type is
using the C struct hack.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* c-lang.c (c_get_string): Handle non-C-style arrays.
gdb/testsuite/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* gdb.python/py-value.exp (test_value_in_inferior): Add Ada test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix build problem in fputs_maybe_filtered
@ 2019-05-08 18:11 sergiodj+buildbot
2019-05-08 18:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 18:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca1df239078318425cf8038995bf02f1b9ab6e50 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: ca1df239078318425cf8038995bf02f1b9ab6e50
Fix build problem in fputs_maybe_filtered
When merging commit 99f20f ("Fix style bug when paging") to master, I
had to make some changes to get it to compile again. Unfortunately, I
must not have added these to the index at the correct time, because
they were not committed.
This patch fixes the problem.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* utils.c (fputs_maybe_filtered): Call can_emit_style_escape as a
method.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move "watchdog" to remote.c
@ 2019-05-08 19:04 sergiodj+buildbot
2019-05-08 19:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 19:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ed2b7c1703246eef1ce6b393ced99fe267cbeb7b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: ed2b7c1703246eef1ce6b393ced99fe267cbeb7b
Move "watchdog" to remote.c
The "watchdog" global is only used in remote.c, so this patch moves it
there and makes it static.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* maint.c (_initialize_maint_cmds): Move initialization code to
remote.c.
(watchdog, show_watchdog): Move to remote.c.
* remote.c (watchdog, show_watchdog): Move from maint.c. Make
"watchdog" static.
(_initialize_remote): Move initialization code from maint.c.
* defs.h (watchdog): Don't declare.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] When debugging a mixed Ada/C program using this scenario:
@ 2019-05-08 19:38 sergiodj+buildbot
2019-05-08 19:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 19:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2228ef7700e81bfedbffe352f3efa3716224cdbe ***
Author: Xavier Roirand <roirand@adacore.com>
Branch: master
Commit: 2228ef7700e81bfedbffe352f3efa3716224cdbe
When debugging a mixed Ada/C program using this scenario:
- set print frame-arguements all
- an Ada function named pck.call_me calls a C function named break_me
- you put a breakpoint in break_me and the program reaches this
breakpoint.
Now display the backtrace:
(gdb) bt
#0 break_me () at [...]
#1 0x000000000040243e in pck.call_me (
s={P_ARRAY = 0x7fffffffe21c, P_BOUNDS = 0x41e6e8}) at [...]
whereas we should expect:
(gdb) bt
#0 break_me () at [...]
#1 0x000000000040243e in pck.call_me (s="test") at [...]
The problem is that GDB prints the S parameter in the pck.call_me Ada
function using the current language, so the C one, because the program
is stopped in a C function, whereas it should use the pck.call_me frame
one. This behavior is ok when user manually changes the language but it's
not the right one when language is auto.
This patch fixes this problem so now when using auto language, all Ada
frame arguments are printed using Ada like syntax when the frame is part
of Ada code, even if the program is stopped in a frame using a different
language.
If the user explicitly sets a language (using "set language ...") then
no change here, all the Ada frame arguments are printed using this
language.
gdb/ChangeLog:
* ada-valprint.c (ada_val_print_gnat_array): Remove language
parameter and use Ada language definition instead.
(ada_val_print_ptr): Remove unused language parameter.
(ada_val_print_num): Remove language parameter and use Ada language
definition instead.
(ada_val_print_enum, ada_val_print_flt): Remove unused language
parameter.
(ada_val_print_struct_union, ada_val_print_ref): Remove language
parameter and use Ada language definition instead.
(ada_val_print_1): Update all ada_val_print_xxx calls.
Remove language parameter.
(ada_val_print): Update ada_val_print_1 call.
gdb/testsuite/ChangeLog:
* gdb.ada/frame_arg_lang.exp: New testcase.
* gdb.ada/frame_arg_lang/bla.adb: New file.
* gdb.ada/frame_arg_lang/pck.ads: New file.
* gdb.ada/frame_arg_lang/pck.adb: New file.
* gdb.ada/frame_arg_lang/foo.c: New file.
Tested on x86_64-linux, no regressions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Merge two 'New commands' sections in NEWS file
@ 2019-05-08 20:19 sergiodj+buildbot
2019-05-08 20:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 20:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1bd0c6e4964f68523794aded05aa4d184db44d48 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 1bd0c6e4964f68523794aded05aa4d184db44d48
gdb: Merge two 'New commands' sections in NEWS file
Commit 2e62ab400ff9 added a second 'New commands' section to the NEWS
file, this commit merges the two together.
gdb/ChangeLog:
* NEWS: Merge two 'New commands' sections.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert main_info to type-safe registry API
@ 2019-05-08 22:42 sergiodj+buildbot
2019-05-08 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 22:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16
Convert main_info to type-safe registry API
This changes main_info to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* symtab.c (struct main_info): Add destructor and initializers.
(main_progspace_key): Move. Change type.
(get_main_info): Update.
(main_info_cleanup): Remove.
(_initialize_symtab): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert symbol_cache to type-safe registry API
@ 2019-05-08 22:58 sergiodj+buildbot
2019-05-08 23:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 22:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3017b94d60f1e8929886be6992547973ad354f4c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3017b94d60f1e8929886be6992547973ad354f4c
Convert symbol_cache to type-safe registry API
This changes the symbol_cache to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* symtab.c (struct symbol_cache): Add destructor and
initializers.
(symbol_cache_key): Move. Change type.
(make_symbol_cache, free_symbol_cache): Remove.
(get_symbol_cache): Update.
(symbol_cache_cleanup): Remove.
(ALL_PSPACES, symbol_cache_flush)
(maintenance_print_symbol_cache)
(maintenance_print_symbol_cache_statistics, _initialize_symtab):
Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert inflow to type-safe registry API
@ 2019-05-08 23:31 sergiodj+buildbot
2019-05-08 23:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 23:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6509b8ebfb19769d726c16eb3a8967ac6784f621 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6509b8ebfb19769d726c16eb3a8967ac6784f621
Convert inflow to type-safe registry API
This changes inflow.c to use the type-safe registry API. This fixes a
latent bug in swap_terminal_info, which previously said:
terminal_info *info_a
= (terminal_info *) inferior_data (a, inflow_inferior_data);
terminal_info *info_b
= (terminal_info *) inferior_data (a, inflow_inferior_data);
... both of which examine 'a'.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* inflow.c (struct terminal_info): Add destructor and
initializers.
(inflow_inferior_data): Change type.
(~terminal_info): Rename from inflow_inferior_data_cleanup.
(get_inflow_inferior_data, inflow_inferior_exit)
(swap_terminal_info, _initialize_inflow): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert break-catch-syscall.c to type-safe registry API
@ 2019-05-08 23:46 sergiodj+buildbot
2019-05-08 23:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 23:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b
Convert break-catch-syscall.c to type-safe registry API
This changes break-catch-syscall.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* break-catch-syscall.c (catch_syscall_inferior_data): Move.
Change type.
(get_catch_syscall_inferior_data): Update.
(catch_syscall_inferior_data_cleanup): Remove.
(_initialize_break_catch_syscall): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert auto-load.c to type-safe registry API
@ 2019-05-09 0:18 sergiodj+buildbot
2019-05-09 0:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 0:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab
Convert auto-load.c to type-safe registry API
This changes auto-load.c to use the type-safe registry API. It also
changes a couple of types to "bool", removing uses of "FALSE".
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* auto-load.c (struct auto_load_pspace_info): Add destructor and
initializers.
<unsupported_script_warning_printed,
script_not_found_warning_printed>: Now bool.
(auto_load_pspace_data): Change type.
(~auto_load_pspace_info): Rename from
auto_load_pspace_data_cleanup.
(get_auto_load_pspace_data, init_loaded_scripts_info)
(clear_section_scripts, maybe_print_unsupported_script_warning)
(maybe_print_script_not_found_warning, _initialize_auto_load):
Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert dwarf2_per_objfile to type-safe registry API
@ 2019-05-09 0:36 sergiodj+buildbot
2019-05-09 0:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 0:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5bfd760d66c816d53a930635a84990c8536bb545 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5bfd760d66c816d53a930635a84990c8536bb545
Convert dwarf2_per_objfile to type-safe registry API
This changes dwarf2_per_objfile to use the type-safe registry API.
This also changes dwarf2_per_objfile not to be allocated on an
obstack. It seemed clearer to me to simply allocate it on the heap;
and I didn't see a drawback from doing so.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* dwarf2read.h (struct dwarf2_per_objfile): Don't inherit from
allocate_on_obstack.
* dwarf2read.c (dwarf2_objfile_data_key): Change type.
(get_dwarf2_per_objfile): Update.
(set_dwarf2_per_objfile): Remove.
(dwarf2_has_info, dwarf2_get_section_info): Update.
(dwarf2_free_objfile): Remove.
(_initialize_dwarf2_read): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert auxv.c to type-safe registry API
@ 2019-05-09 1:11 sergiodj+buildbot
2019-05-09 1:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 1:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e9b89e2d01043108283df02261ed718aae705bc8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e9b89e2d01043108283df02261ed718aae705bc8
Convert auxv.c to type-safe registry API
This changes auxv.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* auxv.c (auxv_inferior_data): Move. Change type.
(auxv_inferior_data_cleanup): Remove.
(invalidate_auxv_cache_inf): Rewrite.
(get_auxv_inferior_data, _initialize_auxv): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert breakpoint.c to type-safe registry API
@ 2019-05-09 1:46 sergiodj+buildbot
2019-05-09 1:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 1:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 51d3063a35fad1fa0cd53c167bb5a4325afeea16 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 51d3063a35fad1fa0cd53c167bb5a4325afeea16
Convert breakpoint.c to type-safe registry API
This changes breakpoint.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* breakpoint.c (breakpoint_objfile_key): Change type.
(get_breakpoint_objfile_data): Update.
(free_breakpoint_objfile_data): Remove.
(_initialize_breakpoint): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert remote.c to type-safe registry API
@ 2019-05-09 2:03 sergiodj+buildbot
2019-05-09 2:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 2:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7b4a314f8b9b50c2289ca6b5d21513052c48730b ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7b4a314f8b9b50c2289ca6b5d21513052c48730b
Convert remote.c to type-safe registry API
This changes remote.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* remote.c (remote_pspace_data): Change type.
(remote_pspace_data_cleanup): Remove.
(get_remote_exec_file, set_pspace_remote_exec_file)
(_initialize_remote): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert probes to type-safe registry API
@ 2019-05-09 2:52 sergiodj+buildbot
2019-05-09 2:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 2:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 814cf43a1f16157fcbe2c662f567d064393a0fcb ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 814cf43a1f16157fcbe2c662f567d064393a0fcb
Convert probes to type-safe registry API
This changes the probes code in elfread.c to use the type-safe
registry API. While doing this, I saw that the caller of get_probes
owns the probes, so I went through the code and changed the vectors to
store unique_ptrs, making the ownership relationship more clear.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* symfile.h (struct sym_probe_fns) <sym_get_probes>: Change type.
* symfile-debug.c (debug_sym_get_probes): Change type.
* stap-probe.c (handle_stap_probe):
(stap_static_probe_ops::get_probes): Change type.
* probe.h (class static_probe_ops) <get_probes>: Change type.
* probe.c (class any_static_probe_ops) <get_probes>: Change type.
(parse_probes_in_pspace): Update.
(find_probes_in_objfile, find_probe_by_pc, collect_probes):
Update.
(any_static_probe_ops::get_probes): Change type.
* elfread.c (elfread_data): New typedef.
(probe_key): Change type.
(elf_get_probes): Likewise. Update.
(probe_key_free): Remove.
(_initialize_elfread): Update.
* dtrace-probe.c (class dtrace_static_probe_ops) <get_probes>:
Change type.
(dtrace_process_dof_probe, dtrace_process_dof)
(dtrace_static_probe_ops::get_probe): Change type.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert ada-tasks.c to type-safe registry API
@ 2019-05-09 3:27 sergiodj+buildbot
2019-05-09 3:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 3:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 14ef6690f1f24ad6b2f87bac36607146fbda6ccb ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 14ef6690f1f24ad6b2f87bac36607146fbda6ccb
Convert ada-tasks.c to type-safe registry API
This changes ada-tasks.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* ada-tasks.c (ada_tasks_pspace_data_handle): Change type.
(get_ada_tasks_pspace_data): Update.
(ada_tasks_pspace_data_cleanup): Remove.
(_initialize_tasks): Update.
(ada_tasks_inferior_data_handle): Change type.
(get_ada_tasks_inferior_data): Update.
(ada_tasks_inferior_data_cleanup): Remove.
(struct ada_tasks_pspace_data): Add initializers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert ada-lang.c to type-safe registry API
@ 2019-05-09 4:18 sergiodj+buildbot
2019-05-09 4:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 4:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f37b313d5cafbed4e724db4724d1ab567b373be4 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f37b313d5cafbed4e724db4724d1ab567b373be4
Convert ada-lang.c to type-safe registry API
This changes ada-lang.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* ada-lang.c (struct ada_inferior_data): Add initializers.
(ada_inferior_data): Change type.
(ada_inferior_data_cleanup): Remove.
(get_ada_inferior_data, ada_inferior_exit)
(struct ada_pspace_data): Add initializers, destructor.
(ada_pspace_data_handle): Change type.
(get_ada_pspace_data): Update.
(ada_pspace_data_cleanup): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a noop deleter
@ 2019-05-09 4:52 sergiodj+buildbot
2019-05-09 4:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 4:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 31930bd34d15dd22c5ef47b46d8bc95a5ec34d0e ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 31930bd34d15dd22c5ef47b46d8bc95a5ec34d0e
Add a noop deleter
This adds a no-op deleter, which is used in subsequent patches.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* common/gdb_unique_ptr.h (struct noop_deleter): New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert mdebugread.c to type-safe registry API
@ 2019-05-09 5:09 sergiodj+buildbot
2019-05-09 5:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 5:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 91d3055d8b77d56cf64f85ace4237a0ccca98a4a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 91d3055d8b77d56cf64f85ace4237a0ccca98a4a
Convert mdebugread.c to type-safe registry API
This changes mdebugread.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* mdebugread.c (basic_type_data): Change type.
(basic_type, _initialize_mdebugread): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert elfread.c to type-safe registry API
@ 2019-05-09 5:25 sergiodj+buildbot
2019-05-09 5:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 5:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8127a2fab5780f27a1c9998b0be4d8b5c28c1603 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8127a2fab5780f27a1c9998b0be4d8b5c28c1603
Convert elfread.c to type-safe registry API
This changes elfread.c to use the type-safe registry API. This also
fixes a potential memory leak, by changing the hash table so that it
is no longer allocated on an obstack.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* elfread.c (elf_objfile_gnu_ifunc_cache_data): Change type.
(elf_gnu_ifunc_record_cache): Update. Don't allocate hash table
on obstack.
(elf_gnu_ifunc_resolve_by_cache, _initialize_elfread): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert hppa-tdep.c to type-safe registry API
@ 2019-05-09 5:43 sergiodj+buildbot
2019-05-09 5:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 5:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9a73f0ad6ca2a9c027f30fca3d79fa958784dcbf ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9a73f0ad6ca2a9c027f30fca3d79fa958784dcbf
Convert hppa-tdep.c to type-safe registry API
This changes hppa-tdep.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* hppa-tdep.c (hppa_objfile_priv_data): Change type.
(hppa_init_objfile_priv_data, read_unwind_info)
(find_unwind_entry, _initialize_hppa_tdep): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert stabsread.c to type-safe registry API
@ 2019-05-09 6:17 sergiodj+buildbot
2019-05-09 6:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 6:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d772d2abcc163142fc38655896c4704b06dae0b6 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d772d2abcc163142fc38655896c4704b06dae0b6
Convert stabsread.c to type-safe registry API
This changes stabsread.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* stabsread.c (rs6000_builtin_type_data): Change type.
(rs6000_builtin_type, _initialize_stabsread): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert objc-lang.c to type-safe registry API
@ 2019-05-09 6:34 sergiodj+buildbot
2019-05-09 6:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 6:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4c58e3376da3fedaca81f8c9386f3ccb81261f8a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 4c58e3376da3fedaca81f8c9386f3ccb81261f8a
Convert objc-lang.c to type-safe registry API
This changes objc-lang.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* objc-lang.c (objc_objfile_data): Change type.
(find_methods): Update.
(_initialize_objc_lang): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert gdbtypes.c to type-safe registry API
@ 2019-05-09 7:05 sergiodj+buildbot
2019-05-09 7:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 7:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a1021395e0ef7a92e1653533b753a2221396015 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7a1021395e0ef7a92e1653533b753a2221396015
Convert gdbtypes.c to type-safe registry API
This changes gdbtypes.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* gdbtypes.c (objfile_type_data): Change type.
(objfile_type, _initialize_gdbtypes): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-entry-value-paramref.S
@ 2019-05-09 7:22 sergiodj+buildbot
2019-05-09 7:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 7:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9cfd2b89bd3fe943a87d5425d0bb0f8b14c85eb6 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 9cfd2b89bd3fe943a87d5425d0bb0f8b14c85eb6
[gdb/testsuite] Fix gdb.arch/amd64-entry-value-paramref.S
The file gdb.arch/amd64-entry-value-paramref.S contains a DIE for function
bar:
...
DIE29: .uleb128 0x2 # (DIE (0x29) DW_TAG_subprogram)
.ascii "bar\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc)
.byte 0x15 # DW_AT_decl_line
.long DIE45 # DW_AT_type
.byte 0x1 # DW_AT_inline
...
which refers to DIE45:
...
DIE45: .uleb128 0x4 # (DIE (0x45) DW_TAG_base_type)
.byte 0x4 # DW_AT_byte_size
.byte 0x5 # DW_AT_encoding
.ascii "int\0" # DW_AT_name
...
using a form DW_FORM_ref4:
...
.uleb128 0x2 # (abbrev code)
.uleb128 0x2e # (TAG: DW_TAG_subprogram)
.byte 0x1 # DW_children_yes
...
.uleb128 0x49 # (DW_AT_type)
.uleb128 0x13 # (DW_FORM_ref4)
...
However, the DW_FORM_ref4 is a CU-relative reference, while using a label for
the value will result in a section-relative value.
So, if linked in object files contain dwarf info and are placed in the
.debug_info section before the compilation units generated from
amd64-entry-value-paramref.S, then the referenced type is at 0x108:
...
<1><108>: Abbrev Number: 4 (DW_TAG_base_type)
<109> DW_AT_byte_size : 4
<10a> DW_AT_encoding : 5 (signed)
<10b> DW_AT_name : int
...
but the reference will point to a non-existing DIE at 0x1cf:
...
<1><f0>: Abbrev Number: 2 (DW_TAG_subprogram)
<f1> DW_AT_name : bar
<f5> DW_AT_decl_file : 1
<f6> DW_AT_decl_line : 21
<f7> DW_AT_type : <0x1cf>
<fb> DW_AT_inline : 1 (inlined)
...
which happens to cause a GDB internal error described in PR23270 - "GDB
internal error: dwarf2read.c:18656: internal-error: could not find partial
DIE 0x1b7 in cache".
Fix the invalid DWARF by making the reference value CU-relative:
...
- .long DIE45 # DW_AT_type
+ .long DIE45 - .Ldebug_info0 # DW_AT_type
...
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-09 Tom de Vries <tdevries@suse.de>
* gdb.arch/amd64-entry-value-paramref.S: Make DW_FORM_ref4 references
CU-relative.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] Allow movprfx for SVE2 instructions.
@ 2019-05-09 10:07 sergiodj+buildbot
2019-05-09 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5cd99750959f54fea9e7290ec850df6c96878b56 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 5cd99750959f54fea9e7290ec850df6c96878b56
[binutils][aarch64] Allow movprfx for SVE2 instructions.
SVE2 introduces a number of new instructions that work with the movprfx
instruction. This commit ensures that SVE2 instructions are accounted
for.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-opc.c (verify_constraints): Check for movprfx for sve2
instructions.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand.
@ 2019-05-09 10:22 sergiodj+buildbot
2019-05-09 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT adccc50753467ac66573471f180a60d8d96ce223 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: adccc50753467ac66573471f180a60d8d96ce223
[binutils][aarch64] Introduce SVE_IMM_ROT3 operand.
New operand AARCH64_OPND_SVE_IMM_ROT3 handles a single bit rotate
operand encoded at bit position 10.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (parse_operands): Handle new SVE_IMM_ROT3 operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): New SVE_IMM_ROT3 operand.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
for SVE_IMM_ROT3.
(aarch64_print_operand): Add printing for SVE_IMM_ROT3.
(fields): Handle SVE_rot3 field.
* aarch64-opc.h (enum aarch64_field_kind): New SVE_rot3 field.
* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_IMM_ROT3 operand.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2.
@ 2019-05-09 10:37 sergiodj+buildbot
2019-05-09 10:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3bd82c86f0f432bd7653101069bf056fda14b7cd ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 3bd82c86f0f432bd7653101069bf056fda14b7cd
[binutils][aarch64] New iclass sve_size_hsd2.
Add "sve_size_hsd2" iclass decode that uses the new FLD_SVE_size field
value to determine the variant of an instruction.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_hsd2 iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
sve_size_hsd2 iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_size_hsd2 iclass decode.
* aarch64-opc.c (fields): Handle SVE_size field.
* aarch64-opc.h (enum aarch64_field_kind): New SVE_size field.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_Zm3_11_INDEX operand.
@ 2019-05-09 10:53 sergiodj+buildbot
2019-05-09 11:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 10:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 116adc27470ed3682b6236e44e3b18838673036c ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 116adc27470ed3682b6236e44e3b18838673036c
[binutils][aarch64] New SVE_Zm3_11_INDEX operand.
Introduce new operand SVE_Zm3_11_INDEX that indicates a register between
z0-z7 stored in bits 18-16 and an index stored in bits 20-19:11.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (parse_operands): Handle new SVE_Zm3_11_INDEX
operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): New SVE_Zm3_11_INDEX operand.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
for SVE_Zm3_11_INDEX.
(aarch64_print_operand): Add printing for SVE_Zm3_11_INDEX.
(fields): Handle SVE_i3l and SVE_i3h2 fields.
* aarch64-opc.h (enum aarch64_field_kind): New SVE_i3l and SVE_i3h2
fields.
* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_Zm3_11_INDEX operand.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_size_sd2 iclass.
@ 2019-05-09 11:25 sergiodj+buildbot
2019-05-09 11:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 11:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0a57e14ffa4c2900f64780375282dc5dc493e250 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 0a57e14ffa4c2900f64780375282dc5dc493e250
[binutils][aarch64] New sve_size_sd2 iclass.
Define new sve_size_sd2 iclass to distinguish between the two variants
of ldnt1sb and ldnt1sh.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_sd2 iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
sve_size_sd2 iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_size_sd2 iclass decode.
* aarch64-opc.c (fields): Handle SVE_sz2 field.
* aarch64-opc.h (enum aarch64_field_kind): New SVE_sz2 field.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass.
@ 2019-05-09 11:57 sergiodj+buildbot
2019-05-09 12:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 11:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd50a87ae29f163e7d254729a902a5e51fcccbbc ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: cd50a87ae29f163e7d254729a902a5e51fcccbbc
[binutils][aarch64] New sve_size_013 iclass.
Add sve_size_013 instruction class
This new iclass handles instructions such as pmullb whose size specifier
can only be encoded as 0, 1, or 3.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_013 iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
sve_size_013 iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_size_013 iclass decode.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand.
@ 2019-05-09 12:14 sergiodj+buildbot
2019-05-09 12:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 12:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3c17238bc9fe8a078a6199470291f07bab9c64c8 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 3c17238bc9fe8a078a6199470291f07bab9c64c8
[binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand.
Include a new iclass to extract the variant from the most significant 3
bits of this operand.
Instructions such as rshrnb include a constant shift amount as an
operand, where the most significant three bits of this operand determine
what size elements the instruction is operating on.
The new SVE_SHRIMM_UNPRED_22 operand denotes this constant encoded in
bits 22:20-19:18-16 while the new sve_shift_tsz_hsd iclass denotes that
the SVE qualifier is encoded in bits 22:20-19.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (parse_operands): Handle new SVE_SHRIMM_UNPRED_22
operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): New SVE_SHRIMM_UNPRED_22
operand.
(enum aarch64_insn_class): Add sve_shift_tsz_hsd iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
* aarch64-asm.c (aarch64_ins_sve_shrimm):
(aarch64_encode_variant_using_iclass): Handle
sve_shift_tsz_hsd iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_shift_tsz_hsd iclass decode.
* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
for SVE_SHRIMM_UNPRED_22.
(aarch64_print_operand): Add printing for SVE_SHRIMM_UNPRED_22.
* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_SHRIMM_UNPRED_22
operand.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_shift_tsz_bhsd iclass.
@ 2019-05-09 12:31 sergiodj+buildbot
2019-05-09 12:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 12:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1be5f94f9c85821287b9ae423f738a8bab499526 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 1be5f94f9c85821287b9ae423f738a8bab499526
[binutils][aarch64] New sve_shift_tsz_bhsd iclass.
This new iclass encodes the variant by which is the most significant bit
used of bits 23-22:20-19, where those bits are usually part of a
given constant operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_shift_tsz_bhsd
iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
sve_shift_tsz_bhsd iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_shift_tsz_bhsd iclass decode.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_size_tsz_bhs iclass.
@ 2019-05-09 13:14 sergiodj+buildbot
2019-05-09 13:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 13:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fd1dc4a0c1b87c1efa7e0398fd47fd1e87fa0fb4 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: fd1dc4a0c1b87c1efa7e0398fd47fd1e87fa0fb4
[binutils][aarch64] New sve_size_tsz_bhs iclass.
Add sve_size_tsz_bhs iclass needed for sqxtnb and similar instructions.
This iclass encodes one of three variants by the most significant bit
set in a 3-bit value where only one bit may be set.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_tsz_bhs
iclass.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
sve_size_tsz_bhs iclass encode.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
sve_size_tsz_bhs iclass decode.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_SHLIMM_UNPRED_22 operand.
@ 2019-05-09 13:21 sergiodj+buildbot
2019-05-09 13:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 13:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 28ed815ad2b0cb93eede83022269d6a60b9cdf31 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 28ed815ad2b0cb93eede83022269d6a60b9cdf31
[binutils][aarch64] New SVE_SHLIMM_UNPRED_22 operand.
New operand describes a shift-left immediate encoded in bits
22:20-19:18-16 where UInt(bits) - esize == shift.
This operand is useful for instructions like sshllb.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (parse_operands): Handle new SVE_SHLIMM_UNPRED_22
operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): New SVE_SHLIMM_UNPRED_22
operand.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
* aarch64-opc.c (operand_general_constraint_met_p): Constraint checking
for SVE_SHLIMM_UNPRED_22.
(aarch64_print_operand): Add printing for SVE_SHLIMM_UNPRED_22.
* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_SHLIMM_UNPRED_22
operand.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S
@ 2019-05-09 13:53 sergiodj+buildbot
2019-05-09 14:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 63b667adb4a915f13ec3ace77af4b9cbd76bceac ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 63b667adb4a915f13ec3ace77af4b9cbd76bceac
[gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S
The test-case gdb.arch/amd64-tailcall-self.exp fails here:
...
if ![runto b] {
return -1
}
...
like:
...
(gdb) file build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\
amd64-tailcall-self
Reading symbols from build/gdb/testsuite/outputs/gdb.arch/\
amd64-tailcall-self/amd64-tailcall-self...
Dwarf Error: Cannot find DIE at 0x1f5 referenced from DIE at 0x107 [in \
module build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\
amd64-tailcall-self]
...
The problem is that in amd64-tailcall-self.S, CU-relative references are
assigned .debug_info section relative values. [ This is similar to the
problem fixed by "Fix gdb.arch/amd64-entry-value-paramref.S". ]
Fix this by assigning CU-relative references instead.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-09 Tom de Vries <tdevries@suse.de>
* gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references
CU-relative.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Two minor constifications
@ 2019-05-10 13:40 sergiodj+buildbot
2019-05-10 13:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 13:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 24c54127c5c4da81b9e6c248c8e918b3564b271a ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 24c54127c5c4da81b9e6c248c8e918b3564b271a
Two minor constifications
I noticed a couple of spots where a "char *" was used where a
"const char *" made more sense. This patch fixes both of them.
Tested by rebuilding.
gdb/ChangeLog
2019-05-10 Tom Tromey <tromey@adacore.com>
* thread.c (print_thread_info): Make "requested_threads" const.
* gdbthread.h (print_thread_info): Make "requested_threads"
const.
* ada-tasks.c (print_ada_task_info): Make "taskno_str" const.
* ada-lang.h (print_ada_task_info): Make "taskno_str" const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add completion for Ada catch commands
@ 2019-05-10 16:16 sergiodj+buildbot
2019-05-10 16:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 16:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 71bed2dba6c0706633ead4994cc89e063abf28ea ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 71bed2dba6c0706633ead4994cc89e063abf28ea
Add completion for Ada catch commands
This patch adds a completion function to the "catch exception"
and "catch handlers" commands.
Tested on x86-64 Fedora 29; reviewed off-list by Joel.
gdb/ChangeLog
2019-05-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (catch_ada_completer): New function.
(_initialize_ada_language): Use it.
gdb/testsuite/ChangeLog
2019-05-10 Tom Tromey <tromey@adacore.com>
* gdb.ada/info_exc.exp: Add "complete" test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] cc-with-tweaks: show dwz stderr and verify result
@ 2019-05-10 20:58 sergiodj+buildbot
2019-05-10 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9eac7f9b45e92b83db476d167e5ff26607a8b47 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: a9eac7f9b45e92b83db476d167e5ff26607a8b47
cc-with-tweaks: show dwz stderr and verify result
When running the gdb.base/index-cache.exp test case with the
cc-with-dwz-m board, I noticed that the final executable didn't actually
contain a .gnu_debugaltlink section with the name of the external dwz
file:
$ readelf --debug-dump=links testsuite/outputs/gdb.base/index-cache/index-cache
* empty *
Running dwz by hand, I realized it's because dwz complains that the
output .debug_info section is empty and fails:
$ gcc ~/src/binutils-gdb/gdb/testsuite/gdb.base/index-cache.c -g3 -O0 -o a && cp a b
$ dwz -m foo a b
dwz: foo: .debug_info section not present
$ echo $?
1
This is because index-cache.c is trivial (just an empty main) and dwz
doesn't find anything to factor out to the dwz file. [1]
I think that cc-with-tweaks should fail in this scenario: if the user
asks for an external dwz file to be generated (the -m flag), then it
should be an error if cc-with-tweaks doesn't manage to produce an
executable with the proper link to this external dwz file. Otherwise,
the test runs with a regular non-dwzified executable, which gives a
false sense of security about whether the feature under test works with
dwzified executables.
So this patch adds checks for that after invoking dwz. It also removes
the 2>&1 to allow the error message to be printed like so:
Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/index-cache.exp ...
gdb compile failed, dwz: /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/index-cache/index-cache.dwz: .debug_info section not present
- In the -m case (multi-file compression), we check if the expected output file
exists.
- In the -z case (single-file compression), we check if the file
contents has changed. This should catch cases where dwz doesn't modify the
file because it's not worth it.
It was chosen not to check for dwz's exit code, as it is not very
reliable up to dwz 0.12.
With this patch, fewer tests will pass than before with the
cc-with-dwz and cc-with-dwz-m boards, but those were false positives
anyway, as the test ran with regular executables.
[1] Note that dwz has been patched by Tom de Vries to work correctly in
this case, so we can use dwz master to run the test:
https://sourceware.org/git/?p=dwz.git;a=commit;h=08becc8b33453b6d013a65e7eeae57fc1881e801
gdb/ChangeLog:
* contrib/cc-with-tweaks.sh: Validate dwz's work.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC objdump -Mraw
@ 2019-05-11 0:59 sergiodj+buildbot
2019-05-11 1:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 0:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0067be51e9436c5bbd961a4f54c10dbd50c491ea ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0067be51e9436c5bbd961a4f54c10dbd50c491ea
PowerPC objdump -Mraw
* ppc-dis.c (print_insn_powerpc) Don't skip optional operands
when -Mraw is in effect.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix two langauge -> language typos
@ 2019-05-12 16:12 sergiodj+buildbot
2019-05-12 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-12 16:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41
Fix two langauge -> language typos
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S
@ 2019-05-14 8:28 sergiodj+buildbot
2019-05-14 8:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 8:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2764128dee821448ba43a50ed8cee387f2ee8dca ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 2764128dee821448ba43a50ed8cee387f2ee8dca
[gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S
A base address selection entry in a location list consist of two (constant or
relocated) address offsets. The two offsets are the same size as an address
on the target machine.
The test-case gdb.dwarf2/dw2-skip-prologue.S encodes a base address selection
entry using .4byte, which is incorrect for 8-byte pointer size. [ Which
triggers an assert in dwz, see PR dwz/24172. ]
Fix this by using PTRBYTE instead.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-14 Tom de Vries <tdevries@suse.de>
* gdb.dwarf2/dw2-skip-prologue.S (.debug_loc): Fix base address
selection entry encoding.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Add half float view to V registers
@ 2019-05-14 9:55 sergiodj+buildbot
2019-05-14 9:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 9:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd
AArch64: Add half float view to V registers
AArch64 can fill the vector registers with half precision floats.
Add a view for this.
Add builtin type ieee half and connect this to the existing
floatformats_ieee_half.
gdb/ChangeLog:
2019-05-14 Alan Hayward <alan.hayward@arm.com>
* aarch64-tdep.c (aarch64_vnh_type): Add half view.
(aarch64_vnv_type): Likewise.
* target-descriptions.c (make_gdb_type): Add TDESC_TYPE_IEEE_HALF.
* common/tdesc.c: Likewise.
* common/tdesc.h (enum tdesc_type_kind): Likewise.
* features/aarch64-fpu.c (create_feature_aarch64_fpu): Regenerate.
* features/aarch64-fpu.xml: Add ieee half view.
* features/aarch64-sve.c (create_feature_aarch64_fpu): Likewise.
* gdbtypes.c (gdbtypes_post_init): Add builtin_half
* gdbtypes.h (struct builtin_type): Likewise.
(struct objfile_type): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled.
@ 2019-05-14 10:15 sergiodj+buildbot
2019-05-14 10:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 10:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3076e59490428c9719765f9b007d6d0d0238f006 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 3076e59490428c9719765f9b007d6d0d0238f006
A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled.
PR 24538
gas * macro.c (get_any_string): Increase size of buffer used to hold
decimal value of expression result.
* dw2gencfi.c (get_debugseg_name): Handle an empty name.
* dwarf2dbg.c (get_filenum): Catch integer wraparound when
extending allocate file array.
(dwarf2_directive_filename): Add extra checks of the computed file
number.
* config/tc-arm.c (arm_tc_equal_in_insn): Insert copy of name into
warning hash table.
(s_arm_eabi_attribute): Check for obj_elf_vendor_attribute
returning -1.
* config/tc-i386.c (i386_output_nops): Catch an attempt to
generate nops of negative lengths.
* as.h (MAX_LITTLENUMS): Move definition to here from...
* config/atof-ieee.c: ...here.
* config/tc-aarch64.c: ...here.
* config/tc-arc.c: ...here.
* config/tc-arm.c: ...here.
* config/tc-epiphany.c: ...here.
* config/tc-i386.c: ...here.
* config/tc-ia64.c: ...here. (And correct the value).
* config/tc-m32c.c: ...here.
* config/tc-m32r.c: ...here.
* config/tc-metag.c: ...here.
* config/tc-microblaze.c: ...here.
* config/tc-nds32.c: ...here.
* config/tc-or1k.c: ...here.
* config/tc-score.c: ...here.
* config/tc-score7.c: ...here.
* config/tc-tic4x.c: ...here.
* config/tc-tilegx.c: ...here.
* config/tc-tilepro.c: ...here.
* config/tc-visium.c: ...here.
* config/tc-sh.c (md_assemble): Add check for an instruction with
no opcodes.
* config/tc-mips.c (mips_lookup_insn): Add check for very short
instruction name.
* config/tc-tic54x.c: Use unsigned chars to access is_end_of_line
array.
(tic54x_start_line_hook): Check for an empty line.
(next_line_shows_parallel): Do not walk off the end of the string.
(tic54x_macro_start): Check for too much macro nesting.
(tic54x_start_label): Add label_start parameter. Use this
parameter to check the first character of the label.
* config/tc-tic54x.h (TC_START_LABEL_WITHOUT_COLON): Pass
line_start variable to tic54x_start_label.
PR 24538
opcodes * ia64-opc.c (ia64_find_matching_opcode): Check for reaching the
end of the table prematurely.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files.
@ 2019-05-14 10:31 sergiodj+buildbot
2019-05-14 10:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 10:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 37d0d09177dc02e0002ab8b90d9b7bc402af9240 ***
Author: Jamey Hicks <jamey.hicks@gmail.com>
Branch: master
Commit: 37d0d09177dc02e0002ab8b90d9b7bc402af9240
Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files.
PR 19921
binutils* objcopy.c: Add new option --verilog-data-width. Use it to set
the value of VerilogDataWidth.
* doc/binutils.texi: Document the new option.
* testsuite/binutils-all/objcopy.exp: Run tests of new option.
* testsuite/binutils-all/verilog-1.hex: New file.
* testsuite/binutils-all/verilog-2.hex: New file.
* testsuite/binutils-all/verilog-4.hex: New file.
* testsuite/binutils-all/verilog-8.hex: New file.
* NEWS: Mention the new feature.
bfd * verilog.c: (VerilogDataWidth): New variable.
(verilog_write_record): Emit bytes in VerilogDataWidth bundles.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add file name styling to "info sharedlibrary"
@ 2019-05-14 14:08 sergiodj+buildbot
2019-05-14 14:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 14:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e7bd7fba34ae1f892acf1e13ac86fca55b68026d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: e7bd7fba34ae1f892acf1e13ac86fca55b68026d
Add file name styling to "info sharedlibrary"
This changes "info sharedlibrary" to add styling to the file name.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-14 Tom Tromey <tromey@adacore.com>
* solib.c (info_sharedlibrary_command): Style the file name.
gdb/testsuite/ChangeLog
2019-05-14 Tom Tromey <tromey@adacore.com>
* gdb.base/info-shared.exp (check_info_shared): Add "info shared"
styling test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix assertion failure in coerce_unspec_val_to_type
@ 2019-05-14 22:29 sergiodj+buildbot
2019-05-14 22:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-14 22:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c408a94f8115767ea7e6aa1a75bc59ea5ae960fa ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c408a94f8115767ea7e6aa1a75bc59ea5ae960fa
Fix assertion failure in coerce_unspec_val_to_type
coerce_unspec_val_to_type does:
set_value_address (result, value_address (val));
However, this is only valid for lval_memory. This patch changes this
code to only set the address for lval_memory values.
This seems like an ordinary oversight in coerce_unspec_val_to_type,
and a test case would be difficult to write, so I'm submitting it
without a test case.
Tested on x86-64 Fedora 29; plus using an Ada program that exhibits
the bug (but which cannot be shared).
gdb/ChangeLog
2019-05-14 Tom Tromey <tromey@adacore.com>
* ada-lang.c (coerce_unspec_val_to_type): Only set address when
value is not lval_memory.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] ARM STM32L4XX erratum test failure
@ 2019-05-15 7:31 sergiodj+buildbot
2019-05-15 7:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 7:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211
ARM STM32L4XX erratum test failure
Fixes a failure seen with MALLOC_PERTURB_=1.
* elf32-arm.c (elf32_arm_write_section): Don't leave
error case of STM32L4XX_ERRATUM_BRANCH_TO_VENEER with
unitialised section contents.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't crash if dwarf_decode_macro_bytes's 'body' is NULL
@ 2019-05-15 14:17 sergiodj+buildbot
2019-05-15 14:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 14:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7bede82892a06e6c26989803e70f53697392dcf9 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 7bede82892a06e6c26989803e70f53697392dcf9
Don't crash if dwarf_decode_macro_bytes's 'body' is NULL
Hi,
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192
https://bugzilla.redhat.com/show_bug.cgi?id=1708786
During the Fedora RPM build process, gdb-add-index is invoked to
extract the DWARF index from the binary, and GDB will segfault because
dwarf2read.c:parse_definition_macro's 'body' variable is NULL.
The underlying problem is that Fedora's rpm-build's "debugedit"
program will silently corrupt .debug_macro strings when a binary is
compiled with -g3. This is being taken care of by Mark Wielaard,
here:
https://bugzilla.redhat.com/show_bug.cgi?id=1708786
However, I still feel it's important to make GDB more resilient
against invalid DWARF input, so I'm proposing this rather simple patch
to catch the situation when "body == NULL" (i.e., it's probably been
corrupted) and issue a complaint. This is not a real fix to the
problem, of course, but at least GDB is able to finish without
segfaulting.
OK for master?
gdb/ChangeLog:
2019-05-15 Sergio Durigan Junior <sergiodj@redhat.com>
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192
* dwarf2read.c (dwarf_decode_macro_bytes): Check whether 'body' is
NULL, and complain if that's the case.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Add sizeof tests for indexed and sliced arrays
@ 2019-05-15 21:57 sergiodj+buildbot
2019-05-15 21:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 21:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 14237686d71b6ef1e6a85f2791cb54d1ec019cb1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 14237686d71b6ef1e6a85f2791cb54d1ec019cb1
gdb/fortran: Add sizeof tests for indexed and sliced arrays
Add tests for calling sizeof on indexed and sliced arrays, and on
pointers to arrays. These are all things that currently work, but
were previously untested.
gdb/testsuite/ChangeLog:
* gdb.fortran/vla-sizeof.exp: Add tests of sizeof applied to
indexed and sliced arrays, and pointers to arrays.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert "ARM STM32L4XX erratum test failure"
@ 2019-05-16 13:25 sergiodj+buildbot
2019-05-16 13:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 13:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a2699ef206aedf8e8d49d8519ae8a535e4b4afe5 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a2699ef206aedf8e8d49d8519ae8a535e4b4afe5
Revert "ARM STM32L4XX erratum test failure"
This reverts commit 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 1/57][Arm][GAS]: Add support for +mve and +mve.fp
@ 2019-05-16 15:57 sergiodj+buildbot
2019-05-16 15:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 15:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7ad558c377fd5f5cc7bc77837c532f907f2c53b ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: a7ad558c377fd5f5cc7bc77837c532f907f2c53b
[PATCH 1/57][Arm][GAS]: Add support for +mve and +mve.fp
bfd/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add case for Tag_MVE_arch.
binutils/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
* readelf.c (arm_attr_tag_MVE_arch): New array for Tag_MVE_arch values.
(arm_attr_public_tag arm_attr_public_tags): Add case for Tag_MVE_arch.
elfcpp/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
* arm.h (Tag_MVE_arch): Define new enum value.
gas/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (mve_ext, mve_fp_ext): New features.
(armv8_1m_main_ext_table): Add new extensions.
(aeabi_set_public_attributes): Translate new features to new build attributes.
(arm_convert_symbolic_attribute): Add Tag_MVE_arch.
* doc/c-arm.texi: Document new extensions and new build attribute.
include/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
* elf/arm.h (Tag_MVE_arch): Define new enum value.
* opcode/arm.h (FPU_MVE, FPU_MVE_FP): New MACROs for new features.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic
@ 2019-05-16 16:29 sergiodj+buildbot
2019-05-16 16:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 16:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c507f10b0711f24e1b82b8bd096e605317cf77fe ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: c507f10b0711f24e1b82b8bd096e605317cf77fe
[PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (enum mve_instructions): Add new instructions.
(enum mve_unpredictable): Add new reasons.
(enum mve_undefined): Likewise.
(is_mve_okay_in_it): Handle new isntructions.
(is_mve_encoding_conflict): Likewise.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_vmov_index): Likewise.
(print_simd_imm8): Likewise.
(print_mve_undefined): Likewise.
(print_mve_unpredictable): Likewise.
(print_mve_size): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-05-16 16:29 [binutils-gdb] [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic sergiodj+buildbot
@ 2019-05-16 16:29 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 16:29 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9993>
Commit(s) tested:
c507f10b0711f24e1b82b8bd096e605317cf77fe
Author(s) (in the same order as the commits):
Andre Vieira <andre.simoesdiasvieira@arm.com>
Subject:
[PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/c5/c507f10b0711f24e1b82b8bd096e605317cf77fe/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the second fork
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=7180df81>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=7180df81>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh
@ 2019-05-16 17:04 sergiodj+buildbot
2019-05-16 17:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d3b6314397347943f40cdbf6efe34e209a162cc0 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: d3b6314397347943f40cdbf6efe34e209a162cc0
[PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (enum mve_instructions): Add new instructions.
(enum mve_undefined): Add new reasons.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_undefined): Likewise.
(print_mve_size): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-05-16 17:04 [binutils-gdb] [PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh sergiodj+buildbot
@ 2019-05-16 17:05 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/9995>
Commit(s) tested:
d3b6314397347943f40cdbf6efe34e209a162cc0
Author(s) (in the same order as the commits):
Andre Vieira <andre.simoesdiasvieira@arm.com>
Subject:
[PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/d3/d3b6314397347943f40cdbf6efe34e209a162cc0/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the second fork
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=7180df81>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=7180df81>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup
@ 2019-05-16 17:22 sergiodj+buildbot
2019-05-16 17:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1c8f2df85f56d8f3213667e2a11cd480f2a26667 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 1c8f2df85f56d8f3213667e2a11cd480f2a26667
[PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (enum mve_instructions): Add new instructions.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_unpredictable): Likewise.
(print_mve_size): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions
@ 2019-05-16 17:53 sergiodj+buildbot
2019-05-16 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 17:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ed63aa178c4b5e47eb8658813b2a3b621b7a092b ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: ed63aa178c4b5e47eb8658813b2a3b621b7a092b
[PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (enum mve_instructions): Add new instructions.
(enum mve_undefined): Add new reasons.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_undefined): Likewise.
(print_mve_size): Likewise.
(print_mve_shift_n): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub
@ 2019-05-16 18:25 sergiodj+buildbot
2019-05-16 18:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66dcaa5d55eb39471d962bb949df009a9ea3f959 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 66dcaa5d55eb39471d962bb949df009a9ea3f959
[PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (thumb32_opcodes): Add new instructions.
(enum mve_instructions): Likewise.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_size): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-05-16 18:25 [binutils-gdb] [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub sergiodj+buildbot
@ 2019-05-16 18:31 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:31 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10000>
Commit(s) tested:
66dcaa5d55eb39471d962bb949df009a9ea3f959
Author(s) (in the same order as the commits):
Andre Vieira <andre.simoesdiasvieira@arm.com>
Subject:
[PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/66/66dcaa5d55eb39471d962bb949df009a9ea3f959/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=7180df81>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=7180df81>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp
@ 2019-05-16 18:42 sergiodj+buildbot
2019-05-16 18:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e523f10159d469dc0ca77069d092411f200685a1 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: e523f10159d469dc0ca77069d092411f200685a1
[PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (thumb32_opcodes): Add new instructions.
(enum mve_instructions): Likewise.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_size): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-05-16 18:42 [binutils-gdb] [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp sergiodj+buildbot
@ 2019-05-16 18:47 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 18:47 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10001>
Commit(s) tested:
e523f10159d469dc0ca77069d092411f200685a1
Author(s) (in the same order as the commits):
Andre Vieira <andre.simoesdiasvieira@arm.com>
Subject:
[PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/e5/e523f10159d469dc0ca77069d092411f200685a1/>
*** Diff to previous build ***
============================
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=7180df81>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=7180df81>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [PATCH 55/57][Arm][OBJDUMP] Add support for MVE instructions: vmul, vmulh, vrmulh and vneg
@ 2019-05-16 19:14 sergiodj+buildbot
2019-05-16 19:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 19:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f49bb598d96fd66bb6f2e9b14951f094e3d29396 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: f49bb598d96fd66bb6f2e9b14951f094e3d29396
[PATCH 55/57][Arm][OBJDUMP] Add support for MVE instructions: vmul, vmulh, vrmulh and vneg
opcodes/ChangeLog:
2019-05-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Michael Collison <michael.collison@arm.com>
* arm-dis.c (thumb32_opcodes): Add new instructions.
(enum mve_instructions): Likewise.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_undefined): Likewise.
(is_mve_unpredictable): Likewise.
(print_mve_size): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix darwin-nat.c build
@ 2019-05-16 19:46 sergiodj+buildbot
2019-05-16 19:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 19:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 61c9c4212daa0be96503b9069da387aebf9cba04 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 61c9c4212daa0be96503b9069da387aebf9cba04
Fix darwin-nat.c build
John Marshall pointed out that darwin-nat.c fails to build:
CXX darwin-nat.o
../../../binutils-gdb/gdb/darwin-nat.c:1709:8: error: must use 'class' tag to refer to type 'thread_info' in this scope
for (thread_info *it : all_threads ())
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/thread_act.h:240:15: note:
class 'thread_info' is hidden by a non-type declaration of 'thread_info' here
kern_return_t thread_info
Mach has a thread_info() function declared in that header, which darwin-nat.c #includes.
This patch fixes the problem by reintroducing the struct keyword.
gdb/ChangeLog
2019-05-16 Tom Tromey <tromey@adacore.com>
* darwin-nat.c (thread_info_from_private_thread_info): Add struct
keyword to foreach.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Bool-ify stap-probe.c and stap-related code on i386-tdep.c
@ 2019-05-16 20:49 sergiodj+buildbot
2019-05-16 20:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 20:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af2d9beee989c7b75de849d9c08629a1e3f567ad ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: af2d9beee989c7b75de849d9c08629a1e3f567ad
Bool-ify stap-probe.c and stap-related code on i386-tdep.c
This simple patch converts a bunch of "int"s to "bool" on stap-probe.c
and on the stap-related code present on i386-tdep.c.
Pushed as obvious (+ I'm the maintainer of this code).
gdb/ChangeLog:
2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com>
* i386-tdep.c (i386_stap_parse_special_token_triplet): Change
return type to 'bool'. Adjust comment. Use 'bool' when
appropriate.
(i386_stap_parse_special_token_three_arg_disp): Likewise.
* stap-probe.c (stap_parse_argument_1): Likewise.
(stap_is_operator): Likewise.
(stap_is_generic_prefix): Likewise.
(stap_is_register_prefix): Likewise.
(stap_is_register_indirection_prefix): Likewise.
(stap_is_integer_prefix): Likewise.
(stap_generic_check_suffix): Likewise.
(stap_check_integer_suffix): Likewise.
(stap_check_register_suffix): Likewise.
(stap_check_register_indirection_suffix): Likewise.
(stap_parse_register_operand): Likewise.
(stap_parse_single_operand): Likewise.
(stap_parse_argument_1): Likewise.
(stap_probe::get_argument_count): Likewise.
(stap_is_operator): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update some comments on stap-probe.c
@ 2019-05-16 21:04 sergiodj+buildbot
2019-05-16 21:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3ca58cdea13ddad01d70aa170eb419903b241b94 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 3ca58cdea13ddad01d70aa170eb419903b241b94
Update some comments on stap-probe.c
Some functions's comments were not entirely correct on stap-probe.c,
so this patch updates them.
Pushed as obvious.
gdb/ChangeLog:
2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com>
* stap-probe.c (stap_get_opcode): Update comment.
(stap_get_expected_argument_type): Likewise.
(handle_stap_probe): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Slightly improve logic of some operations on stap-probe.c
@ 2019-05-16 21:21 sergiodj+buildbot
2019-05-16 21:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1bb75ab2a68b7d0878966f5a945eb7d33a48280 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: f1bb75ab2a68b7d0878966f5a945eb7d33a48280
Slightly improve logic of some operations on stap-probe.c
This patch contains three very small improvement on the logic of some
operations we do on stap-probe.c. They don't change what the code
does.
Pushed as obvious.
gdb/ChangeLog:
2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com>
* stap-probe.c (stap_parse_register_operand): Make "if (*p->arg ==
'-')" and "else if".
(stap_parse_single_operand): Join checks for
"gdbarch_stap_parse_special_token_p" and
"gdbarch_stap_parse_special_token" in the same "if" statement.
Invert check when verifying for operation on register
displacement.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix complaint string formatting on stap-probe.c
@ 2019-05-16 21:37 sergiodj+buildbot
2019-05-16 21:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f3da9116654bb2e899063a0aa9e11c2606b38fff ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: f3da9116654bb2e899063a0aa9e11c2606b38fff
Fix complaint string formatting on stap-probe.c
I think the string formatting for complaints was messed up by Tom's
patch to simplify the complaint mechanism. This small and trivial
patch fixes them.
Pushed as obvious.
gdb/ChangeLog:
2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com>
* stap-probe.c (handle_stap_probe): Fix complaint formatting.
(stap_static_probe_ops::get_probes): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make stap-probe.c:stap_parse_register_operand's "regname" an std::string
@ 2019-05-16 21:53 sergiodj+buildbot
2019-05-16 21:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0
Make stap-probe.c:stap_parse_register_operand's "regname" an std::string
This patch simplifies the code of
stap-probe.c:stap_parse_register_operand by making "regname" an
std::string. No functionality change.
I'm this code's maintainer, so I'm pushing this as it's a fairly
trivial patch.
gdb/ChangeLog:
2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com>
* stap-probe.c (stap_parse_register_operand): Make "regname" an
"std::string", simplifying the algorithm.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix heap-use-after-free in typename_concat
@ 2019-05-17 7:58 sergiodj+buildbot
2019-05-17 7:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 7:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f
[gdb] Fix heap-use-after-free in typename_concat
When running gdb using AddressSanitizer, and loading a cc1plus binary built
with profiledbootstrap and -flto, we run into a heap-use-after-free error:
...
$ LD_PRELOAD=/usr/lib64/libasan.so.3 ./gdb -batch cc1plus
==26855==ERROR: AddressSanitizer: heap-use-after-free on address \
0x62100ad8a8b0 at pc 0x7f13803cc9e3 bp 0x7ffe55b0d090 sp 0x7ffe55b0c840
READ of size 47 at 0x62100ad8a8b0 thread T0
#0 0x7f13803cc9e2 (/usr/lib64/libasan.so.3+0x3e9e2)
#1 0x5e7a0d in typename_concat gdb/dwarf2read.c:22661
#2 0x5c6437 in partial_die_full_name gdb/dwarf2read.c:8876
#3 0x5c6555 in add_partial_symbol gdb/dwarf2read.c:8893
#4 0x5c6ecf in add_partial_subprogram gdb/dwarf2read.c:9156
#5 0x5c5e90 in scan_partial_symbols gdb/dwarf2read.c:8668
#6 0x5c6c0a in add_partial_namespace gdb/dwarf2read.c:9081
#7 0x5c5f99 in scan_partial_symbols gdb/dwarf2read.c:8702
#8 0x5c48b6 in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8056
#9 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689
#10 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
#11 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
#12 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
#13 0x612359 in read_psyms gdb/elfread.c:1311
#14 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
#15 0x867d7b in read_symbols gdb/symfile.c:821
#16 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
#17 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
#18 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
#19 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
enum_flags<symfile_add_flag>, std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
#20 0x868b64 in symbol_file_add(char const*, \
enum_flags<symfile_add_flag>, \
std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>) gdb/symfile.c:1217
#21 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
#22 0x868bd0 in symbol_file_add_main(char const*, \
enum_flags<symfile_add_flag>) gdb/symfile.c:1231
#23 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
#24 0x71f10e in catch_command_errors gdb/main.c:372
#25 0x71ff5f in captured_main_1 gdb/main.c:1043
#26 0x72045d in captured_main gdb/main.c:1163
#27 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
#28 0x40fd7d in main gdb/gdb.c:32
#29 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
#30 0x40fc89 in _start (/data/gdb_versions/devel/build/gdb/gdb+0x40fc89)
0x62100ad8a8b0 is located 944 bytes inside of 4064-byte region \
[0x62100ad8a500,0x62100ad8b4e0)
freed by thread T0 here:
#0 0x7f13804523a0 in __interceptor_free (/usr/lib64/libasan.so.3+0xc43a0)
#1 0x435e44 in xfree<void> gdb/common/common-utils.h:60
#2 0xa82c25 in call_freefun libiberty/obstack.c:103
#3 0xa83098 in _obstack_free libiberty/obstack.c:280
#4 0x4367da in auto_obstack::~auto_obstack() gdb/gdb_obstack.h:101
#5 0x5ed72c in dwarf2_cu::~dwarf2_cu() gdb/dwarf2read.c:25341
#6 0x5fb5bb in std::default_delete<dwarf2_cu>::operator()(dwarf2_cu*) const \
/usr/include/c++/7/bits/unique_ptr.h:78
#7 0x5f7334 in std::unique_ptr<dwarf2_cu, \
std::default_delete<dwarf2_cu> >::~unique_ptr() \
/usr/include/c++/7/bits/unique_ptr.h:268
#8 0x5c3ce5 in init_cutu_and_read_dies gdb/dwarf2read.c:7624
#9 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
#10 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
#11 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
#12 0x612359 in read_psyms gdb/elfread.c:1311
#13 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
#14 0x867d7b in read_symbols gdb/symfile.c:821
#15 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
#16 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
#17 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
#18 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
enum_flags<symfile_add_flag>, std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
#19 0x868b64 in symbol_file_add(char const*, \
enum_flags<symfile_add_flag>, std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>) gdb/symfile.c:1217
#20 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
#21 0x868bd0 in symbol_file_add_main(char const*, \
enum_flags<symfile_add_flag>) gdb/symfile.c:1231
#22 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
#23 0x71f10e in catch_command_errors gdb/main.c:372
#24 0x71ff5f in captured_main_1 gdb/main.c:1043
#25 0x72045d in captured_main gdb/main.c:1163
#26 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
#27 0x40fd7d in main gdb/gdb.c:32
#28 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
previously allocated by thread T0 here:
#0 0x7f13804526b8 in __interceptor_malloc (/usr/lib64/libasan.so.3+0xc46b8)
#1 0x5114b5 in xmalloc gdb/common/common-utils.c:44
#2 0xa82bd5 in call_chunkfun libiberty/obstack.c:94
#3 0xa82eda in _obstack_newchunk libiberty/obstack.c:206
#4 0x477310 in allocate_on_obstack::operator new(unsigned long, obstack*) \
gdb/gdb_obstack.h:117
#5 0x5dea8c in load_partial_dies gdb/dwarf2read.c:18571
#6 0x5c487f in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8054
#7 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689
#8 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140
#9 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500
#10 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337
#11 0x612359 in read_psyms gdb/elfread.c:1311
#12 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115
#13 0x867d7b in read_symbols gdb/symfile.c:821
#14 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000
#15 0x8684a1 in syms_from_objfile gdb/symfile.c:1017
#16 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124
#17 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \
enum_flags<symfile_add_flag>, \
std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>, objfile*) gdb/symfile.c:1204
#18 0x868b64 in symbol_file_add(char const*, enum_flags<symfile_add_flag>, \
std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>) gdb/symfile.c:1217
#19 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240
#20 0x868bd0 in symbol_file_add_main(char const*, \
enum_flags<symfile_add_flag>) gdb/symfile.c:1231
#21 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395
#22 0x71f10e in catch_command_errors gdb/main.c:372
#23 0x71ff5f in captured_main_1 gdb/main.c:1043
#24 0x72045d in captured_main gdb/main.c:1163
#25 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188
#26 0x40fd7d in main gdb/gdb.c:32
#27 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49)
...
This error happens as follows.
The function find_partial_die has a cu argument, but returns a pdi which may
or may not be from that cu:
...
/* Find a partial DIE at OFFSET, which may or may not be in CU,
except in the case of .debug_types DIEs which do not reference
outside their CU (they do however referencing other types via
DW_FORM_ref_sig8). */
static struct partial_die_info *
find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu)
...
So the pdi returned by find_partial_die here in partial_die_parent_scope may
be from another cu:
...
partial_die_parent_scope (struct partial_die_info *pdi,
struct dwarf2_cu *cu)
{
const char *grandparent_scope;
struct partial_die_info *parent, *real_pdi;
/* We need to look at our parent DIE; if we have a DW_AT_specification,
then this means the parent of the specification DIE. */
real_pdi = pdi;
while (real_pdi->has_specification)
real_pdi = find_partial_die (real_pdi->spec_offset,
real_pdi->spec_is_dwz, cu);
parent = real_pdi->die_parent;
...
in which case both real_pdi and parent will be not from cu, but from another
one, say cu2.
Subsequently, cu's comp_unit_obstack is used to set parent->scope:
...
parent->scope = typename_concat (&cu->comp_unit_obstack,
grandparent_scope,
parent->name, 0, cu);
...
So, we use cu->comp_unit_obstack to assign a value to the scope field of
a pdi belonging to cu2, and when cu is deleted, the scope field points to a
freed value.
Fix this by making find_partial_die return the cu corresponding to the
returned pdi, and handling this at the call sites.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-05-17 Tom de Vries <tdevries@suse.de>
PR gdb/24094
* dwarf2read.c (struct cu_partial_die_info): New struct.
(find_partial_die): Return cu_partial_die_info.
(partial_die_parent_scope, guess_partial_die_structure_name)
(partial_die_info::fixup): Handle new return type of find_partial_die.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add myself to gdb/MAINTAINERS
@ 2019-05-17 10:06 sergiodj+buildbot
2019-05-17 10:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 10:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7d0e2ecedef69de0a242ac49a475f6a3968d4476 ***
Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 7d0e2ecedef69de0a242ac49a475f6a3968d4476
Add myself to gdb/MAINTAINERS
gdb/Changelog:
* MAINTAINERS (Write After Approval): Add myself.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] MI: extract command completion logic from complete_command()
@ 2019-05-17 10:42 sergiodj+buildbot
2019-05-17 11:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 10:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6e035501e15e72398fcd9db88c97dd30e585a9ae ***
Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 6e035501e15e72398fcd9db88c97dd30e585a9ae
MI: extract command completion logic from complete_command()
Extract completion logic from CLI complete_command() into a new
helper function complete().
gdb/Changelog:
* completer.h (complete): New function.
* completer.c (complete): Likewise.
* cli/cli-cmds.c: (complete_command): Update to use new complete()
function defined in completer.h.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-05-17 10:42 [binutils-gdb] MI: extract command completion logic from complete_command() sergiodj+buildbot
@ 2019-05-17 11:00 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 11:00 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10013>
Commit(s) tested:
6e035501e15e72398fcd9db88c97dd30e585a9ae
Author(s) (in the same order as the commits):
Jan Vrany <jan.vrany@fit.cvut.cz>
Subject:
MI: extract command completion logic from complete_command()
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/6e/6e035501e15e72398fcd9db88c97dd30e585a9ae/>
*** Diff to previous build ***
============================
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line argument -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line argument "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line argument -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line argument "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument -fun"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source thr"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: set max-completions unlimited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=7180df81>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=7180df81>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] MI: Add new command -complete
@ 2019-05-17 11:02 sergiodj+buildbot
2019-05-17 11:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 11:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26648588294d039fcf1efbf512d785753cb6286d ***
Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 26648588294d039fcf1efbf512d785753cb6286d
MI: Add new command -complete
There is a CLI command 'complete' intended to use with emacs. Such a command
would also be useful for MI frontends, when separate CLI and MI channels cannot
be used. For example, on Windows (because of lack of PTYs) or when GDB is used
through SSH session.
This commit adds a new '-complete' MI command.
gdb/Changelog:
2019-01-28 Jan Vrany <jan.vrany@fit.cvut.cz>
* mi/mi-cmds.h (mi_cmd_complete): New function.
* mi/mi-main.c (mi_cmd_complete): Likewise.
* mi/mi-cmds.c: Define new MI command -complete.
* NEWS: Mention new -complete command.
gdb/doc/ChangeLog:
2019-01-28 Jan Vrany <jan.vrany@fit.cvut.cz>
* gdb.texinfo (Miscellaneous GDB/MI Commands): Document new
MI command -complete.
gdb/testsuite/ChangeLog:
2019-01-28 Jan Vrany <jan.vrany@fit.cvut.cz>
* gdb.mi/mi-complete.exp: New file.
* gdb.mi/mi-complete.cc: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change file close behavior for tee_file
@ 2019-05-17 13:27 sergiodj+buildbot
2019-05-17 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 13:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f3a09c800fcd1d597fa2b9578cb59adfc15b698d ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: f3a09c800fcd1d597fa2b9578cb59adfc15b698d
Change file close behavior for tee_file
Instead of using two bools to decide if the files should close when tee_file
is closed, make file one stay open and file two close. This simplifies the
use cases for it.
Inline the make_logging_output into the calling functions (the logic here
looks ugly in order to simplify a later change).
Expand ui-redirect.exp to cover the changes, similar to mi-logging.exp.
gdb/ChangeLog:
* cli/cli-interp.c (cli_interp_base::set_logging): Create tee_file
directly.
* cli/cli-interp.h (make_logging_output): Remove declaration.
* cli/cli-logging.c (make_logging_output): Remove function.
* mi/mi-interp.c (mi_interp::set_logging): Create tee_file
directly.
* ui-file.c (tee_file::tee_file): Remove bools.
(tee_file::~tee_file): Remove deletes.
* ui-file.h (tee_file): Remove bools.
gdb/testsuite/ChangeLog:
* gdb.base/ui-redirect.exp: Test redirection.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add debug redirect option
@ 2019-05-17 13:46 sergiodj+buildbot
2019-05-17 13:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 13:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca1285d17534cff3041c07ac7841288e1b3ba19c ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ca1285d17534cff3041c07ac7841288e1b3ba19c
Add debug redirect option
Currently, when logging is enabled, output will be sent to both a
logfile and standard terminal output. The redirect option sends output
only to the logfile. This includes all debug output.
Add the option to redirect debug output seperately to normal
output, using the cli command:
set logging debugredirect on
By setting this and enabling logging, all output and debug will
be sent to the logfile. The user will still see all output but
no debug output.
This causes a change in behaviour for anyone currently using
logging redirect, as now only output will be redirected. Users
will have to issue the additional command above to also redirect
debug.
Expand ui-redirect.exp cover the changes.
gdb/ChangeLog:
* cli/cli-interp.c (struct saved_output_files): Add saved entry.
(cli_interp_base::set_logging): Check debug_redirect.
* cli/cli-interp.h (set_logging): Add debug_redirect parameter.
* cli/cli-logging.c (debug_redirect): Add static variable.
(pop_output_files): Add default param.
(handle_redirections): Print debug setting.
(show_logging_command): Likewise.
(_initialize_cli_logging): Add debugredirect command.
* interps.c (current_interp_set_logging): Add debug_redirect
parameter.
* interps.h (set_logging): Add debug_redirect parameter.
(current_interp_set_logging): Likewise.
* mi/mi-common.h: Likewise.
* mi/mi-interp.c (mi_interp::set_logging): Likewise.
gdb/testsuite/ChangeLog:
* gdb.base/ui-redirect.exp: Add debug redirect tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] testsuite: Disable some tests when logging
@ 2019-05-17 14:55 sergiodj+buildbot
2019-05-17 15:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 14:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa
testsuite: Disable some tests when logging
Fix up all failures encountered when running the testsuite with
GDB_DEBUG="infrun".
Some tests rely on enabling debugging for various components. With
debugging on, this will be lost to the debug file.
Disable separate tty for mi tests when debugging. This currently
does not work.
disasm.c should send errors to the stderr instead of the logfile.
Note that enabling debug for other components might still cause
additional errors above what has been fixed here.
gdb/ChangeLog:
* disasm.c (set_disassembler_options): Send errors to stderr.
gdb/testsuite/ChangeLog:
* gdb.base/breakpoint-in-ro-region.exp: Disable when debugging.
* gdb.base/debug-expr.exp: Likewise.
* gdb.base/foll-fork.exp: Likewise.
* gdb.base/foll-vfork.exp: Likewise.
* gdb.base/fork-print-inferior-events.exp: Likewise.
* gdb.base/gdb-sigterm.exp: Likewise.
* gdb.base/gdbinit-history.exp: Likewise.
* gdb.base/osabi.exp: Likewise.
* gdb.base/sss-bp-on-user-bp-2.exp: Likewise.
* gdb.base/ui-redirect.exp: Likewise.
* gdb.gdb/unittest.exp: Likewise.
* gdb.mi/mi-break.exp: Disable separate-mi-tty when debugging.
* gdb.mi/mi-watch.exp: Likewise.
* gdb.mi/new-ui-mi-sync.exp: Likewise.
* gdb.mi/user-selected-context-sync.exp: Likewise.
* gdb.python/python.exp: Disable debug test when debugging.
* gdb.threads/check-libthread-db.exp: Disable when debugging.
* gdb.threads/signal-while-stepping-over-bp-other-thread.exp:
Likewise.
* gdb.threads/stepi-random-signal.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] testsuite: Record all gdb input to gdb.in
@ 2019-05-17 15:53 sergiodj+buildbot
2019-05-17 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 15:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f9e2e39d23495844d998f54a0fccb9d6be7edb0e ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: f9e2e39d23495844d998f54a0fccb9d6be7edb0e
testsuite: Record all gdb input to gdb.in
When debugging testsuite failures, it can be awkward parsing gdb.log to
obtain all the commands run in order to manually re-run the test.
This patch adds the functionality to save all gdb commands to the file gdb.in
when the testsuite is run. The file is saved in the directory for the test and
if gdb is restarted then .1, .2, .3 etc is added to the filename.
Once a test has been run, the .in file can be used to re-run the test in the
following way:
gdb -x outputs/gdb.store/gdb.in outputs/gdb.store/store
The code works by intercepting send_gdb. I've added a TYPE to ensure that any
commands that would destroy the playback are kept from the log (for example the
Y from an answer to a y/n question).
Adds library function standard_output_file_with_gdb_instance to open a file
postfixed with count of the gdb instance. Ensure this count is reset when a new
.exp script is run.
I've re-run a random selection of .in files to check they do not error. Logs with
commands such as "attach <pid>" will not directly work when re-run.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (gdb_unload): Mark Y as an answer.
(delete_breakpoints): Likewise.
(gdb_run_cmd): Likewise.
(gdb_start_cmd): Likewise.
(gdb_starti_cmd): Likewise.
(gdb_internal_error_resync): Likewise.
(gdb_test_multiple): Likewise.
(gdb_reinitialize_dir): Likewise.
(default_gdb_exit): Likewise.
(gdb_file_cmd): Mark kill as optional.
(default_gdb_start): Call gdb_stdin_log_init.
(send_gdb): Call gdb_stdin_log_write.
(rerun_to_main): Mark Y as an answer.
(gdb_stdin_log_init): New function.
(gdb_stdin_log_write): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] testsuite: Create .cmd files for gdb and gdbserver
@ 2019-05-17 16:15 sergiodj+buildbot
2019-05-17 16:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 16:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 408e9b8b9ebeb854baea9aac52fa8df4d41eb53d ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 408e9b8b9ebeb854baea9aac52fa8df4d41eb53d
testsuite: Create .cmd files for gdb and gdbserver
When spawning gdb or gdbserver create a .cmd file in the test output
directory containing the full command line, ensuring the current gdb
instance is appended to the files so that they can be quickly matched
to the corresponding gdb.in file.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (default_gdb_spawn): Call gdb_write_cmd_file.
(gdb_write_cmd_file): New procedure.
* lib/gdbserver-support.exp (gdbserver_start): Call
gdbserver_write_cmd_file.
(gdbserver_write_cmd_file): New proedure.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG
@ 2019-05-17 16:26 sergiodj+buildbot
2019-05-17 16:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 16:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b420b89e4b321ff31f2e76cac499b908f042069b ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: b420b89e4b321ff31f2e76cac499b908f042069b
testsuite: Add replay logging to GDBSERVER_DEBUG
Add "replay" to the list of GDBSERVER_DEBUG options. This will
cause a gdbserver.replay file to be written to the test output
directory.
At the same time switch this to a comma separated list in order
to easily handle all possible options.
The replay log is created by GDB, but has been added to
GDBSERVER_DEBUG as it is only required for gdbserver tests. To
enable it, the gdb_debug_init is overridden to allow the additional
checking, before calling the original function.
gdb/testsuite/ChangeLog:
* README (Testsuite Parameters): Add replay logging to
GDBSERVER_DEBUG.
(gdbserver,debug): Refer to GDBSERVER_DEBUG.
* lib/gdbserver-support.exp (gdbserver_start): Treat gdbserverdebug
as a comma separated list.
(gdb_debug_init): Override procedure.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] testsuite: Remove TRANSCRIPT support
@ 2019-05-17 16:43 sergiodj+buildbot
2019-05-17 16:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 16:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 87781e8475f8ec80463937130cde48540ff87149 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 87781e8475f8ec80463937130cde48540ff87149
testsuite: Remove TRANSCRIPT support
TRANSCRIPT is superseeded by the .in, .cmd and .debug files, and
can be removed.
gdb/testsuite/ChangeLog
* README (Running the Testsuite): Change example.
(Testsuite Parameters): Remove TRANSCRIPT.
* lib/gdb.exp: Remove TRANSCRIPT check.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify annotate_source
@ 2019-05-17 17:00 sergiodj+buildbot
2019-05-17 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 17:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a45575b0356d671df2c55fcfc66de719b6b2e5e5 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a45575b0356d671df2c55fcfc66de719b6b2e5e5
Constify annotate_source
I noticed that annotate_source takes a "char *", but really should
take a "const char *". This patch fixes this.
gdb/ChangeLog
2019-05-17 Tom Tromey <tromey@adacore.com>
* annotate.c (annotate_source): Make "filename" const.
* annotate.h (annotate_source): Use const.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't cast away const in find_and_open_source
@ 2019-05-17 17:37 sergiodj+buildbot
2019-05-17 17:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 17:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 33d0e35aed8870ad317af7eeca5274cf4fd87d15 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 33d0e35aed8870ad317af7eeca5274cf4fd87d15
Don't cast away const in find_and_open_source
find_and_open_source casts away const, but hasn't needed to in a
while. This removes the cast and a strangely hostile comment.
gdb/ChangeLog
2019-05-17 Tom Tromey <tromey@adacore.com>
* source.c (find_and_open_source): Remove cast.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Add constructor to struct cu_partial_die_info
@ 2019-05-18 9:06 sergiodj+buildbot
2019-05-18 9:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-18 9:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf
gdb: Add constructor to struct cu_partial_die_info
Adds a constructor to 'struct cu_partial_die_info' and disables the
default constructor, preventing partially initialised instances from
being created.
Update 'find_partial_die' to return a const struct.
Users of 'find_partial_die' are updated to take account of the above
two changes.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* dwarf2read.c (struct cu_partial_die_info): Add constructor,
delete default constructor.
(find_partial_die): Update to return const struct.
(partial_die_parent_scope): Move variable declaration into scope
of its use and change its type to auto.
(guess_partial_die_structure_name): Likewise.
(partial_die_info::fixup): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Updated translations for various binutils subdirectories.
@ 2019-05-21 7:37 sergiodj+buildbot
2019-05-21 7:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 7:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 999b073bdb188635feaf1f719237b4845b5b06f3 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 999b073bdb188635feaf1f719237b4845b5b06f3
Updated translations for various binutils subdirectories.
bfd * po/fr.po: Updated French translation.
binutils* po/ca.po: Updated Catalan translation.
gprof * po/de.po: Updated German translation.
opcodes * po/fr.po: Updated French translation.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix PR 24564 - link fails for some rcalls/rjmps with wraparound
@ 2019-05-21 9:03 sergiodj+buildbot
2019-05-21 9:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 9:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 338ba75534fbfeb64d7009f29a89f25826a1f4d2 ***
Author: Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
Branch: master
Commit: 338ba75534fbfeb64d7009f29a89f25826a1f4d2
Fix PR 24564 - link fails for some rcalls/rjmps with wraparound
The current code to compute relative distance in the wrap around case does not
handle the edge case of the target (after adjusting for implicit PC increment)
being exactly half of the wrap around distance. This patch fixes that and adds a
testcase.
The range for a forward relative jump call is 4096 bytes ((2 * 2047) + (2 bytes
for the implicit PC increment)). If the target of the jump is at a distance of
4098 bytes, it is out of range for a forward jump - however, a backward jump can
still reach that address if pmem-wrap-around is 8192.
Assume address 0 has rjmp to address 4098. With a wrap around of 8192 and
*without* adjusting for the implicit PC increment of 2 bytes, rjmp .-4096 will
jump to address 4096 (wrap around at 8192 and decreasing addresses from then
on). Adjusting 2 bytes for the implicit PC increment, the actual target is 4098.
avr_relative_distance_considering_wrap_around though, does the wrap around only
if the passed in distance is less than half of the wrap around distance. In this
case, it is exactly equal to half (original distance 4098, adjusted distance of
4096 and wraparound of 8192), and the bypassed wrap around causes the reloc
overflow error.
Fix by wrapping around even if adjusted distance is equal to half of wrap around
distance.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary
@ 2019-05-21 10:14 sergiodj+buildbot
2019-05-21 10:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 10:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7622049e0bef81fab900860400838bc977449892 ***
Author: Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
Branch: master
Commit: 7622049e0bef81fab900860400838bc977449892
Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary
The range check done to transform an absolute call/jump to a pc-relative one is
off-by-one, and that causes this shortening optimization to be missed if the
branch target is right at the range boundary.
In the non-shrinkable case, the range is what is mentioned in the ISA - -4094
bytes in the backward direction, and 4096 bytes in the positive direction.
In the shrinkable case, the forward jump range increases by two bytes (deleted
because of the shortening from call/jmp to rcall/rjmp), and therefore, the
range is -4094 in the reverse, and 4098 in the positive direction.
Fix the ranges for !shrinkable and shrinkable cases, and add a test caes to
ensure jumps to max forward and backward ranges get relaxed to rjmp.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373)
@ 2019-05-21 14:27 sergiodj+buildbot
2019-05-21 14:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 14:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 739b5c9c778dee9e2f54d864f83a81ecb0639535 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 739b5c9c778dee9e2f54d864f83a81ecb0639535
AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373)
The Cortex-A53 erratum currently has two ways it can resolve the erratum when
using the flag --fix-cortex-a53-843419:
1) If the address is within the range of an ADR instruction it rewrites the ADRP
into an ADR, and those doesn't need the use of a veneer.
2) If the address is not within range, it adds a branch to a veneer which will
execute the final bit of the erratum workaround and branch back to the call
site.
When we do this we always generate the veneers and we always align the size of
the text section to 4KB. This is because we only know which workaround we can
use after all linking has finished and all addresses are known. This means even
though the veneers are not used, we still generate the section and we still
change the size of the input section.
This is problematic for small memory devices as this would require the user to
take about a ~4KB hit in memory even though it's not even used.
Since there's no real way to restart the linking process from the final write
phase this patch solves the issue by allowing the user more control over which
erratum workaround gets used.
Concretely this changes the option --fix-cortex-a53-843419 to take optional
arguments --fix-cortex-a53-843419[=full|adr|adrp]
- full (default): Use both ADRP and ADR workaround. This is equivalent to not
specifying any options and is the default behavior before this
patch.
- adr: Only use the ADR workaround, this will not cause any increase in binary
size but linking will fail if the referenced address is out of range of
an ADR instruction.
- adrp: Use only the ADRP workaround, this will never rewrite your ADRP.
In the cases where the user knows how big their binaries are the `adr` option
would prevent the unneeded overhead.
bfd/ChangeLog:
PR ld/24373
* bfd-in.h (enum erratum_84319_opts): New
(bfd_elf64_aarch64_set_options, bfd_elf32_aarch64_set_options): Change
int to enum erratum_84319_opts.
* bfd-in2.h: Regenerate.
* elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Change
fix_erratum_843419 to use new enum, remove fix_erratum_843419_adr.
(_bfd_aarch64_add_stub_entry_after): Conditionally create erratum stub.
(aarch64_size_one_stub): Conditionally size erratum 843419 stubs.
(_bfd_aarch64_resize_stubs): Amend comment.
(elfNN_aarch64_size_stubs): Don't generate stubs when no workaround
requested.
(bfd_elfNN_aarch64_set_options): Use new fix_erratum_843419 enum.
(_bfd_aarch64_erratum_843419_branch_to_stub): Implement selection of
erratum workaround.
(clear_erratum_843419_entry): Update erratum conditional.
ld/ChangeLog:
PR ld/24373
* emultempl/aarch64elf.em (PARSE_AND_LIST_LONGOPTS): Add optional args
to flags.
* NEWS: Add changes to flag.
(PARSE_AND_LIST_OPTIONS): Update help descriptions.
(PARSE_AND_LIST_ARGS_CASES): Add new options to parser.
* testsuite/ld-aarch64/aarch64-elf.exp: Add new run_dump_tests.
* testsuite/ld-aarch64/erratum843419-adr.d: New test.
* testsuite/ld-aarch64/erratum843419-adrp.d: New test.
* testsuite/ld-aarch64/erratum843419-far-adr.d: New test.
* testsuite/ld-aarch64/erratum843419-far-full.d: New test.
* testsuite/ld-aarch64/erratum843419-far.s: New test.
* testsuite/ld-aarch64/erratum843419-full.d: New test.
* testsuite/ld-aarch64/erratum843419-near.s: New test.
* testsuite/ld-aarch64/erratum843419-no-args.d: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils][Arm] Fix Branch Future relocation handling and testisms
@ 2019-05-21 15:16 sergiodj+buildbot
2019-05-21 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 15:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e6f65e7573a317ac4efff26fe0e49fe1b9e7a596 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: e6f65e7573a317ac4efff26fe0e49fe1b9e7a596
[binutils][Arm] Fix Branch Future relocation handling and testisms
bfd/ChangeLog:
2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
PR/target 24460
* elf32-arm.c (get_value_helper): Remove.
(elf32_arm_final_link_relocate): Fix branch future relocations.
gas/ChangeLog:
2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
* testsuite/gas/arm/armv8_1-m-bf.d: Allow different branch target naming
conventions.
* testsuite/gas/arm/armv8_1-m-bfl.d: Likewise.
* testsuite/gas/arm/armv8_1-m-bfcsel.d: Likewise.
* testsuite/gas/arm/armv8_1-m-loloop.d: Likewise.
* testsuite/gas/arm/armv8_1-m-bf-rel.d: Skip for vxworks.
* testsuite/gas/arm/armv8_1-m-bf-rela.d: New test.
* testsuite/gas/arm/armv8_1-m-bfl-rel.d: Skip for vxworks.
* testsuite/gas/arm/armv8_1-m-bfl-rela.d: New test.
ld/ChangeLog:
2019-05-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
* testsuite/ld-arm/arm-elf.exp: Add tests
* testsuite/ld-arm/bfs-0.s: New test.
* testsuite/ld-arm/bfs-1.s: New test.
* testsuite/ld-arm/branch-futures.d: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 where necessary
@ 2019-05-21 16:56 sergiodj+buildbot
2019-05-21 17:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 16:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 669d0468399d8375f4d25289938a0c06d12e7f2e ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 669d0468399d8375f4d25289938a0c06d12e7f2e
[gdb/testsuite] Require c++11 where necessary
When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into failures due test-cases requiring at least c++1.
Fix this by adding -std=c++11 to those test-cases.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-21 Tom de Vries <tdevries@suse.de>
* gdb.arch/amd64-eval.exp: Require c++11.
* gdb.base/max-depth.exp: Same.
* gdb.compile/compile-cplus-array-decay.exp: Same.
* gdb.cp/meth-typedefs.exp: Same.
* gdb.cp/subtypes.exp: Same.
* gdb.cp/temargs.exp: Same.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/cli] Fix use of uninitialized variable in complete_command
@ 2019-05-21 17:09 sergiodj+buildbot
2019-05-21 17:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 17:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fb7806c7a49d6eb75cdbff183d10d00f75968c0f ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: fb7806c7a49d6eb75cdbff183d10d00f75968c0f
[gdb/cli] Fix use of uninitialized variable in complete_command
When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into:
...
FAIL: gdb.linespec/explicit.exp: complete after -line: \
cmd complete "b -line argument " (timeout)
...
The failure is reproducible outside the testsuite like this:
...
$ gdb -q build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit \
-ex "complete b -line argument"
Reading symbols from \
build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit...
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create
Aborted (core dumped)
...
The problem is here in complete_command:
...
completion_result result = complete (arg, &word, "e_char);
std::string arg_prefix (arg, word - arg);
if (result.number_matches != 0)
...
The problem is that the word variable is not initialized when
result.number_matches == 0, but the variable is still used in the arg_prefix
initialization.
Fix this by guarding the arg_prefix initialization with the
'result.number_matches != 0' test.
Build and tested on x86_64-linux.
gdb/ChangeLog:
2019-05-21 Tom de Vries <tdevries@suse.de>
PR cli/24587
* cli/cli-cmds.c (complete_command): Fix use of unitialized variable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, Arm] Add support for shift instructions in MVE
@ 2019-05-21 18:53 sergiodj+buildbot
2019-05-21 19:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 18:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 23d00a419fe67801afc02a87f7ab9c5374b0238e ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 23d00a419fe67801afc02a87f7ab9c5374b0238e
[binutils, Arm] Add support for shift instructions in MVE
This patch adds the following instructions which are part of
Armv8.1-M MVE:
ASRL (imm)
ASRL (reg)
LSLL (imm)
LSLL (reg)
LSRL
SQRSHRL
SRQSHR
SQSHLL
SQSHL
SRSHRL
SRSHR
UQRSHLL
UQRSHL
UQSHLL
UQSHL
URSHLL
URSHL
*** gas/ChangeLog ***
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (operand_parse_code): New entries for
OP_RRnpcsp_I32 (register or integer operands).
(do_mve_scalar_shift): New.
(insns): New instructions for asrl, lsll, lsrl, sqrshrl, sqrshr, sqshl
sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll, uqshl, urshrl and urshr.
* testsuite/gas/arm/mve-shift.d: New.
* testsuite/gas/arm/mve-shift.s: New.
* testsuite/gas/arm/mve-shift-bad.d: New.
* testsuite/gas/arm/mve-shift-bad.s: New.
* testsuite/gas/arm/mve-shift-bad.l: New.
*** opcodes/ChangeLog ***
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (emun mve_instructions): Updated for new instructions.
(mve_opcodes): New instructions for asrl, lsll, lsrl, sqrshrl,
sqrshr, sqshl, sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll,
uqshl, urshrl and urshr.
(is_mve_okay_in_it): Add new instructions to TRUE list.
(is_mve_unpredictable): Add cases for UNPRED_R13 and UNPRED_R15.
(print_insn_mve): Updated to accept new %j,
%<bitfield>m and %<bitfield>n patterns.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline
@ 2019-05-21 19:25 sergiodj+buildbot
2019-05-21 19:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 19:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e39c1607a2df3a97bf7b70bef6de5b7a2db55eea ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: e39c1607a2df3a97bf7b70bef6de5b7a2db55eea
[binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline
This patch adds the following instructions which are part of the
Armv8.1-M Mainline:
CINC
CINV
CNEG
CSINC
CSINV
CSNEG
CSET
CSETM
CSEL
gas/ChangeLog:
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (TOGGLE_BIT): New.
(T16_32_TAB): New entries for cinc, cinv, cneg, csinc,
csinv, csneg, cset, csetm and csel.
(operand_parse_code): New OP_RR_ZR.
(parse_operand): Handle case for OP_RR_ZR.
(do_t_cond): New.
(insns): New instructions for cinc, cinv, cneg, csinc,
csinv, csneg, cset, csetm, csel.
* testsuite/gas/arm/armv8_1-m-cond-bad.d: New test.
* testsuite/gas/arm/armv8_1-m-cond-bad.l: New test.
* testsuite/gas/arm/armv8_1-m-cond-bad.s: New test.
* testsuite/gas/arm/armv8_1-m-cond.d: New test.
* testsuite/gas/arm/armv8_1-m-cond.s: New test.
opcodes/ChangeLog:
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (enum mve_instructions): New enum
for csinc, csinv, csneg, csel, cset, csetm, cinv, cinv
and cneg.
(mve_opcodes): New instructions as above.
(is_mve_encoding_conflict): Add cases for csinc, csinv,
csneg and csel.
(print_insn_mve): Accept new %<bitfield>c and %<bitfield>C.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [binutils, ARM] <spec_reg> changes for VMRS and VMSR instructions
@ 2019-05-21 19:31 sergiodj+buildbot
2019-05-21 19:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 19:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ba6cd17f0a28e54d9b4ef46397d448f1d208d9a0 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: ba6cd17f0a28e54d9b4ef46397d448f1d208d9a0
[binutils, ARM] <spec_reg> changes for VMRS and VMSR instructions
This patch makes changes to the <spec_reg> operand for VMRS and VMSR
instructions as per the Armv8.1-M Mainline.
New <spec_reg> options to support are:
0b0010: FPSCR_nzcvqc, access to FPSCR condition and saturation flags.
0b1100: VPR, privileged only access to the VPR register.
0b1101: P0, access to VPR.P0 predicate fields
0b1110: FPCXT_NS, enables saving and restoring of Non-secure floating
point context.
0b1111: FPCXT_S, enables saving and restoring of Secure floating point
context
*** gas/ChangeLog ***
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (parse_operands): Update case OP_RVC to
parse p0 and P0.
(do_vmrs): Add checks for valid operands with respect to
cpu and fpu options.
(do_vmsr): Likewise.
(reg_names): New reg_names for FPSCR_nzcvqc, VPR, FPCXT_NS
and FPCXT_S.
* testsuite/gas/arm/armv8_1-m-spec-reg.d: New.
* testsuite/gas/arm/armv8_1-m-spec-reg.s: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad1.d: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad2.d: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad3.d: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad1.l: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad2.l: New.
* testsuite/gas/arm/armv8_1-m-spec-reg-bad3.l: New.
* testsuite/gas/arm/vfp1xD.d: Updated to allow new valid values.
* testsuite/gas/arm/vfp1xD_t2.d: Likewise.
*** opcodes/ChangeLog ***
2019-05-21 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (coprocessor_opcodes): New instructions for VMRS
and VMSR with the new operands.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] MIPS/LD: Fix memory fault linking non-PIC object in to shared library
@ 2019-05-21 20:39 sergiodj+buildbot
2019-05-21 21:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 20:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 304f09d0d4b519f143144d213e1280a0691de8ba ***
Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 304f09d0d4b519f143144d213e1280a0691de8ba
MIPS/LD: Fix memory fault linking non-PIC object in to shared library
bfd/
* elfxx-mips.c (_bfd_mips_elf_check_relocs): Add NULL pointer
checks. Search the RELA table for n64 relocations.
ld/
* testsuite/ld-mips-elf/pic-reloc-5.d: New test.
* testsuite/ld-mips-elf/pic-reloc-6.d: New test.
* testsuite/ld-mips-elf/pic-reloc-7.d: New test.
* testsuite/ld-mips-elf/pic-reloc-5.s: New test source.
* testsuite/ld-mips-elf/pic-reloc-6.s: New test source.
* testsuite/ld-mips-elf/pic-reloc-7.s: New test source.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library
@ 2019-05-21 21:26 sergiodj+buildbot
2019-05-21 21:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 21:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b474a2022dc14fea0dd8ea4cc66b813486132075 ***
Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: b474a2022dc14fea0dd8ea4cc66b813486132075
MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library
bfd/
* elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error
for TLS_TPREL_HI16(/LO16) relocations in shared library.
ld/
* testsuite/ld-mips-elf/pic-reloc-5.s: Add tests for
%tprel_hi and %tprel_lo relocations.
* testsuite/ld-mips-elf/pic-reloc-6.s: Likewise.
* testsuite/ld-mips-elf/pic-reloc-5.d: Update accordingly.
* testsuite/ld-mips-elf/pic-reloc-6.d: Likewise.
* testsuite/ld-mips-elf/pic-reloc-tls.ld: New test linker
script file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr
@ 2019-05-22 0:49 sergiodj+buildbot
2019-05-22 0:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 0:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dc42e902cc54af2b7e7b54a1171d562f867342d5 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: dc42e902cc54af2b7e7b54a1171d562f867342d5
gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr
In this commit:
commit 34d11c682fd96c7dbe3ebd6cd9033e65d51ec7a3
Date: Fri May 3 15:23:55 2019 +0100
gdb/fortran: Use floatformats_ia64_quad for fortran 16-byte floats
GDB was changed such that the Fortran's 16-byte float format was
obtained by calling gdbarch_floatformat_for_type instead of just using
gdbarch_long_double_format as it was before.
The problem with this default_floatformat_for_type can return NULL in
some cases, and the code introduced in 34d11c682f didn't consider
this.
This commit introduces several alternative strategies for finding a
suitable 16-byte floating point type. First GDB calls
gdbarch_floatformat_for_type (this was what 34d11c682f added), if this
returns null GDB will use gdbarch_long_double_format if it is the
correct size (this was the format used before 34d11c682f). Finally,
if neither of the above provides a suitable type then GDB will create
a new dummy type.
This final dummy type is unlikely to provide an correct debug
experience as far as examining the 16-byte floats, but it should
prevent GDB crashing.
gdb/ChangeLog:
PR gdb/18644:
* f-lang.c (build_fortran_types): Handle the case where
gdbarch_floatformat_for_type returns a nullptr.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] ARM STM32L4XX erratum test failure with MALLOC_PERTURB_
@ 2019-05-22 11:18 sergiodj+buildbot
2019-05-22 11:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 11:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b0f4fbf81a1cf67d49558b2e8890e5c8628f8403 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: b0f4fbf81a1cf67d49558b2e8890e5c8628f8403
ARM STM32L4XX erratum test failure with MALLOC_PERTURB_
* elf32-arm.c (arm_allocate_glue_section_space): Clear section
contents.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Document gdb.in/gdb.cmd files and debugredirect cli command
@ 2019-05-22 14:47 sergiodj+buildbot
2019-05-22 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 14:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b706061469811a16ff2fb8d42f6e98a22e454212 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: b706061469811a16ff2fb8d42f6e98a22e454212
Document gdb.in/gdb.cmd files and debugredirect cli command
Add missing documentation for the debugredirect setting.
Add description and uses of gdb.in/gdb.cmd to the testsuite README.
Mention this in the NEWS file.
gdb/ChangeLog:
* NEWS: Add debugredirect and testsuite sections.
gdb/doc/ChangeLog:
* gdb.texinfo (Shell Commands): Add debugredirect.
gdb/testsuite/ChangeLog:
* README (Re-running Tests Outside The Testsuite): New section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] AArch64: Treat pauth ops as nops on non-pauth systems
@ 2019-05-22 16:32 sergiodj+buildbot
2019-05-22 16:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 16:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8fca4da0759df376bcb646bc4b79a92ba27e2362 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 8fca4da0759df376bcb646bc4b79a92ba27e2362
AArch64: Treat pauth ops as nops on non-pauth systems
Running an address signed binary through GDB on a non pauth system
gives the following error:
Call Frame Instruction op 45 in vendor extension space is not handled on this architecture.
Instead GDB should ignore the op, treating it as a nop.
Add test case for pauth binaries, regardless of whether the target
supports it.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_execute_dwarf_cfa_vendor_op): Treat
DW_CFA_AARCH64_negate_ra_state as nop on non pauth targets.
gdb/testsuite/ChangeLog:
* gdb.arch/aarch64-pauth.c: New test.
* gdb.arch/aarch64-pauth.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 for gdb.base/align.exp
@ 2019-05-22 18:33 sergiodj+buildbot
2019-05-22 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 18:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af1a8d038798bef11471e28d999ad1687312a6a7 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: af1a8d038798bef11471e28d999ad1687312a6a7
[gdb/testsuite] Require c++11 for gdb.base/align.exp
When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb
testsuite we run into a failure due align.exp requiring at least c++11.
Fix this by adding -std=c++11.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-05-22 Tom de Vries <tdevries@suse.de>
* gdb.base/align.exp: Require c++11.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add "style" proc to the test suite
@ 2019-05-22 20:42 sergiodj+buildbot
2019-05-22 20:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 20:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 18125b163947bfd0c358d4a5acf4e0e3b43b64cf ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 18125b163947bfd0c358d4a5acf4e0e3b43b64cf
Add "style" proc to the test suite
This adds a "style" helper proc to the test suite, and updates
existing style tests to use it. Thanks to Sergio for the idea.
Tested on x86-64 Fedora 29.
gdb/testsuite/ChangeLog
2019-05-22 Tom Tromey <tromey@adacore.com>
* gdb.base/info-shared.exp (check_info_shared): Use "style".
* gdb.base/style.exp: Use "style".
* lib/gdb-utils.exp (style): New proc.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify target_ops::follow_exec
@ 2019-05-23 1:16 sergiodj+buildbot
2019-05-23 1:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 1:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ca51187d21562b6626eea2bd0e45f6b64719dfd ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4ca51187d21562b6626eea2bd0e45f6b64719dfd
Constify target_ops::follow_exec
I noticed that target_ops::follow_exec took a "char *" parameter,
where "const char *" would be more correct. This patch changes this
(and related functions) to be constified.
Tested by rebuilding.
gdb/ChangeLog
2019-05-22 Tom Tromey <tromey@adacore.com>
* target.c (target_follow_exec): Constify parameter.
* target-delegates.c: Rebuild.
* remote.c (remote_target::follow_exec): Constify parameter.
* infrun.c (follow_exec): Constify parameter.
* target.h (struct target_ops) <follow_exec>: Constify parameter.
(target_follow_exec): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] config.guess, config.sub: synchronize with config project master sources
@ 2019-05-23 18:17 sergiodj+buildbot
2019-05-23 18:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 18:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2376c3702e43ad8a717d80888b34e1e7eaeacaa8 ***
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: 2376c3702e43ad8a717d80888b34e1e7eaeacaa8
config.guess,config.sub: synchronize with config project master sources
This is to bring in the newly introduced support for bpf-*-* targets.
ChangeLog:
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* config.guess: Synchronize with config project master sources.
* config.sub: Likewise.
* readline/support/config.guess: Likewise.
* readline/support/config.sub: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] include: add elf/bpf.h
@ 2019-05-23 19:17 sergiodj+buildbot
2019-05-23 19:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 19:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8ebe62124023224eafd1b82c8bc2325962711ef8 ***
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: 8ebe62124023224eafd1b82c8bc2325962711ef8
include: add elf/bpf.h
This patch adds a header file with BPF-specific ELF definitions. In
particular, the architecture relocations.
include/ChangeLog:
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* elf/bpf.h: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] opcodes: add support for eBPF
@ 2019-05-23 20:19 sergiodj+buildbot
2019-05-23 20:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 20:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79472b45328232b083e897a511d4160a6dde0463 ***
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: 79472b45328232b083e897a511d4160a6dde0463
opcodes: add support for eBPF
This patch adds support for the Linux kernel eBPF architecture to the
opcodes. The port is based on CGEN.
opcodes/ChangeLog:
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* configure.ac (SHARED_DEPENDENCIES): Add case for bfd_bpf_arch.
* configure: Regenerated.
* Makefile.am: Add rules for the files generated from cpu/bpf.cpu
and cpu/bpf.opc.
(HFILES): Add bpf-desc.h and bpf-opc.h.
(TARGET_LIBOPCODES_CFILES): Add bpf-asm.c, bpf-desc.c, bpf-dis.c,
bpf-ibld.c and bpf-opc.c.
(BPF_DEPS): Define.
* Makefile.in: Regenerated.
* disassemble.c (ARCH_bpf): Define.
(disassembler): Add case for bfd_arch_bpf.
(disassemble_init_for_target): Likewise.
(enum epbf_isa_attr): Define.
* disassemble.h: extern print_insn_bpf.
* bpf-asm.c: Generated.
* bpf-opc.h: Likewise.
* bpf-opc.c: Likewise.
* bpf-ibld.c: Likewise.
* bpf-dis.c: Likewise.
* bpf-desc.h: Likewise.
* bpf-desc.c: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC add initial -mfuture instruction support
@ 2019-05-24 2:50 sergiodj+buildbot
2019-05-24 3:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-24 2:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dd7efa79151ed5a56caccfac870865764d922a2f ***
Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: dd7efa79151ed5a56caccfac870865764d922a2f
PowerPC add initial -mfuture instruction support
This patch adds initial 64-bit insn assembler/disassembler support.
The only instruction added is "pnop" along with the automatic aligning
of prefix instruction so they do not cross 64-byte boundaries.
include/
* dis-asm.h (WIDE_OUTPUT): Define.
* opcode/ppc.h (prefix_opcodes, prefix_num_opcodes): Declare.
(PPC_OPCODE_POWERXX, PPC_GET_PREFIX, PPC_GET_SUFFIX),
(PPC_PREFIX_P, PPC_PREFIX_SEG): Define.
opcodes/
* ppc-dis.c (ppc_opts): Add "future" entry.
(PREFIX_OPCD_SEGS): Define.
(prefix_opcd_indices): New array.
(disassemble_init_powerpc): Initialize prefix_opcd_indices.
(lookup_prefix): New function.
(print_insn_powerpc): Handle 64-bit prefix instructions.
* ppc-opc.c (PREFIX_OP, PREFIX_FORM, SUFFIX_MASK, PREFIX_MASK),
(PMRR, POWERXX): Define.
(prefix_opcodes): New instruction table.
(prefix_num_opcodes): New constant.
binutils/
* objdump.c (disassemble_bytes): Set WIDE_OUTPUT in flags.
gas/
* config/tc-ppc.c (ppc_setup_opcodes): Handle prefix_opcodes.
(struct insn_label_list): New.
(insn_labels, free_insn_labels): New variables.
(ppc_record_label, ppc_clear_labels, ppc_start_line_hook): New funcs.
(ppc_frob_label, ppc_new_dot_label): Move functions earlier in file
and call ppc_record_label.
(md_assemble): Handle 64-bit prefix instructions. Align labels
that are on the same line as a prefix instruction.
* config/tc-ppc.h (tc_frob_label, ppc_frob_label): Move to
later in the file.
(md_start_line_hook): Define.
(ppc_start_line_hook): Declare.
* testsuite/gas/ppc/prefix-align.d,
* testsuite/gas/ppc/prefix-align.s: New test.
* testsuite/gas/ppc/ppc.exp: Run new test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC D-form prefixed loads and stores
@ 2019-05-24 3:11 sergiodj+buildbot
2019-05-24 3:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-24 3:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8acf14351c818d956babe50e61711740f378c941 ***
Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: 8acf14351c818d956babe50e61711740f378c941
PowerPC D-form prefixed loads and stores
opcodes/
* ppc-opc.c (insert_d34, extract_d34, insert_nsi34, extract_nsi34),
(insert_pcrel, extract_pcrel, extract_pcrel0): New functions.
(extract_esync, extract_raq, extract_tbr, extract_sxl): Comment.
(powerpc_operands <D34, SI34, NSI34, PRA0, PRAQ, PCREL, PCREL0,
XTOP>): Define and add entries.
(P8LS, PMLS, P_D_MASK, P_DRAPCREL_MASK): Define.
(prefix_opcodes): Add pli, paddi, pla, psubi, plwz, plbz, pstw,
pstb, plhz, plha, psth, plfs, plfd, pstfs, pstfd, plq, plxsd,
plxssp, pld, plwa, pstxsd, pstxssp, pstxv, pstd, and pstq.
gas/
* config/tc-ppc.c (ppc_insert_operand): Only sign extend fields that
are 32-bits or smaller.
* messages.c (as_internal_value_out_of_range): Do not truncate
variables and use BFD_VMA_FMT to print them.
* testsuite/gas/ppc/prefix-pcrel.s,
* testsuite/gas/ppc/prefix-pcrel.d: New test.
* testsuite/gas/ppc/ppc.exp: Run it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC relocations for prefix insns
@ 2019-05-24 3:29 sergiodj+buildbot
2019-05-24 3:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-24 3:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5663e321848545857a690f30a780187e3366bd2d ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 5663e321848545857a690f30a780187e3366bd2d
PowerPC relocations for prefix insns
include/
* elf/ppc64.h (R_PPC64_PLTSEQ_NOTOC, R_PPC64_PLTCALL_NOTOC),
(R_PPC64_PCREL_OPT, R_PPC64_D34, R_PPC64_D34_LO, R_PPC64_D34_HI30),
(R_PPC64_D34_HA30, R_PPC64_PCREL34, R_PPC64_GOT_PCREL34),
(R_PPC64_PLT_PCREL34, R_PPC64_PLT_PCREL34_NOTOC),
(R_PPC64_ADDR16_HIGHER34, R_PPC64_ADDR16_HIGHERA34),
(R_PPC64_ADDR16_HIGHEST34, R_PPC64_ADDR16_HIGHESTA34),
(R_PPC64_REL16_HIGHER34, R_PPC64_REL16_HIGHERA34),
(R_PPC64_REL16_HIGHEST34, R_PPC64_REL16_HIGHESTA34),
(R_PPC64_D28, R_PPC64_PCREL28): Define.
bfd/
* reloc.c (BFD_RELOC_PPC64_D34, BFD_RELOC_PPC64_D34_LO),
(BFD_RELOC_PPC64_D34_HI30, BFD_RELOC_PPC64_D34_HA30),
(BFD_RELOC_PPC64_PCREL34, BFD_RELOC_PPC64_GOT_PCREL34),
(BFD_RELOC_PPC64_PLT_PCREL34),
(BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34),
(BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34),
(BFD_RELOC_PPC64_REL16_HIGHER34, BFD_RELOC_PPC64_REL16_HIGHERA34),
(BFD_RELOC_PPC64_REL16_HIGHEST34, BFD_RELOC_PPC64_REL16_HIGHESTA34),
(BFD_RELOC_PPC64_D28, BFD_RELOC_PPC64_PCREL28): New reloc enums.
* elf64-ppc.c (PNOP): Define.
(ppc64_elf_howto_raw): Add reloc howtos for new relocations.
(ppc64_elf_reloc_type_lookup): Translate new bfd reloc numbers.
(ppc64_elf_ha_reloc): Adjust addend for highera34 and highesta34
relocs.
(ppc64_elf_prefix_reloc): New function.
(struct ppc_link_hash_table): Add notoc_plt.
(is_branch_reloc): Add R_PPC64_PLTCALL_NOTOC.
(is_plt_seq_reloc): Add R_PPC64_PLT_PCREL34,
R_PPC64_PLT_PCREL34_NOTOC, and R_PPC64_PLTSEQ_NOTOC.
(ppc64_elf_check_relocs): Handle pcrel got and plt relocs. Set
has_pltcall for section on seeing R_PPC64_PLTCALL_NOTOC. Handle
possible need for dynamic relocs on non-pcrel powerxx relocs.
(dec_dynrel_count): Handle non-pcrel powerxx relocs.
(ppc64_elf_inline_plt): Handle R_PPC64_PLTCALL_NOTOC.
(toc_adjusting_stub_needed): Likewise.
(ppc64_elf_tls_optimize): Handle R_PPC64_PLTSEQ_NOTOC.
(ppc64_elf_relocate_section): Handle new powerxx relocs.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
gas/
* config/tc-ppc.c (ppc_elf_suffix): Support @pcrel, @got@pcrel,
@plt@pcrel, @higher34, @highera34, @highest34, and @highesta34.
(fixup_size): Handle new powerxx relocs.
(md_assemble): Warn for @pcrel on non-prefix insns.
Accept @l, @h and @ha on prefix insns, and infer reloc without
any @ suffix. Translate powerxx relocs to suit DQ and DS field
instructions. Include operand tests as well as opcode test to
translate BFD_RELOC_HI16_S to BFD_RELOC_PPC_16DX_HA.
(ppc_fix_adjustable): Return false for pcrel GOT and PLT relocs.
(md_apply_fix): Handle new powerxx relocs.
* config/tc-ppc.h (TC_FORCE_RELOCATION_SUB_LOCAL): Accept
BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34,
BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34,
BFD_RELOC_PPC64_D34, and BFD_RELOC_PPC64_D28.
* testsuite/gas/ppc/prefix-reloc.d,
* testsuite/gas/ppc/prefix-reloc.s: New test.
* testsuite/gas/ppc/ppc.exp: Run it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC GOT_PCREL34 optimisation
@ 2019-05-24 3:52 sergiodj+buildbot
2019-05-24 3:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-24 3:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a421c53cf609d68fe956c2e7270d34c0ab8500f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4a421c53cf609d68fe956c2e7270d34c0ab8500f
PowerPC GOT_PCREL34 optimisation
bfd/
* elf64-ppc.c (ppc64_elf_check_relocs): Set has_gotrel for
R_PPC64_GOT_PCREL34.
(xlate_pcrel_opt): New function.
(ppc64_elf_edit_toc): Handle R_PPC64_GOT_PCREL34.
(ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
for R_PPC64_GOT_PCREL34. Implement R_PPC64_PCREL_OPT optimisation.
ld/
* testsuite/ld-powerpc/pcrelopt.s,
* testsuite/ld-powerpc/pcrelopt.d,
* testsuite/ld-powerpc/pcrelopt.sec: New test.
* testsuite/ld-powerpc/powerpc.exp: Run it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC notoc linkage stubs
@ 2019-05-24 4:14 sergiodj+buildbot
2019-05-24 4:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-24 4:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 04bdff6a76b863e61ee46375dd7cdc9adfb75540 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 04bdff6a76b863e61ee46375dd7cdc9adfb75540
PowerPC notoc linkage stubs
Use pcrel addressing instructions in linkage stubs.
bfd/
* elf64-ppc.c: Comment on powerxx _notoc stub variants.
(LI_R11_0, LIS_R11, ORI_R11_R11_0, SLDI_R11_R11_34): Define.
(PADDI_R12_PC, PLD_R12_PC, D34, HA34): Define.
(struct ppc_link_hash_table): Add powerxx_stubs.
(ppc64_elf_check_relocs): Set powerxx_stubs.
(build_powerxx_offset, size_powerxx_offset),
(num_relocs_for_powerxx_offset),
(emit_relocs_for_powerxx_offset): New functions.
(plt_stub_size): Size powerxx stubs.
(ppc_build_one_stub): Emit powerxx stubs.
(ppc_size_one_stub): Size powerxx stubs. Omit .eh_frame for
powerxx stubs.
ld/
* testsuite/ld-powerpc/notoc2.d,
* testsuite/ld-powerpc/notoc2.s: New test.
* testsuite/ld-powerpc/powerpc.exp: Run it.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
@ 2019-05-25 0:33 sergiodj+buildbot
2019-05-25 0:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-25 0:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2301ed1c9af1316b4bad3747d2b03f7d44940f87 ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 2301ed1c9af1316b4bad3747d2b03f7d44940f87
aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
The bottom 2 bits of st_other are used for visibility, the top 6 bits are
de facto reserved for processor specific use. This patch defines a
bits to mark function symbols that follow a variant procedure call standard
with different register usage convention.
A dynamic tag is also defined that marks modules with R_<CLS>_JUMP_SLOT
relocations referencing symbols marked with STO_AARCH64_VARIANT_PCS.
This can be used by dynamic linkers that support lazy binding to decide
what registers need to be preserved during symbol resolution.
binutils/ChangeLog:
* readelf.c (get_aarch64_dynamic_type): Handle DT_AARCH64_VARIANT_PCS.
(get_aarch64_symbol_other): New, handles STO_AARCH64_VARIANT_PCS.
(get_symbol_other): Call get_aarch64_symbol_other.
include/ChangeLog:
* elf/aarch64.h (DT_AARCH64_VARIANT_PCS): Define.
(STO_AARCH64_VARIANT_PCS): Define.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd
@ 2019-05-25 0:56 sergiodj+buildbot
2019-05-25 1:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-25 0:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 823710d5856996d1f54f04ecb2f7647aeae99b5b ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 823710d5856996d1f54f04ecb2f7647aeae99b5b
aarch64: handle STO_AARCH64_VARIANT_PCS in bfd
Propagate STO_AARCH64_VARIANT_PCS st_other attribute to the output and
add DT_AARCH64_VARIANT_PCS dynamic tag if necessary.
Mismatching attributes are not diagnosed.
bfd/ChangeLog:
* elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): New function.
(struct elf_aarch64_link_hash_table): Add variant_pcs member.
(elfNN_aarch64_allocate_dynrelocs): Update variant_pcs.
(elfNN_aarch64_size_dynamic_sections): Add DT_AARCH64_VARIANT_PCS.
(elf_backend_merge_symbol_attribute): Define.
ld/ChangeLog:
* testsuite/ld-aarch64/aarch64-elf.exp: Add new tests.
* testsuite/ld-aarch64/variant_pcs-1.s: New asm for tests.
* testsuite/ld-aarch64/variant_pcs-2.s: New asm for tests.
* testsuite/ld-aarch64/variant_pcs-now.d: New test.
* testsuite/ld-aarch64/variant_pcs-r.d: New test.
* testsuite/ld-aarch64/variant_pcs-shared.d: New test.
* testsuite/ld-aarch64/variant_pcs.ld: New linker script for tests.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Generic ELF target group signature symbol
@ 2019-05-27 8:33 sergiodj+buildbot
2019-05-27 8:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-27 8:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3d7d6a6ff4678685f86976f08ab4c9c639e262e1 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3d7d6a6ff4678685f86976f08ab4c9c639e262e1
Generic ELF target group signature symbol
Even though the generic ELF target doesn't handle groups correctly,
this helps avoid a segfault in bfd_elf_set_group_contents seen on
d30v-elf, dlx-elf, pj-elf, and xgate-elf when linking the pr22836
testcase.
PR 24596
bfd/
* linker.c (_bfd_generic_link_output_symbols): Heed BSF_KEEP.
ld/
* emultempl/genelf.em (gld${EMULATION_NAME}_after_open): Set
BFS_KEEP on group signature symbol.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Another generic ELF target assertion failure
@ 2019-05-27 9:04 sergiodj+buildbot
2019-05-27 9:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-27 9:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ce5aecf87372749a5ec511f218956756aa185d0f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: ce5aecf87372749a5ec511f218956756aa185d0f
Another generic ELF target assertion failure
After fixing the ld-elf/pr22836-1a segmentation fault we run into an
assertion failure due to the generic ELF target not removing empty
SHT_GROUP sections. Avoid that.
* elf.c (bfd_elf_set_group_contents): Exit on zero size section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix typo in gdb/NEWS
@ 2019-05-28 3:44 sergiodj+buildbot
2019-05-28 3:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-28 3:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eb41253a15e2c976869ba1b1f0c3c0e60065fd4f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eb41253a15e2c976869ba1b1f0c3c0e60065fd4f
Fix typo in gdb/NEWS
I noticed a typo in gdb/NEWS. This fixes it.
gdb/ChangeLog
2019-05-27 Tom Tromey <tom@tromey.com>
* NEWS: Fix typo.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Obsolete tic30-aout, and linker segmentation faults
@ 2019-05-28 5:01 sergiodj+buildbot
2019-05-28 5:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-28 5:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7b34aba62ce347b4e64ca197a5c8b997e3b72df ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a7b34aba62ce347b4e64ca197a5c8b997e3b72df
Obsolete tic30-aout, and linker segmentation faults
See also the FIXME. tic30-aout linker support is so bad (and has been
that way since the initial tic30-aout commit) that I'm obsoleting the
target. This patch fixes numerous linker testsuite segmentation faults.
PR 24596
* aout-tic30.c (MY_bfd_final_link): Don't segfault on missing
create_object_symbols_section, obj_textsec, obj_datasec or
obj_bsssec. Fix other errors in placement.
* config.bfd: Obsolete tic30-aout.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] HPPA64 linker segmentation faults
@ 2019-05-28 5:51 sergiodj+buildbot
2019-05-28 6:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-28 5:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 586338b839d3f65d22eb3baef41f7395974f1f11 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 586338b839d3f65d22eb3baef41f7395974f1f11
HPPA64 linker segmentation faults
One of the ld tests produces:
failed with: <Segmentation fault>, no expected output
FAIL: Discarded dynamic relocation section
This patch cures the segv. (The test still fails with ld producing
a really messed up output, DT_RELA at address 0!)
PR 24596
* elf64-hppa.c (elf64_hppa_finalize_dynreloc): Get the output bfd
from bfd_link_info, not an output section owner.
(elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd): Likewise.
(elf_hppa_final_link_relocate): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] LM32 linker segmentation faults
@ 2019-05-29 0:02 sergiodj+buildbot
2019-05-29 0:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a0f6fd217fa53ab80a335fb69f12f1f28ac3335a ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a0f6fd217fa53ab80a335fb69f12f1f28ac3335a
LM32 linker segmentation faults
PR 24596
* elf32-lm32.c (lm32_elf_finish_dynamic_sections): Don't segfault
on NULL output_section.
* elflink.c (elf_final_link_free): Don't free -1 symshndxbuf.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Alpha-linux linker segmentation fault
@ 2019-05-29 0:04 sergiodj+buildbot
2019-05-29 0:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 28fbeab8064f97ca5fe1a851fdc4146b7aed8863 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 28fbeab8064f97ca5fe1a851fdc4146b7aed8863
Alpha-linux linker segmentation fault
This patch cures a linker segfault, and "FAIL: Build pr22263-1".
PR 24596
* elf64-alpha.c (elf64_alpha_relocate_section): Don't attempt
to emit R_ALPHA_GOTTPREL in PIEs, for which no space is
allocated in alpha_dynamic_entries_for_reloc.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Microblaze linker segmentation fault
@ 2019-05-29 0:06 sergiodj+buildbot
2019-05-29 0:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 94667ab146a0c94f87f3d9aa7d1c819663b28338 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 94667ab146a0c94f87f3d9aa7d1c819663b28338
Microblaze linker segmentation fault
PR 24596
* elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't
attempt to set sh_entsize for excluded PLT section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Suppress SIGTTOU when handling errors
@ 2019-05-29 0:08 sergiodj+buildbot
2019-05-29 0:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 766f883622ef008230250aa5aecef9fb9b29f233 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 766f883622ef008230250aa5aecef9fb9b29f233
Suppress SIGTTOU when handling errors
Calls to error () can cause SIGTTOU to send gdb to the background.
For example, on an Arm build:
(gdb) b main
Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binutils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174.
(gdb) r
Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/watchpoint
[1]+ Stopped ../gdb ./outputs/gdb.base/watchpoint/watchpoint
localhost$ fg
../gdb ./outputs/gdb.base/watchpoint/watchpoint
Cannot parse expression `.L1199 4@r4'.
warning: Probes-based dynamic linker interface failed.
Reverting to original interface.
The SIGTTOU is raised whilst inside a syscall during the call to tcdrain.
Fix is to use scoped_ignore_sigttou to ensure SIGTTOU is blocked.
In addition fix include comments - job_control is not included via terminal.h
gdb/ChangeLog:
* event-top.c: Remove include comment.
* inflow.c (class scoped_ignore_sigttou): Move from here...
* inflow.h (class scoped_ignore_sigttou): ...to here.
* ser-unix.c (hardwire_drain_output): Block SIGTTOU during drain.
* top.c: Remove include comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] include: new header ctf-api.h
@ 2019-05-29 0:11 sergiodj+buildbot
2019-05-29 0:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2e94b05630514109994abb77ee2dae730f17c263 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 2e94b05630514109994abb77ee2dae730f17c263
include: new header ctf-api.h
This non-installed header is the means by which libctf consumers
communicate with libctf.
This header will be extended in subsequent commits.
include/
* ctf-api.h: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: low-level list manipulation and helper utilities
@ 2019-05-29 0:36 sergiodj+buildbot
2019-05-29 0:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 94585e7f93c9477bcf2835d8245e967053ce2b41 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 94585e7f93c9477bcf2835d8245e967053ce2b41
libctf: low-level list manipulation and helper utilities
These utilities are a bit of a ragbag of small things needed by more
than one TU: list manipulation, ELF32->64 translators, routines to look
up strings in string tables, dynamically-allocated string appenders, and
routines to set the specialized errno values previously committed in
<ctf-api.h>.
We do still need to dig around in raw ELF symbol tables in places,
because libctf allows the caller to pass in the contents of string and
symbol sections without telling it where they come from, so we cannot
use BFD to get the symbols (BFD reasonably demands the entire file). So
extract minimal ELF definitions from glibc into a private header named
libctf/elf.h: later, we use those to get symbols. (The start-of-
copyright range on elf.h reflects this glibc heritage.)
libctf/
* ctf-util.c: New file.
* elf.h: Likewise.
* ctf-impl.h: Include it, and add declarations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: build system
@ 2019-05-29 0:50 sergiodj+buildbot
2019-05-29 5:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0e65dfbaf3a0299e4837216a103c28625d4b4f1d ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 0e65dfbaf3a0299e4837216a103c28625d4b4f1d
libctf: build system
This ties libctf into the build system, and makes binutils depend on it
(used by the next commits).
* Makefile.def (host_modules): Add libctf.
* Makefile.def (dependencies): Likewise.
libctf depends on zlib, libiberty, and bfd.
* Makefile.in: Regenerated.
* configure.ac (host_libs): Add libctf.
* configure: Regenerated.
libctf/
* Makefile.am: New.
* Makefile.in: Regenerated.
* config.h.in: Likewise.
* aclocal.m4: Likewise.
* configure: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add libctf to top-level MAINTAINERS; add myself as CTF maintainer.
@ 2019-05-29 0:56 sergiodj+buildbot
2019-05-29 5:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 88981b157b08f2e9a404a2f86d4ee131f17ce3d4 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 88981b157b08f2e9a404a2f86d4ee131f17ce3d4
Add libctf to top-level MAINTAINERS; add myself as CTF maintainer.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove find_old_style_renaming_symbol
@ 2019-05-29 1:04 sergiodj+buildbot
2019-05-29 5:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 1:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c0e70c624fc7d89f5cf281350692de89a063786f ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: c0e70c624fc7d89f5cf281350692de89a063786f
Remove find_old_style_renaming_symbol
We found a case where a "bt" was very slow with Ada code. Profiling
with callgrind showed this to be primarily due to calls to
find_old_style_renaming_symbol. Because new-style renaming symbols
were implemented in 2007, it seems safe enough to remove this old
code.
A "-batch -ex bt" test on a large Ada program improves from:
13.23user 0.57system 0:13.82elapsed 99%CPU (0avgtext+0avgdata 571408maxresident)k
to
4.25user 0.48system 0:04.74elapsed 99%CPU (0avgtext+0avgdata 559844maxresident)k
with this patch.
Tested on x86-64 Fedora 29. Joel reviewed this internally; and as it
is Ada-specific, I am checking it in.
gdb/ChangeLog
2019-05-28 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_remove_Xbn_suffix)
(find_old_style_renaming_symbol)
(parse_old_style_renaming): Remove.
(ada_find_renaming_symbol): Don't call
find_old_style_renaming_symbol.
(ada_is_renaming_symbol): Rename from
ada_find_renaming_symbol. Remove "block" parameter. Return
bool. Now static.
(ada_read_var_value): Update and simplify.
* ada-exp.y (write_var_or_type): Remove old code.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations
@ 2019-05-29 1:13 sergiodj+buildbot
2019-05-29 6:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 1:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8 ***
Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8
MIPS/LD: Skip overflow check for %pcrel_hi relocations
Overflow checks were removed for all hi16 relocations except PC-relative
high relocations per PR ld/16720. Remove overflow checks from %pcrel_hi
relocations so that we can correctly handle negative offsets from PC.
bfd/
* elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_PCHI16>:
Remove overflow check.
ld/
* testsuite/ld-mips-elf/undefweak-overflow.s: Remove test case
for pcrel_hi/pcrel_lo.
* testsuite/ld-mips-elf/undefweak-overflow.d: Update to match.
* testsuite/ld-mips-elf/reloc-pcrel-r6.s: New test source.
* testsuite/ld-mips-elf/reloc-pcrel-r6.d: New test linker script.
* testsuite/ld-mips-elf/reloc-pcrel-r6.ld: New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: hashing
@ 2019-05-29 1:35 sergiodj+buildbot
2019-05-29 1:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 1:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c0754cdd9af6d8259eac5c9daad9f9b0611358dd ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: c0754cdd9af6d8259eac5c9daad9f9b0611358dd
libctf: hashing
libctf maintains two distinct hash ADTs, one (ctf_dynhash) for wrapping
dynamically-generated unknown-sized hashes during CTF file construction,
one (ctf_hash) for wrapping unchanging hashes whose size is known at
creation time for reading CTF files that were previously created.
In the binutils implementation, these are both fairly thin wrappers
around libiberty hashtab.
Unusually, this code is not kept synchronized with libdtrace-ctf,
due to its dependence on libiberty hashtab.
libctf/
* ctf-hash.c: New file.
* ctf-impl.h: New declarations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: creation functions
@ 2019-05-29 1:53 sergiodj+buildbot
2019-05-29 1:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 1:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47d546f427d0d3bf9f503b5b118ae05b49d73d28 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 47d546f427d0d3bf9f503b5b118ae05b49d73d28
libctf: creation functions
The CTF creation process looks roughly like (error handling elided):
int err;
ctf_file_t *foo = ctf_create (&err);
ctf_id_t type = ctf_add_THING (foo, ...);
ctf_update (foo);
ctf_*write (...);
Some ctf_add_THING functions accept other type IDs as arguments,
depending on the type: cv-quals, pointers, and structure and union
members all take other types as arguments. So do 'slices', which
let you take an existing integral type and recast it as a type
with a different bitness or offset within a byte, for bitfields.
One class of THING is not a type: "variables", which are mappings
of names (in the internal string table) to types. These are mostly
useful when encoding variables that do not appear in a symbol table
but which some external user has some other way to figure out the
address of at runtime (dynamic symbol lookup or querying a VM
interpreter or something).
You can snapshot the creation process at any point: rolling back to a
snapshot deletes all types and variables added since that point.
You can make arbitrary type queries on the CTF container during the
creation process, but you must call ctf_update() first, which
translates the growing dynamic container into a static one (this uses
the CTF opening machinery, added in a later commit), which is quite
expensive. This function must also be called after adding types
and before writing the container out.
Because addition of types involves looking up existing types, we add a
little of the type lookup machinery here, as well: only enough to
look up types in dynamic containers under construction.
libctf/
* ctf-create.c: New file.
* ctf-lookup.c: New file.
include/
* ctf-api.h (zlib.h): New include.
(ctf_sect_t): New.
(ctf_sect_names_t): Likewise.
(ctf_encoding_t): Likewise.
(ctf_membinfo_t): Likewise.
(ctf_arinfo_t): Likewise.
(ctf_funcinfo_t): Likewise.
(ctf_lblinfo_t): Likewise.
(ctf_snapshot_id_t): Likewise.
(CTF_FUNC_VARARG): Likewise.
(ctf_simple_open): Likewise.
(ctf_bufopen): Likewise.
(ctf_create): Likewise.
(ctf_add_array): Likewise.
(ctf_add_const): Likewise.
(ctf_add_enum_encoded): Likewise.
(ctf_add_enum): Likewise.
(ctf_add_float): Likewise.
(ctf_add_forward): Likewise.
(ctf_add_function): Likewise.
(ctf_add_integer): Likewise.
(ctf_add_slice): Likewise.
(ctf_add_pointer): Likewise.
(ctf_add_type): Likewise.
(ctf_add_typedef): Likewise.
(ctf_add_restrict): Likewise.
(ctf_add_struct): Likewise.
(ctf_add_union): Likewise.
(ctf_add_struct_sized): Likewise.
(ctf_add_union_sized): Likewise.
(ctf_add_volatile): Likewise.
(ctf_add_enumerator): Likewise.
(ctf_add_member): Likewise.
(ctf_add_member_offset): Likewise.
(ctf_add_member_encoded): Likewise.
(ctf_add_variable): Likewise.
(ctf_set_array): Likewise.
(ctf_update): Likewise.
(ctf_snapshot): Likewise.
(ctf_rollback): Likewise.
(ctf_discard): Likewise.
(ctf_write): Likewise.
(ctf_gzwrite): Likewise.
(ctf_compress_write): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: opening
@ 2019-05-29 2:19 sergiodj+buildbot
2019-05-29 2:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 2:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 72f3392127e1892cb203a98092b4ae32485365fe ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 72f3392127e1892cb203a98092b4ae32485365fe
libctf: opening
This fills in the other half of the opening/creation puzzle: opening of
already-existing CTF files. Such files are always read-only: if you
want to add to a CTF file opened with one of the opening functions in
this file, use ctf_add_type(), in a later commit, to copy appropriate
types into a newly ctf_create()d, writable container.
The lowest-level opening functions are in here: ctf_bufopen(), which
takes ctf_sect_t structures akin to ELF section headers, and
ctf_simple_open(), which can be used if you don't have an entire ELF
section header to work from. Both will malloc() new space for the
buffers only if necessary, will mmap() directly from the file if
requested, and will mprotect() it afterwards to prevent accidental
corruption of the types. These functions are also used by ctf_update()
when converting types in a writable container into read-only types that
can be looked up using the lookup functions (in later commits).
The files are always of the native endianness of the system that created
them: at read time, the endianness of the header magic number is used to
determine whether or not the file needs byte-swapping, and the entire
thing is aggressively byte-swapped.
The agggressive nature of this swapping avoids complicating the rest of
the code with endianness conversions, while the native endianness
introduces no byte-swapping overhead in the common case. (The
endianness-independence code is also much newer than everything else in
this file, and deserves closer scrutiny.)
The accessors at the top of the file are there to transparently support
older versions of the CTF file format, allowing translation from older
formats that have different sizes for the structures in ctf.h:
currently, these older formats are intermingled with the newer ones in
ctf.h: they will probably migrate to a compatibility header in time, to
ease readability. The ctf_set_base() function is split out for the same
reason: when conversion code to a newer format is written, it would need
to malloc() new storage for the entire ctf_file_t if a file format
change causes it to grow, and for that we need ctf_set_base() to be a
separate function.
One pair of linked data structures supported by this file has no
creation code in libctf yet: the data and function object sections read
by init_symtab(). These will probably arrive soon, when the linker comes
to need them. (init_symtab() has hardly been changed since 2009, but if
any code in libctf has rotted over time, this will.)
A few simple accessors are also present that can even be called on
read-only containers because they don't actually modify them, since the
relevant things are not stored in the container but merely change its
operation: ctf_setmodel(), which lets you specify whether a container is
LP64 or not (used to statically determine the sizes of a few types),
ctf_import(), which is the only way to associate a parent container with
a child container, and ctf_setspecific(), which lets the caller
associate an arbitrary pointer with the CTF container for any use. If
the user doesn't call these functions correctly, libctf will misbehave:
this is particularly important for ctf_import(), since a container built
against a given parent container will not be able to resolve types that
depend on types in the parent unless it is ctf_import()ed with a parent
container with the same set of types at the same IDs, or a superset.
Possible future extensions (also noted in the ctf-hash.c file) include
storing a count of things so that we don't need to do one pass over the
CTF file counting everything, and computing a perfect hash at CTF
creation time in some compact form, storing it in the CTF file, and
using it to hash things so we don't need to do a second pass over the
entire CTF file to set up the hashes used to go from names to type IDs.
(There are multiple such hashes, one for each C type namespace: types,
enums, structs, and unions.)
libctf/
* ctf-open.c: New file.
* swap.h: Likewise.
include/
* ctf-api.h (ctf_file_close): New declaration.
(ctf_getdatasect): Likewise.
(ctf_parent_file): Likewise.
(ctf_parent_name): Likewise.
(ctf_parent_name_set): Likewise.
(ctf_import): Likewise.
(ctf_setmodel): Likewise.
(ctf_getmodel): Likewise.
(ctf_setspecific): Likewise.
(ctf_getspecific): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: mmappable archives
@ 2019-05-29 3:14 sergiodj+buildbot
2019-05-29 3:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 3:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9402cc593f4aa54677203efa9a92c4f28d3033eb ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 9402cc593f4aa54677203efa9a92c4f28d3033eb
libctf: mmappable archives
If you need to store a large number of CTF containers somewhere, this
provides a dedicated facility for doing so: an mmappable archive format
like a very simple tar or ar without all the system-dependent format
horrors or need for heavy file copying, with built-in compression of
files above a particular size threshold.
libctf automatically mmap()s uncompressed elements of these archives, or
uncompresses them, as needed. (If the platform does not support mmap(),
copying into dynamically-allocated buffers is used.)
Archive iteration operations are partitioned into raw and non-raw
forms. Raw operations pass thhe raw archive contents to the callback:
non-raw forms open each member with ctf_bufopen() and pass the resulting
ctf_file_t to the iterator instead. This lets you manipulate the raw
data in the archive, or the contents interpreted as a CTF file, as
needed.
It is not yet known whether we will store CTF archives in a linked ELF
object in one of these (akin to debugdata) or whether they'll get one
section per TU plus one parent container for types shared between them.
(In the case of ELF objects with very large numbers of TUs, an archive
of all of them would seem preferable, so we might just use an archive,
and add lzma support so you can assume that .gnu_debugdata and .ctf are
compressed using the same algorithm if both are present.)
To make usage easier, the ctf_archive_t is not the on-disk
representation but an abstraction over both ctf_file_t's and archives of
many ctf_file_t's: users see both CTF archives and raw CTF files as
ctf_archive_t's upon opening, the only difference being that a raw CTF
file has only a single "archive member", named ".ctf" (the default if a
null pointer is passed in as the name). The next commit will make use
of this facility, in addition to providing the public interface to
actually open archives. (In the future, it should be possible to have
all CTF sections in an ELF file appear as an "archive" in the same
fashion.)
This machinery is also used to allow library-internal creators of
ctf_archive_t's (such as the next commit) to stash away an ELF string
and symbol table, so that all opens of members in a given archive will
use them. This lets CTF archives exploit the ELF string and symbol
table just like raw CTF files can.
(All this leads to somewhat confusing type naming. The ctf_archive_t is
a typedef for the opaque internal type, struct ctf_archive_internal: the
non-internal "struct ctf_archive" is the on-disk structure meant for
other libraries manipulating CTF files. It is probably clearest to use
the struct name for struct ctf_archive_internal inside the program, and
the typedef names outside.)
libctf/
* ctf-archive.c: New.
* ctf-impl.h (ctf_archive_internal): New type.
(ctf_arc_open_internal): New declaration.
(ctf_arc_bufopen): Likewise.
(ctf_arc_close_internal): Likewise.
include/
* ctf.h (CTFA_MAGIC): New.
(struct ctf_archive): New.
(struct ctf_archive_modent): Likewise.
* ctf-api.h (ctf_archive_member_f): New.
(ctf_archive_raw_member_f): Likewise.
(ctf_arc_write): Likewise.
(ctf_arc_close): Likewise.
(ctf_arc_open_by_name): Likewise.
(ctf_archive_iter): Likewise.
(ctf_archive_raw_iter): Likewise.
(ctf_get_arc): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: core type lookup
@ 2019-05-29 3:33 sergiodj+buildbot
2019-05-29 3:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 3:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 316afdb130346e44622229793d1fb8d391059f8d ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 316afdb130346e44622229793d1fb8d391059f8d
libctf: core type lookup
Finally we get to the functions used to actually look up and enumerate
properties of types in a container (names, sizes, members, what type a
pointer or cv-qual references, determination of whether two types are
assignment-compatible, etc).
With a very few exceptions these do not work for types newly added via
ctf_add_*(): they only work on types in read-only containers, or types
added before the most recent call to ctf_update().
This also adds support for lookup of "variables" (string -> type ID
mappings) and for generation of C type names corresponding to a type ID.
libctf/
* ctf-decl.c: New file.
* ctf-types.c: Likewise.
* ctf-impl.h: New declarations.
include/
* ctf-api.h (ctf_visit_f): New definition.
(ctf_member_f): Likewise.
(ctf_enum_f): Likewise.
(ctf_variable_f): Likewise.
(ctf_type_f): Likewise.
(ctf_type_isparent): Likewise.
(ctf_type_ischild): Likewise.
(ctf_type_resolve): Likewise.
(ctf_type_aname): Likewise.
(ctf_type_lname): Likewise.
(ctf_type_name): Likewise.
(ctf_type_sizee): Likewise.
(ctf_type_align): Likewise.
(ctf_type_kind): Likewise.
(ctf_type_reference): Likewise.
(ctf_type_pointer): Likewise.
(ctf_type_encoding): Likewise.
(ctf_type_visit): Likewise.
(ctf_type_cmp): Likewise.
(ctf_type_compat): Likewise.
(ctf_member_info): Likewise.
(ctf_array_info): Likewise.
(ctf_enum_name): Likewise.
(ctf_enum_value): Likewise.
(ctf_member_iter): Likewise.
(ctf_enum_iter): Likewise.
(ctf_type_iter): Likewise.
(ctf_variable_iter): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: type copying
@ 2019-05-29 3:57 sergiodj+buildbot
2019-05-29 3:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 3:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c499eb6896cd803d26da8c719bfac9c03e596c08 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: c499eb6896cd803d26da8c719bfac9c03e596c08
libctf: type copying
ctf_add_type() allows you to copy types, and all the types they depend
on, from one container to another (writable) container. This lets a
program maintaining multiple distinct containers (not in a parent-child
relationship) introduce types that depend on types in one container in
another writable one, by copying the necessary types.
libctf/
* ctf-create.c (enumcmp): New.
(enumadd): Likewise.
(membcmp): Likewise.
(membadd): Likewise.
(ctf_add_type): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: library version enforcement
@ 2019-05-29 4:16 sergiodj+buildbot
2019-05-29 4:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 4:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6c33b742ce19cc2fd226d84f2991572239199a62 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6c33b742ce19cc2fd226d84f2991572239199a62
libctf: library version enforcement
This old Solaris standard allows callers to specify that they are
expecting one particular API and/or CTF file format from the library.
libctf/
* ctf-impl.h (_libctf_version): New declaration.
* ctf-subr.c (_libctf_version): Define it.
(ctf_version): New.
include/
* ctf-api.h (ctf_version): New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: labels
@ 2019-05-29 4:47 sergiodj+buildbot
2019-05-29 4:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 4:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6dbf2b734063522b4f3d7403ce7a2b436802b839 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6dbf2b734063522b4f3d7403ce7a2b436802b839
libctf: labels
This facility allows you to associate regions of type IDs with *labels*,
a labelled tiling of the type ID space. You can use these to define
CTF containers with distinct parents for distinct ranges of the ID
space, or to assist with parallelization of CTF processing, or for any
other purpose you can think of.
Notably absent from here (though declared in the API header) is any way
to define new labels: this will probably be introduced soon, as part of
the linker deduplication work. (One existed in the past, but was deeply
tied to the Solaris CTF file generator and had to be torn out.)
libctf/
* ctf-labels.c: New.
include/
* ctf-api.h (ctf_label_f): New.
(ctf_label_set): New.
(ctf_label_get): New.
(ctf_label_topmost): New.
(ctf_label_info): New.
(ctf_label_iter): New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: debug dumping
@ 2019-05-29 4:51 sergiodj+buildbot
2019-05-29 4:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 4:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a30b3e182aad25f94de6412efd5d78f7805fb4d3 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a30b3e182aad25f94de6412efd5d78f7805fb4d3
libctf: debug dumping
This introduces ctf_dump(), an iterator which returns a series of
strings, each representing a debugging dump of one item from a given
section in the CTF file. The items may be multiline: a callback is
provided to allow the caller to decorate each line as they desire before
the line is returned.
libctf/
* ctf-dump.c: New.
include/
* ctf-api.h (ctf_dump_decorate_f): New.
(ctf_dump_state_t): new.
(ctf_dump): New.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Do not build libctf for targets that do not use the ELF file format.
@ 2019-05-29 11:42 sergiodj+buildbot
2019-05-29 11:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 11:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 90bd54236cb8b1c31c3662977159be971044c20d ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 90bd54236cb8b1c31c3662977159be971044c20d
Do not build libctf for targets that do not use the ELF file format.
top * configure.ac (noconfigdirs): Add libctf if the target does not use
the ELF file format.
* configure: Regenerate.
binutils* configure.ac (LIBCTF): Export. Set to empty for non-ELF based
targets.
(HAVE_LIBCTF): Define if libctf support is available.
* Makefile.am (LIBCTF): Set value to @LIBCTF@.
* objdump.c: Make CTF code conditional upon HAVE_LIBCTF being
defined.
* readelf.c: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* config.in: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Sync top level files with versions from gcc.
@ 2019-05-29 12:50 sergiodj+buildbot
2019-05-29 13:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 12:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f948b2de97884bfb4e5fc11d40a6bea9e0b096ae ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: f948b2de97884bfb4e5fc11d40a6bea9e0b096ae
Sync top level files with versions from gcc.
top * Makefile.def (target_modules): Add libphobos.
(flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and
GDCFLAGS_FOR_TARGET.
(dependencies): Make libphobos depend on libatomic, libbacktrace
configure, and zlib configure.
(language): Add language d.
* Makefile.in: Rebuild.
* Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS.
(HOST_EXPORTS): Add GDC.
(POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD.
(BASE_TARGET_EXPORTS): Add GDC.
(GDC_FOR_BUILD, GDC, GDCFLAGS): New variables.
(GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables.
(EXTRA_HOST_FLAGS): Add GDC.
(STAGE1_FLAGS_TO_PASS): Add GDC.
(EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS.
* config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag
environment variables.
* configure: Rebuild.
* configure.ac: Add target-libphobos to target_libraries. Set and
substitute GDC_FOR_BUILD and GDC_FOR_TARGET.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add new GCC 9 warnings to warnings.m4
@ 2019-05-29 16:06 sergiodj+buildbot
2019-05-29 16:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 16:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 33a6bc350f5b4f03d586ba9d32667b6fea1dce4a ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 33a6bc350f5b4f03d586ba9d32667b6fea1dce4a
Add new GCC 9 warnings to warnings.m4
GCC 9 has a few new warnings that aren't enabled in the gdb build by
default: -Wdeprecated-copy, -Wdeprecated-copy-dtor, and
-Wredundant-move. This patch enables them all.
Tested by rebuilding with a new GCC (git master) on x86-64 Fedora 29.
gdb/ChangeLog
2019-05-29 Tom Tromey <tromey@adacore.com>
* inflow.c (struct terminal_info): Add default operator=.
* configure: Rebuild.
* warning.m4 (AM_GDB_WARNINGS): Add -Wdeprecated-copy,
-Wdeprecated-copy-dtor, -Wredundant-move.
gdb/gdbserver/ChangeLog
2019-05-29 Tom Tromey <tromey@adacore.com>
* configure: Rebuild.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make some DWARF complaints clearer
@ 2019-05-29 16:38 sergiodj+buildbot
2019-05-29 18:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 16:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fa9c3fa035433debc24503e32c59688650ffcdbb ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: fa9c3fa035433debc24503e32c59688650ffcdbb
Make some DWARF complaints clearer
I noticed that the complaint in partial_die_parent_scope was not using
dwarf_tag_name, so I changed that. Then I noticed that dwarf_tag_name
does not show the numeric value for an unrecognized tag, so I changed
that function and all the related functions to do so.
gdb/ChangeLog
2019-05-29 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (partial_die_parent_scope): Call dwarf_tag_name.
(dwarf_unknown): New function.
(dwarf_tag_name, dwarf_attr_name, dwarf_form_name)
(dwarf_type_encoding_name): Use dwarf_unknown.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix failure in gdb.ada/complete.exp
@ 2019-05-29 17:24 sergiodj+buildbot
2019-05-29 18:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 17:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f49055a52f04f75b6560f304eb975128dd82ad68 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: f49055a52f04f75b6560f304eb975128dd82ad68
Fix failure in gdb.ada/complete.exp
I noticed a failure in gdb.ada/complete.exp when testing locally:
FAIL: gdb.ada/complete.exp: complete break ada
This failed due to this output:
[...]
break ada/generated/gnatvsn.ads
break ada/libgnat/s-excmac.ads
break ada/sdefault.adb
break ada/snames.adb
break ada/snames.ads
This patch updates the regexp to allow "/" and "-" to appear.
gdb/testsuite/ChangeLog
2019-05-29 Tom Tromey <tromey@adacore.com>
* gdb.ada/complete.exp (test_gdb_no_completion): Add "/" and "-"
to "break complete ada" test case's regexp.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't crash is dwarf_decode_macro_bytes's 'body' is NULL, even when '!is_define'
@ 2019-05-29 21:49 sergiodj+buildbot
2019-05-29 22:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 21:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 955b06fa576df1a6954263043ea3f3a5b9ad5940 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 955b06fa576df1a6954263043ea3f3a5b9ad5940
Don't crash is dwarf_decode_macro_bytes's 'body' is NULL, even when '!is_define'
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1715008
On commit 7bede82892a06e6c26989803e70f53697392dcf9 ("Don't crash if
dwarf_decode_macro_bytes's 'body' is NULL"), I was too strict when
checking if 'body' is NULL: the check only comprised the case when
'is_define' is true. However, the corruption of .debug_macro by
rpmbuild's "debugedit" also affects the case when 'is_define' is
false, i.e., when the macro is being undefined.
This commit improves the check and covers both cases now. This has
been tested on Fedora 30 with a problematic debuginfo, and I don't see
a segfault anymore.
OK to push?
gdb/ChangeLog:
2019-05-29 Sergio Durigan Junior <sergiodj@redhat.com>
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1715008
* dwarf2read.c (dwarf_decode_macro_bytes): Move check to see if
'body' is NULL to the outter 'if', protecting the '!is_define'
situation as well.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Initialize variable word in complete
@ 2019-05-30 14:19 sergiodj+buildbot
2019-05-30 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-30 14:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ef209f22c24b9243de68c35c576f7111198f915 ***
Author: Jan Vrany <jan.vrany@fit.cvut.cz>
Branch: master
Commit: 0ef209f22c24b9243de68c35c576f7111198f915
Initialize variable word in complete
The complete function should set parameter word to the end of the
word to complete. However, completion_find_completion_word may fail,
leaving word uninitialized.
To make sure word is always set, initialize it to the completion point
which is the end of the line parameter.
gdb/Changelog
PR cli/24587
* completer.c (complete): Initialize variable word.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: fix a number of build problems found on Solaris and NetBSD
@ 2019-05-31 15:41 sergiodj+buildbot
2019-05-31 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 15:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a0486bac41d6ce47f27795a5abbca5cc53ddba00 ***
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: a0486bac41d6ce47f27795a5abbca5cc53ddba00
libctf: fix a number of build problems found on Solaris and NetBSD
- Use of nonportable <endian.h>
- Use of qsort_r
- Use of zlib without appropriate magic to pull in the binutils zlib
- Use of off64_t without checking (fixed by dropping the unused fields
that need off64_t entirely)
- signedness problems due to long being too short a type on 32-bit
platforms: ctf_id_t is now 'unsigned long', and CTF_ERR must be
used only for functions that return ctf_id_t
- One lingering use of bzero() and of <sys/errno.h>
All fixed, using code from gnulib where possible.
Relatedly, set cts_size in a couple of places it was missed
(string table and symbol table loading upon ctf_bfdopen()).
binutils/
* objdump.c (make_ctfsect): Drop cts_type, cts_flags, and
cts_offset.
* readelf.c (shdr_to_ctf_sect): Likewise.
include/
* ctf-api.h (ctf_sect_t): Drop cts_type, cts_flags, and cts_offset.
(ctf_id_t): This is now an unsigned type.
(CTF_ERR): Cast it to ctf_id_t. Note that it should only be used
for ctf_id_t-returning functions.
libctf/
* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Use them.
(libctf_a_LIBADD): New, for LIBOBJS.
* configure.ac: Check for zlib, endian.h, and qsort_r.
* ctf-endian.h: New, providing htole64 and le64toh.
* swap.h: Code style fixes.
(bswap_identity_64): New.
* qsort_r.c: New, from gnulib (with one added #include).
* ctf-decls.h: New, providing a conditional qsort_r declaration,
and unconditional definitions of MIN and MAX.
* ctf-impl.h: Use it. Do not use <sys/errno.h>.
(ctf_set_errno): Now returns unsigned long.
* ctf-util.c (ctf_set_errno): Adjust here too.
* ctf-archive.c: Use ctf-endian.h.
(ctf_arc_open_by_offset): Use memset, not bzero. Drop cts_type,
cts_flags and cts_offset.
(ctf_arc_write): Drop debugging dependent on the size of off_t.
* ctf-create.c: Provide a definition of roundup if not defined.
(ctf_create): Drop cts_type, cts_flags and cts_offset.
(ctf_add_reftype): Do not check if type IDs are below zero.
(ctf_add_slice): Likewise.
(ctf_add_typedef): Likewise.
(ctf_add_member_offset): Cast error-returning ssize_t's to size_t
when known error-free. Drop CTF_ERR usage for functions returning
int.
(ctf_add_member_encoded): Drop CTF_ERR usage for functions returning
int.
(ctf_add_variable): Likewise.
(enumcmp): Likewise.
(enumadd): Likewise.
(membcmp): Likewise.
(ctf_add_type): Likewise. Cast error-returning ssize_t's to size_t
when known error-free.
* ctf-dump.c (ctf_is_slice): Drop CTF_ERR usage for functions
returning int: use CTF_ERR for functions returning ctf_type_id.
(ctf_dump_label): Likewise.
(ctf_dump_objts): Likewise.
* ctf-labels.c (ctf_label_topmost): Likewise.
(ctf_label_iter): Likewise.
(ctf_label_info): Likewise.
* ctf-lookup.c (ctf_func_args): Likewise.
* ctf-open.c (upgrade_types): Cast to size_t where appropriate.
(ctf_bufopen): Likewise. Use zlib types as needed.
* ctf-types.c (ctf_member_iter): Drop CTF_ERR usage for functions
returning int.
(ctf_enum_iter): Likewise.
(ctf_type_size): Likewise.
(ctf_type_align): Likewise. Cast to size_t where appropriate.
(ctf_type_kind_unsliced): Likewise.
(ctf_type_kind): Likewise.
(ctf_type_encoding): Likewise.
(ctf_member_info): Likewise.
(ctf_array_info): Likewise.
(ctf_enum_value): Likewise.
(ctf_type_rvisit): Likewise.
* ctf-open-bfd.c (ctf_bfdopen): Drop cts_type, cts_flags and
cts_offset.
(ctf_simple_open): Likewise.
(ctf_bfdopen_ctfsect): Likewise. Set cts_size properly.
* Makefile.in: Regenerate.
* aclocal.m4: Likewise.
* config.h: Likewise.
* configure: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add previous_saved_command_line to allow a command to repeat a previous command.
@ 2019-05-31 17:03 sergiodj+buildbot
2019-05-31 17:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 17:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68bb5386b84af4031175bf186269eb6b54b8611d ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 68bb5386b84af4031175bf186269eb6b54b8611d
Add previous_saved_command_line to allow a command to repeat a previous command.
Currently, a previous command can be repeated when the user types an
empty line. This is implemented in handle_line_of_input by
returning saved_command_line in case an empty line has been input.
If we want a command to repeat the previous command, we need to save
the previous saved_command_line, as when a command runs, the saved_command_line
already contains the current command line of the command being executed.
As suggested by Tom, the previous_saved_command_line is made static.
At the same time, saved_command_line is also made static.
The support functions/variables for the repeat command logic are now all
located inside top.c.
gdb/ChangeLog
2019-05-31 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* top.h (saved_command_line): Remove declaration.
* top.c (previous_saved_command_line, previous_repeat_arguments):
New variables.
(saved_command_line): Make static, define together with other
'repeat variables'.
(dont_repeat): Clear repeat_arguments.
(repeat_previous, get_saved_command_line, save_command_line):
New functions.
(gdb_init): Initialize saved_command_line
and previous_saved_command_line.
* main.c (captured_main_1): Remove saved_command_line initialization.
* event-top.c (handle_line_of_input): Update to use
the new 'repeat' related functions instead of direct access to
saved_command_line.
* command.h (repeat_previous, get_saved_command_line,
save_command_line): New declarations.
(dont_repeat): Add comment.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Implement | (pipe) command.
@ 2019-05-31 18:04 sergiodj+buildbot
2019-05-31 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 947d39462e26b0edee9b58003ea579552dbf4fa8 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 947d39462e26b0edee9b58003ea579552dbf4fa8
Implement | (pipe) command.
The pipe command allows to run a GDB command, and pipe its output
to a shell command:
(gdb) help pipe
Send the output of a gdb command to a shell command.
Usage: | [COMMAND] | SHELL_COMMAND
Usage: | -d DELIM COMMAND DELIM SHELL_COMMAND
Usage: pipe [COMMAND] | SHELL_COMMAND
Usage: pipe -d DELIM COMMAND DELIM SHELL_COMMAND
Executes COMMAND and sends its output to SHELL_COMMAND.
The -d option indicates to use the string DELIM to separate COMMAND
from SHELL_COMMAND, in alternative to |. This is useful in
case COMMAND contains a | character.
With no COMMAND, repeat the last executed command
and send its output to SHELL_COMMAND.
(gdb)
For example:
(gdb) pipe print some_data_structure | grep -B3 -A3 something
The pipe character is defined as an alias for pipe command, so that
the above can be typed as:
(gdb) | print some_data_structure | grep -B3 -A3 something
If no GDB COMMAND is given, then the previous command is relaunched,
and its output is sent to the given SHELL_COMMAND.
This also defines convenience vars $_shell_exitcode and $_shell_exitsignal
to record the exit code and exit signal of the last shell command
launched by GDB e.g. by "shell", "pipe", ...
gdb/ChangeLog
2019-05-31 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* cli/cli-cmds.c (pipe_command): New function.
(_initialize_cli_cmds): Call add_com for pipe_command.
Define | as an alias for pipe.
(exit_status_set_internal_vars): New function.
(shell_escape): Call exit_status_set_internal_vars.
cli/cli-decode.c (find_command_name_length): Recognize | as
a single character command.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] NEWS and documentation for | (pipe) command.
@ 2019-05-31 18:35 sergiodj+buildbot
2019-05-31 18:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d
NEWS and documentation for | (pipe) command.
gdb/ChangeLog
* NEWS: Mention new pipe command and new convenience variables.
gdb/doc/ChangeLog
* gdb.texinfo (Shell Commands): Document pipe command.
(Logging Output): Add a reference to pipe command.
(Convenience Variables): Document $_shell_exitcode and
$_shell_exitstatus.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove fromhex implementation from gdbreplay
@ 2019-06-03 2:58 sergiodj+buildbot
2019-06-03 2:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 2:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 88ed7edbc632245fad33145e723d27976b6732ca ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 88ed7edbc632245fad33145e723d27976b6732ca
Remove fromhex implementation from gdbreplay
gdbreplay had its own implementation of fromhex. This patch changes
it to use the one in common/.
gdb/gdbserver/ChangeLog
2019-06-02 Tom Tromey <tom@tromey.com>
* gdbreplay.c (fromhex): Remove.
* Makefile.in (GDBREPLAY_OBS): Add rsp-low.o.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't waste space in prefix_opcd_indices
@ 2019-06-03 16:02 sergiodj+buildbot
2019-06-03 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 16:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4f6d070adb32e61c3c61e621c6566fc2d5af2232 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4f6d070adb32e61c3c61e621c6566fc2d5af2232
Don't waste space in prefix_opcd_indices
* ppc-dis.c (prefix_opcd_indices): Correct size.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert patch that disables building libctf for non-ELF based targets.
@ 2019-06-03 21:15 sergiodj+buildbot
2019-06-03 21:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 21:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4
Revert patch that disables building libctf for non-ELF based targets.
Revert:
binutls 2019-05-29 Nick Clifton <nickc@redhat.com>
* configure.ac (LIBCTF): Export. Set to empty for non-ELF based
targets.
(HAVE_LIBCTF): Define if libctf support is available.
* Makefile.am (LIBCTF): Set value to @LIBCTF@.
* objdump.c: Make CTF code conditional upon HAVE_LIBCTF being
defined.
* readelf.c: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* config.in: Regenerate.
top 2019-05-29 Nick Clifton <nickc@redhat.com>
* configure.ac (noconfigdirs): Add libctf if the target does not use
the ELF file format.
* configure: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add highlight style, title style, fputs_highlighted. Improve 'show style'
@ 2019-06-03 21:49 sergiodj+buildbot
2019-06-03 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 21:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9303eb2fb1630678def10613c81215c2bd21d278 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 9303eb2fb1630678def10613c81215c2bd21d278
Add highlight style, title style, fputs_highlighted. Improve 'show style'
Have 'show style' and its subcommands using a style to style its output.
This allows the GDB user or developer to use 'show style' to visually see
with one command how all the current styles look like.
Add 2 new styles highlight style, title style and fputs_highlighted function.
Highlight style is used by fputs_highlighted to highlight the parts of
its char *STR argument that match a HIGHLIGHT regexp.
This (and the title style) will be used in a following patch.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Improve usability and/or readibility of help and apropos output.
@ 2019-06-03 22:05 sergiodj+buildbot
2019-06-03 22:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 22:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66d8c862859ab241c1db9b40c3981f8a71951bd4 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 66d8c862859ab241c1db9b40c3981f8a71951bd4
Improve usability and/or readibility of help and apropos output.
The "help" command can output long list of command names or classes.
Use the title style to style the command names or classes to make
the output more readable.
Similarly, change "apropos" command to also style the command names.
It is sometimes unclear why "apropos REGEXP" lists some commands,
and then the user has to manually do 'help command' for all commands
listed by "apropos" to see more details about the matching commands.
=> Add an optional flag -v so that "apropos -v REGEXP":
* outputs the full documentation of matching commands.
* highlights the documentation parts matching REGEXP.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update tests following changes to "help" and "apropos"
@ 2019-06-03 22:28 sergiodj+buildbot
2019-06-03 22:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 22:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 206584bdf15aa19bb3c971b28e2c1fc04f32d027 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 206584bdf15aa19bb3c971b28e2c1fc04f32d027
Update tests following changes to "help" and "apropos"
Factorizes the testing of the help output, by having a single place
that defines the common help trailer and/or prefix messages.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes.
@ 2019-06-03 23:06 sergiodj+buildbot
2019-06-03 23:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-03 23:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e664d728038abf414b6fb1a1c8cd3aacd0bb3b67 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: e664d728038abf414b6fb1a1c8cd3aacd0bb3b67
Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove an unnecessary set of parentheses in the arm-dis.c source file.
@ 2019-06-04 16:15 sergiodj+buildbot
2019-06-04 16:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 16:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9d96ab97edabea31bed089bfd4caca80838e31c ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a9d96ab97edabea31bed089bfd4caca80838e31c
Remove an unnecessary set of parentheses in the arm-dis.c source file.
* arm-dis.c (is_mve_unpredictable): Remove spurious paranthesis.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add an objfile getter to gdb.Type
@ 2019-06-04 16:45 sergiodj+buildbot
2019-06-04 16:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 16:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e1f2e1a2dadbaeffe0a8a6da7aab7effc6b046d2 ***
Author: Christian Biesinger via gdb-patches <gdb-patches@sourceware.org>
Branch: master
Commit: e1f2e1a2dadbaeffe0a8a6da7aab7effc6b046d2
Add an objfile getter to gdb.Type
This allows users of the Python API to find the objfile where a type
was defined.
gdb/ChangeLog:
gdb/ChangeLog
2019-06-04 Christian Biesinger <cbiesinger@google.com>
Add objfile property to gdb.Type.
* gdb/NEWS: Mention Python API addition.
* gdb/python/py-type.c (typy_get_objfile): New method.
gdb/doc/ChangeLog
2019-06-04 Christian Biesinger <cbiesinger@google.com>
* gdb/doc/python.texi: Document new gdb.Type.objfile property.
gdb/testsuite/ChangeLog
2019-06-04 Christian Biesinger <cbiesinger@google.com>
* gdb/testsuite/gdb.python/py-type.exp: Test for new
gdb.Type.objfile property.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add support for Intel ENQCMD[S] instructions
@ 2019-06-04 17:11 sergiodj+buildbot
2019-06-04 17:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 17:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64
Add support for Intel ENQCMD[S] instructions
This patch enables support for ENQCMD[S] in binutils. Please refer to
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
for ENQCMD[S] details.
Make check-gas is ok.
gas/ChangeLog:
2019-06-04 Xuepeng Guo <xuepeng.guo@intel.com>
Lili Cui <lili.cui@intel.com>
* doc/c-i386.texi: Document enqcmd.
* testsuite/gas/i386/enqcmd-intel.d: New file.
* testsuite/gas/i386/enqcmd-inval.l: Likewise.
* testsuite/gas/i386/enqcmd-inval.s: Likewise.
* testsuite/gas/i386/enqcmd.d: Likewise.
* testsuite/gas/i386/enqcmd.s: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-inval.l: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-inval.s: Likewise.
* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd.s: Likewise.
* testsuite/gas/i386/i386.exp: Run enqcmd-intel, enqcmd-inval,
enqcmd, x86-64-enqcmd-intel, x86-64-enqcmd-inval,
and x86-64-enqcmd.
opcodes/ChangeLog:
2019-06-04 Xuepeng Guo <xuepeng.guo@intel.com>
Lili Cui <lili.cui@intel.com>
* i386-dis.c (enum): Add MOD_0F38F8_PREFIX_1 and
MOD_0F38F8_PREFIX_3.
(prefix_table): New instructions (see prefix above).
(mod_table): New instructions (see prefix above).
* i386-gen.c (cpu_flag_init): Add entries for enqcmd.
(cpu_flags): Add a bitfield for enqmcd.
* i386-init.h: Regenerated.
* i386-opc.h (enum): Add CpuENQCMD.
(i386_cpu_flags): Add a bitfield for cpuenqcmd.
* i386-opc.tbl: Add enqcmd and enqcmds instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn
@ 2019-06-04 17:31 sergiodj+buildbot
2019-06-04 17:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 17:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9186c494a3bb61a55a29ec04aa0d1684a8c46838 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 9186c494a3bb61a55a29ec04aa0d1684a8c46838
Enable Intel AVX512_VP2INTERSECT insn
This patch enables support for VP2INTERSECT in binutils. Please refer to
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
for VP2INTERSECT details.
Make check-gas is ok.
gas/
2019-06-04 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Lili Cui <lili.cui@intel.com>
* config/tc-i386.c (cpu_arch): Add .avx512_vp2intersect.
(cpu_noarch): Likewise.
* doc/c-i386.texi: Document avx512_vp2intersect.
* testsuite/gas/i386/i386.exp: Run vp2intersect tests.
* testsuite/gas/i386/vp2intersect-intel.d: New test.
* testsuite/gas/i386/vp2intersect.d: Likewise.
* testsuite/gas/i386/vp2intersect.s: Likewise.
* testsuite/gas/i386/vp2intersect-inval-bcast.l: Likewise.
* testsuite/gas/i386/vp2intersect-inval-bcast.s: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-intel.d: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect.d: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect.s: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.l: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.s: Likewise.
opcodes/
2019-06-04 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Lili Cui <lili.cui@intel.com>
* i386-dis.c (enum): Add PREFIX_EVEX_0F3868, EVEX_W_0F3868_P_3.
* i386-dis-evex.h (evex_table): Add AVX512_VP2INTERSECT
instructions.
* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VP2INTERSECT_FLAGS,
CPU_ANY_AVX512_VP2INTERSECT_FLAGS.
(cpu_flags): Add CpuAVX512_VP2INTERSECT.
* i386-opc.h (enum): Add CpuAVX512_VP2INTERSECT.
(i386_cpu_flags): Add cpuavx512_vp2intersect.
* i386-opc.tbl: Add AVX512_VP2INTERSECT insns.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: fix the type of ctf_enum.cte_value
@ 2019-06-04 18:26 sergiodj+buildbot
2019-06-04 18:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 18:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a610aa4f9cf61d38b8e0fe60dfaac078d636089f ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a610aa4f9cf61d38b8e0fe60dfaac078d636089f
libctf: fix the type of ctf_enum.cte_value
This stops the file format from depending on the size of the host int.
(It does mean that we cannot encode enums with a value > 2^32 on
platforms with an int > 2^32: this will be fixed in the next format
revision.)
include/
* ctf.h (ctf_enum.cte_value): Fix type to int32_t.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: look for BSD versus GNU qsort_r signatures
@ 2019-06-04 19:32 sergiodj+buildbot
2019-06-04 19:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 19:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6b22174ff163b828a2069f22353018ca97fc0fb4 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 6b22174ff163b828a2069f22353018ca97fc0fb4
libctf: look for BSD versus GNU qsort_r signatures
We cannot just look for any declaration of qsort_r, because some
operating systems have a qsort_r that has a different prototype
but which still has a pair of pointers in the right places (the last two
args are interchanged): so use AC_LINK_IFELSE to check for both
known variants of qsort_r(), and swap their args into a consistent order
in a suitable inline function. (The code for this is taken almost
unchanged from gnulib.)
(Now we are not using AC_LIBOBJ any more, we can use a better name for
the qsort_r replacement as well.)
libctf/
* qsort_r.c: Rename to...
* ctf-qsort_r.c: ... this.
(_quicksort): Define to ctf_qsort_r.
* ctf-decls.h (qsort_r): Remove.
(ctf_qsort_r): Add.
(struct ctf_qsort_arg): New, transport the real ARG and COMPAR.
(ctf_qsort_compar_thunk): Rearrange the arguments to COMPAR.
* Makefile.am (libctf_a_LIBADD): Remove.
(libctf_a_SOURCES): New, add ctf-qsort_r.c.
* ctf-archive.c (ctf_arc_write): Call ctf_qsort_r, not qsort_r.
* ctf-create.c (ctf_update): Likewise.
* configure.ac: Check for BSD versus GNU qsort_r signature.
* Makefile.in: Regenerate.
* config.h.in: Likewise.
* configure: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: work on platforms without O_CLOEXEC.
@ 2019-06-04 19:41 sergiodj+buildbot
2019-06-04 19:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 19:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ad118caa9f690114d11384b0813f30980cc333f3 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: ad118caa9f690114d11384b0813f30980cc333f3
libctf: work on platforms without O_CLOEXEC.
(Not tested on any such platforms, since I don't have access to any at
the moment. Testing encouraged.)
libctf/
* configure.ac: Check for O_CLOEXEC.
* ctf-decls.h (O_CLOEXEC): Define (to 0), if need be.
* config.h.in: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] i386: Check for reserved VEX.vvvv and EVEX.vvvv
@ 2019-06-04 21:05 sergiodj+buildbot
2019-06-04 21:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 21:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa
i386: Check for reserved VEX.vvvv and EVEX.vvvv
If VEX.vvvv and EVEX.vvvv are reserved, they must be all 1s, which are
all 0s in inverted form. Add check for unused VEX.vvvv and EVEX.vvvv
when disassembling VEX and EVEX instructions.
gas/
PR binutils/24626
* testsuite/gas/i386/disassem.s: Add tests for reserved VEX.vvvv
and EVEX.vvvv.
* testsuite/gas/i386/x86-64-disassem.s: Likewise.
* testsuite/gas/i386/disassem.d: Updated.
* testsuite/gas/i386/x86-64-disassem.d: Likewise.
opcodes/
PR binutils/24626
* i386-dis.c (print_insn): Check for unused VEX.vvvv and
EVEX.vvvv when disassembling VEX and EVEX instructions.
(OP_VEX): Set vex.register_specifier to 0 after readding
vex.register_specifier.
(OP_Vex_2src_1): Likewise.
(OP_Vex_2src_2): Likewise.
(OP_LWP_E): Likewise.
(OP_EX_Vex): Don't check vex.register_specifier.
(OP_XMM_Vex): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf
@ 2019-06-04 21:37 sergiodj+buildbot
2019-06-04 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 21:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 76fad9996335e52f177c99c1ebf024fc7f761be2 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 76fad9996335e52f177c99c1ebf024fc7f761be2
Use CHAR_BIT instead of NBBY in libctf
On x86-64 Fedora 29, I tried to build a mingw-hosted gdb that targets
ppc-linux. You can do this with:
../binutils-gdb/configure --host=i686-w64-mingw32 --target=ppc-linux \
--disable-{binutils,gas,gold,gprof,ld}
The build failed with these errors in libctf:
In file included from ../../binutils-gdb/libctf/ctf-create.c:20:
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_encoded':
../../binutils-gdb/libctf/ctf-create.c:803:59: error: 'NBBY' undeclared (first use in this function)
dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
^~~~~
../../binutils-gdb/libctf/ctf-create.c:803:59: note: each undeclared identifier is reported only once for each function it appears in
dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
^~~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_slice':
../../binutils-gdb/libctf/ctf-create.c:862:59: error: 'NBBY' undeclared (first use in this function)
dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY);
^~~~
../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP'
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
^~~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_member_offset':
../../binutils-gdb/libctf/ctf-create.c:1341:21: error: 'NBBY' undeclared (first use in this function)
off += lsize * NBBY;
^~~~
../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_type':
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=]
ctf_dprintf ("Conflict for type %s against ID %lx: "
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../binutils-gdb/libctf/ctf-create.c:1823:35: note: format string is defined here
"union size differs, old %zi, new %zi\n",
^
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=]
ctf_dprintf ("Conflict for type %s against ID %lx: "
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../binutils-gdb/libctf/ctf-create.c:1823:44: note: format string is defined here
"union size differs, old %zi, new %zi\n",
^
../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: too many arguments for format [-Wformat-extra-args]
ctf_dprintf ("Conflict for type %s against ID %lx: "
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This patch fixes the actual errors in here. I did not try to fix the
printf warnings, though I think someone ought to.
Ok?
libctf/ChangeLog
2019-06-04 Tom Tromey <tromey@adacore.com>
* ctf-create.c (ctf_add_encoded, ctf_add_slice)
(ctf_add_member_offset): Use CHAR_BIT, not NBBY.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce and use make_unique_xstrdup
@ 2019-06-04 23:38 sergiodj+buildbot
2019-06-04 23:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 23:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b02f78f9285728ce2d05ce01e7b14880f70cd6e6 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: b02f78f9285728ce2d05ce01e7b14880f70cd6e6
Introduce and use make_unique_xstrdup
Adds an utility function to make it shorter to write the common case
of wrapping an xstrdup with a unique_xmalloc_ptr, and uses it
throughout.
Note: I tried to put this in common/common-utils.h near skip_spaces,
etc. but that is included in common/common-defs.h before
common/gdb_unique_ptr.h is included, so it would fail to compile
because gdb::unique_xmalloc_ptr isn't defined at that point yet. I
tried moving the gdb_unique_ptr.h inclusion before common-utils.h, but
that doesn't work because gdb_unique_ptr.h depends on common-utils.h
for xfree.
gdb/ChangeLog:
2019-06-04 Pedro Alves <palves@redhat.com>
* common/gdb_unique_ptr.h (make_unique_xstrdup): New.
* ada-lang.c (catch_ada_completer): Use make_unique_xstrdup.
* breakpoint.c (condition_completer): Likewise.
* cli/cli-dump.c (scan_expression): Likewise.
* common/filestuff.c (mkdir_recursive): Likewise.
* common/gdb_tilde_expand.c (gdb_tilde_expand_up)
* common/pathstuff.c (gdb_realpath, gdb_realpath_keepfile)
(gdb_abspath): Likewise.
* compile/compile-cplus-types.c
(compile_cplus_instance::decl_name): Likewise.
* completer.c (complete_explicit_location):
(signal_completer, reg_or_group_completer_1): Likewise.
* cp-support.c (cp_remove_params_if_any): Likewise.
* fbsd-tdep.c (fbsd_core_vnode_path): Likewise.
* guile/scm-safe-call.c (gdbscm_safe_eval_string): Likewise.
* infcmd.c (strip_bg_char): Likewise.
* linespec.c (copy_token_string): Likewise.
* mi/mi-main.c (output_cores): Likewise.
* psymtab.c (psymtab_search_name):
* symfile.c (test_set_ext_lang_command): Likewise.
* target.c (target_fileio_read_stralloc): Likewise.
* tui/tui-regs.c (tui_reggroup_completer): Likewise.
* value.c (complete_internalvar): Likewise.
gdb/gdbserver/ChangeLog:
2019-06-04 Pedro Alves <palves@redhat.com>
* server.c (captured_main): Use make_unique_xstrdup.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/riscv: Don't error when decoding a 6 or 8 byte instruction
@ 2019-06-05 10:48 sergiodj+buildbot
2019-06-05 10:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-05 10:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 312617a3d06b8df67b9f4f63f92ebfaa6b591921 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 312617a3d06b8df67b9f4f63f92ebfaa6b591921
gdb/riscv: Don't error when decoding a 6 or 8 byte instruction
If the RISC-V prologue scanner finds a 6 or 8 byte instruction we
currently throw an internal error, which is not great for the user.
A mechanism already exists in the prologue scanner to leave
instructions marked as unknown so that we can stop the prologue scan
without raising an error, this is used for all 2 and 4 byte
instructions that are not part of the small set the prologue scanner
actually understands.
This commit changes GDB so that all 6 and 8 byte instructions are
marked as unknown, rather than causing an error.
gdb/ChangeLog:
* riscv-tdep.c (riscv_insn::decode): Gracefully ignore
instructions of lengths 6 or 8 bytes.
gdb/testsuite/ChangeLog:
* gdb.arch/riscv-unwind-long-insn-6.s: New file.
* gdb.arch/riscv-unwind-long-insn-8.s: New file.
* gdb.arch/riscv-unwind-long-insn.c: New file.
* gdb.arch/riscv-unwind-long-insn.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Improve comments in recently added test
@ 2019-06-05 13:33 sergiodj+buildbot
2019-06-05 13:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-05 13:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0088ba596bba2e0b94139f1c2c4f5875848edbd6 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0088ba596bba2e0b94139f1c2c4f5875848edbd6
gdb/testsuite: Improve comments in recently added test
Remove the use of 'I' within some comments in a recently added test.
gdb/testsuite/ChangeLog:
* gdb.arch/riscv-unwind-long-insn-6.s: Remove use of 'I' in
comment.
* gdb.arch/riscv-unwind-long-insn-8.s: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [LD, AArch64] Move ELF options behind -z
@ 2019-06-06 13:19 sergiodj+buildbot
2019-06-06 13:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 13:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8bf6d176b0a442a8091d338d4af971591d19922c ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 8bf6d176b0a442a8091d338d4af971591d19922c
[LD, AArch64] Move ELF options behind -z
This patch moves the current AArch64 ld options of --force-bti
and --pac-plt to -z force-bti and -z pac-plt since these are
ELF specific options.
*** bfd/ChangeLog ***
2019-06-06 Sudakshina Das <sudi.das@arm.com>
* bfd-in.h: Change comment.
* bfd-in2.h: Regenerate.
* elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update warning.
* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties):
Likwise.
*** ld/ChangeLog ***
2019-06-06 Sudakshina Das <sudi.das@arm.com>
* NEWS: Update options names.
* emultempl/aarch64elf.em (OPTION_FORCE_BTI, OPTION_PAC_PLT): Remove.
(PARSE_AND_LIST_LONGOPTS): Remove force-bti and pac-plt.
(PARSE_AND_LIST_OPTIONS): Update to -z.
(PARSE_AND_LIST_ARGS_CASE_Z_AARCH64): New.
(PARSE_AND_LIST_ARGS_CASE_Z): Add PARSE_AND_LIST_ARGS_CASE_Z_AARCH64.
(PARSE_AND_LIST_ARGS_CASES): Move cases for these options.
* testsuite/ld-aarch64/bti-pac-plt-1.d: Update option.
* testsuite/ld-aarch64/bti-pac-plt-2.d: Likewise.
* testsuite/ld-aarch64/bti-plt-1.d: Likewise.
* testsuite/ld-aarch64/bti-plt-2.d: Likewise.
* testsuite/ld-aarch64/bti-plt-3.d: Likewise.
* testsuite/ld-aarch64/bti-plt-4.d: Likewise.
* testsuite/ld-aarch64/bti-plt-6.d: Likewise.
* testsuite/ld-aarch64/bti-plt-7.d: Likewise.
* testsuite/ld-aarch64/bti-warn.d: Likewise.
* testsuite/ld-aarch64/pac-plt-1.d: Likewise.
* testsuite/ld-aarch64/pac-plt-2.d: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
@ 2019-06-06 15:13 sergiodj+buildbot
2019-06-06 15:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 15:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 237df8fe1863bb47fcf71ce125cd962666173aaa ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 237df8fe1863bb47fcf71ce125cd962666173aaa
[BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
If the new GNU property section was being created by the linker
(this will happen only if none of the inputs have any GNU property
section but the command line to the linker forces a bti with
--force-bti), the alignment of the section and hence the program
header of PT_GNU_PROPERTY type was not being set correctly. This
patch fixes this issue.
bfd/ChangeLog:
2019-06-06 Sudakshina Das <sudi.das@arm.com>
* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set
alignment of the new gnu property section.
ld/ChangeLog:
2019-06-06 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-aarch64/aarch64-elf.exp: Add new tests.
* testsuite/ld-aarch64/property-bti-pac4-a.d: New test.
* testsuite/ld-aarch64/property-bti-pac4-b.d: New test.
* testsuite/ld-aarch64/property-bti-pac4.s: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-06-06 15:13 [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue sergiodj+buildbot
@ 2019-06-06 15:13 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 15:13 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10150>
Commit(s) tested:
237df8fe1863bb47fcf71ce125cd962666173aaa
Author(s) (in the same order as the commits):
Sudakshina Das <sudi.das@arm.com>
Subject:
[BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/23/237df8fe1863bb47fcf71ce125cd962666173aaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=c1adb933>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=c1adb933>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add timestamps to "maint time" output
@ 2019-06-06 18:15 sergiodj+buildbot
2019-06-06 18:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 18:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3847a7bfbf6340372962c07f31187ff87b4f492c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 3847a7bfbf6340372962c07f31187ff87b4f492c
Add timestamps to "maint time" output
Currently "maint time" will print the amount of time a command took.
Sometimes, though, it's useful to have a timestamp as well -- for
example if one is correlating a gdb log with some other log.
This patch adds a timestamp to the start and end of each command when
this setting is in effect.
This also removes a "//" comment and changes scoped_command_stats to
use DISABLE_COPY_AND_ASSIGN; two minor things I noticed while working
on the patch.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-06 Tom Tromey <tromey@adacore.com>
* maint.h (class scoped_command_stats): Use
DISABLE_COPY_AND_ASSIGN.
<print_time>: New method.
* maint.c (scoped_command_stats, ~scoped_command_stats): Call
print_time.
(scoped_command_stats::print_time): New method.
gdb/testsuite/ChangeLog
2019-06-06 Tom Tromey <tromey@adacore.com>
* gdb.base/maint.exp: Expect command started/finished output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Apply substitute-path to relative filenames as well
@ 2019-06-07 13:33 sergiodj+buildbot
2019-06-07 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 13:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4fa0265edea0940b865678d93749e224547dd36a ***
Author: <lrn1986@gmail.com>
Branch: master
Commit: 4fa0265edea0940b865678d93749e224547dd36a
Apply substitute-path to relative filenames as well
When source file path is relative to the build directory (which
is considered a good practice and is enforced in certain buildsystems,
such as meson), gdb only applies substitute-path to the build directory
path. Then gdb appends the source file path to the rewritten build
directory path, and tries to access that.
This fails if either two of the following conditions are true:
a) The user didn't specify substitute-path for the build directory.
This is highly likely, since path substitution for build directories
is not documented anywhere, and since gdb does not tell[0] the user
the path to the build directory, just the source file path.
b) The source file path changed.
This can also easily happen, since a source path that is relative
to the build directory can include any number of directory names
that are not part of the program source tree (starting with the
name of the root directory of the source tree). Gdb will not apply
substitute-path to that relative path, thus there is no way for
the user to tell gdb about these changes.
This commit changes the code to apply substitute-path to all filenames,
both relative and absolute. This way it is possible to do things like:
set substitute-path ../foobar-1.0 /src/my/foobar-1.0
which is completely in line with the user expectations.
This might break unusual cases where build directory path is also
relative (is that even possible?) and happens to match the path
to the source directory (i.e. happens to match a substitution rule).
[0]: There's a "maintenance info symtabs" command that does show the names
of the build directories, but normal users are not required to
know or use that.
gdb/ChangeLog
2019-06-06 <lrn1986@gmail.com>
* source.c (find_and_open_source): Also rewrite relative file
names.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: mark various args as unused in the !HAVE_MMAP case
@ 2019-06-07 14:40 sergiodj+buildbot
2019-06-07 14:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 14:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f5e73be11b24b6c4b7ecec5f762784c4bb40ec18 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: f5e73be11b24b6c4b7ecec5f762784c4bb40ec18
libctf: mark various args as unused in the !HAVE_MMAP case
Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.
libctf/
* ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
* ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: explicitly cast more size_t types used in printf()s
@ 2019-06-07 15:10 sergiodj+buildbot
2019-06-07 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 15:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 595a4d439bc5976d5bdf61da6d44337b3995d967 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 595a4d439bc5976d5bdf61da6d44337b3995d967
libctf: explicitly cast more size_t types used in printf()s
Unsigned long will always be adequate (the only cases involving an
ssize_t are cases in which no error can be generated, or in which
negative output would require a seriously corrupted file: the latter has
been rewritten on a branch in any case).
Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.
libctf/
* ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s.
(ctf_dump_objts): Likewise.
(ctf_dump_funcs): Likewise.
(ctf_dump_member): Likewise.
(ctf_dump_str): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: avoid strndup
@ 2019-06-07 15:36 sergiodj+buildbot
2019-06-07 15:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-07 15:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c
libctf: avoid strndup
Not all platforms have it. Use libiberty xstrndup() instead.
(The include of libiberty.h happens in an unusual place due to the
requirements of synchronization of most source files between this
project and another that does not use libiberty. It serves to pull
libiberty.h in for all source files in libctf/, which does the trick.)
Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0,
sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32.
libctf/
* ctf-decls.h: Include <libiberty.h>.
* ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/symtab] Support DW_AT_main_subprogram with -readnow.
@ 2019-06-10 13:53 sergiodj+buildbot
2019-06-10 14:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 81873cc81effbd657efe5f525d369e430ce77d7a ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 81873cc81effbd657efe5f525d369e430ce77d7a
[gdb/symtab] Support DW_AT_main_subprogram with -readnow.
DW_AT_main_subprogram is supported in normal mode in read_partial_die, but not
in -readnow mode.
Fix this by adding support for DW_AT_main_subprogram in read_func_scope.
Tested on x86_64-linux with native and RFC target board readnow (
https://sourceware.org/ml/gdb-patches/2019-05/msg00073.html ).
gdb/ChangeLog:
2019-06-10 Tom de Vries <tdevries@suse.de>
PR symtab/16264
PR symtab/24517
* dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use gdbpy_enter in py-breakpoint.c
@ 2019-06-10 14:58 sergiodj+buildbot
2019-06-10 15:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 14:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 25ce02ee7b7667fb7bb882421ff869c080777bee ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 25ce02ee7b7667fb7bb882421ff869c080777bee
Use gdbpy_enter in py-breakpoint.c
A few spots in py-breakpoint.c acquire the GIL manually. However,
because these spots generate events, and because events are expected
to be arbitrary gdb-flavored Python code, it's important to use
gdbpy_enter instead, in order to ensure that the other gdb-related
Python globals are set correctly.
This patch makes this change. Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-10 Tom Tromey <tom@tromey.com>
* python/py-breakpoint.c (gdbpy_breakpoint_created)
(gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use
gdbpy_enter.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update help text in ada-lang.c
@ 2019-06-10 15:47 sergiodj+buildbot
2019-06-10 15:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 15:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9bf7038bb229d6e46a1f1861c257fc47843f114d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9bf7038bb229d6e46a1f1861c257fc47843f114d
Update help text in ada-lang.c
I noticed that the "catch assert" help text erroneously claimed to
accept an argument, and while fixing this I went ahead and added
"Usage" text and made other minor updates to the commands in
ada-lang.c.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (_initialize_ada_language): Update help text.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression
@ 2019-06-10 19:04 sergiodj+buildbot
2019-06-10 19:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 19:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e99f9db0f5211455ca4256e8db9d9081967d255e ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: e99f9db0f5211455ca4256e8db9d9081967d255e
[gdb/symtab] Fix symbol loading performance regression
The commit "[gdb/symtab] Fix language of duplicate static minimal symbol"
introduces a performance regression, when loading a cc1 executable build with
-O0 -g and gcc 7.4.0. The performance regression, measured in 'real' time is
about 175%.
The slower execution comes from the fact that the fix in symbol_set_names
makes the call to symbol_find_demangled_name unconditional.
Fix this by reverting the commit, and redoing the fix as follows.
Recapturing the original problem, the first time symbol_set_names is called
with gsymbol.language == lang_auto and linkage_name == "_ZL3foov", the name is
not present in the per_bfd->demangled_names_hash hash table, so
symbol_find_demangled_name is called to demangle the name, after which the
mangled/demangled pair is added to the hashtable. The call to
symbol_find_demangled_name also sets gsymbol.language to lang_cplus.
The second time symbol_set_names is called with gsymbol.language == lang_auto
and linkage_name == "_ZL3foov", the name is present in the hash table, so the
demangled name from the hash table is used. However, the language of the
symbol remains lang_auto.
Fix this by adding a field language in struct demangled_name_entry, and using
the field in symbol_set_names to set the language of gsymbol, if necessary.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-06-10 Tom de Vries <tdevries@suse.de>
PR symtab/24545
* symtab.c (struct demangled_name_entry): Add language field.
(symbol_set_names): Revert "[gdb/symtab] Fix language of duplicate
static minimal symbol". Set and use language field.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string
@ 2019-06-10 19:29 sergiodj+buildbot
2019-06-10 19:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 19:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f19e22e9226444ee566b5b5633c0a48a4f981eda ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f19e22e9226444ee566b5b5633c0a48a4f981eda
[gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string
When compiling gdb with '-lasan -fsanitizer=address' and running tests with
'export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0"', I run into:
...
ERROR: GDB process no longer exists
UNRESOLVED: gdb.linespec/cpls-abi-tag.exp: \
test_abi_tag: completion: at tag: tab complete "b test_abi_tag_function[abi:"
...
In more detail:
...
==3637==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address \
0x7fff5952bbdd at pc 0x000000fe5c57 bp 0x7fff5952af30 sp 0x7fff5952af28
READ of size 1 at 0x7fff5952bbdd thread T0
#0 0xfe5c56 in linespec_lexer_lex_string src/gdb/linespec.c:727
#1 0xfe7473 in linespec_lexer_lex_one src/gdb/linespec.c:946
#2 0xfe799d in linespec_lexer_consume_token src/gdb/linespec.c:982
#3 0xff446d in parse_linespec src/gdb/linespec.c:2564
#4 0xff78be in linespec_complete(completion_tracker&, char const*, \
symbol_name_match_type) src/gdb/linespec.c:2961
#5 0xb9299c in complete_address_and_linespec_locations \
src/gdb/completer.c:573
#6 0xb93e90 in location_completer(cmd_list_element*, completion_tracker&, \
char const*, char const*) src/gdb/completer.c:919
#7 0xb940c5 in location_completer_handle_brkchars src/gdb/completer.c:956
#8 0xb957ec in complete_line_internal_normal_command \
src/gdb/completer.c:1208
#9 0xb96507 in complete_line_internal_1 src/gdb/completer.c:1430
#10 0xb965c2 in complete_line_internal src/gdb/completer.c:1449
#11 0xb98630 in gdb_completion_word_break_characters_throw \
src/gdb/completer.c:1862
#12 0xb98838 in gdb_completion_word_break_characters() \
src/gdb/completer.c:1897
#13 0x16c6362 in _rl_find_completion_word src/readline/complete.c:943
#14 0x16ca8d0 in rl_complete_internal src/readline/complete.c:1843
#15 0x16c460c in rl_complete src/readline/complete.c:408
#16 0x16b3368 in _rl_dispatch_subseq src/readline/readline.c:774
#17 0x16b3092 in _rl_dispatch src/readline/readline.c:724
#18 0x16b2939 in readline_internal_char src/readline/readline.c:552
#19 0x16f1fb0 in rl_callback_read_char src/readline/callback.c:201
#20 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
src/gdb/event-top.c:175
#21 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192
#22 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514
#23 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731
#24 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857
#25 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321
#26 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370
#27 0x10a7715 in captured_command_loop src/gdb/main.c:331
#28 0x10aa548 in captured_main src/gdb/main.c:1173
#29 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188
#30 0x87bd35 in main src/gdb/gdb.c:32
#31 0x7fb0364c6f89 in __libc_start_main (/lib64/libc.so.6+0x20f89)
#32 0x87bb49 in _start (build/gdb/gdb+0x87bb49)
Address 0x7fff5952bbdd is located in stack of thread T0 at offset 557 in frame
#0 0xb93702 in location_completer(cmd_list_element*, completion_tracker&, \
char const*, char const*) src/gdb/completer.c:831
This frame has 4 object(s):
[32, 40) 'copy'
[96, 104) 'location'
[160, 168) 'text'
[224, 256) 'completion_info' <== Memory access at offset 557 overflows \
this variable
HINT: this may be a false positive if your program uses some custom stack \
unwind mechanism or swapcontext
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: dynamic-stack-buffer-overflow \
src/gdb/linespec.c:727 in linespec_lexer_lex_string
Shadow bytes around the buggy address:
0x10006b29d720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10006b29d730: 00 00 00 00 00 00 f1 f1 f1 f1 00 f2 f2 f2 f2 f2
0x10006b29d740: f2 f2 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f2 f2
0x10006b29d750: f2 f2 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00
0x10006b29d760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10006b29d770: 00 00 00 00 ca ca ca ca 00 00 00[05]cb cb cb cb
0x10006b29d780: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
0x10006b29d790: 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f3 f3 f3 f3
0x10006b29d7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10006b29d7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10006b29d7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==3637==ABORTING
...
The problem happens in linespec_lexer_lex_string when lexing
"b test_abi_tag_function[abi:\0" (using a notation where we make the implicit
terminating \0 explicit).
We arrrive here with (PARSER_STREAM (parser)) == ":\0":
...
/* Do not tokenize ABI tags such as "[abi:cxx11]". */
else if (PARSER_STREAM (parser) - start > 4
&& startswith (PARSER_STREAM (parser) - 4, "[abi"))
++(PARSER_STREAM (parser));
...
and consume ':', after which we end up here and consume '\0':
...
/* Advance the stream. */
++(PARSER_STREAM (parser));
...
after which (PARSER_STREAM (parser)) points past the end of the string.
Fix this by removing the first "++(PARSER_STREAM (parser))", and add an assert
to the second one to detect moving past the end-of-string.
Build and tested on x86_64-linux.
gdb/ChangeLog:
2019-06-10 Tom de Vries <tdevries@suse.de>
PR gdb/24611
* linespec.c (linespec_lexer_lex_string): Remove incorrect
"++(PARSER_STREAM (parser))" for "[abi"-prefixed colon. Add assert.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix heap-buffer-overflow in cp_find_first_component_aux
@ 2019-06-10 20:13 sergiodj+buildbot
2019-06-10 20:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 20:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9ab084121f50a6858b7298de6c5326cee3687c43 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 9ab084121f50a6858b7298de6c5326cee3687c43
[gdb] Fix heap-buffer-overflow in cp_find_first_component_aux
When compiling gdb with '-lasan -fsanitizer=address' and running tests with:
- export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0",
- target board cc-with-gdb-index,
- the "[gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver"
commit reverted to avoid running into PR24617,
we get with gdb.arch/amd64-init-x87-values.exp:
...
==31229==ERROR: AddressSanitizer: heap-buffer-overflow on address \
0x62500098c93c at pc 0x000000bcc748 bp 0x7ffe39487660 sp 0x7ffe39487658
READ of size 1 at 0x62500098c93c thread T0
#0 0xbcc747 in cp_find_first_component_aux src/gdb/cp-support.c:999
#1 0xbcc6e9 in cp_find_first_component(char const*) \
src/gdb/cp-support.c:977
#2 0xcc2cf3 in mapped_index_base::build_name_components() \
src/gdb/dwarf2read.c:4499
#3 0xcc3322 in dw2_expand_symtabs_matching_symbol src/gdb/dwarf2read.c:4552
#4 0xcc817f in dw2_expand_symtabs_matching src/gdb/dwarf2read.c:5228
#5 0xfe8f48 in iterate_over_all_matching_symtabs src/gdb/linespec.c:1147
#6 0x1003506 in add_matching_symbols_to_info src/gdb/linespec.c:4413
#7 0xffe21b in find_function_symbols src/gdb/linespec.c:3886
#8 0xffe4a2 in find_linespec_symbols src/gdb/linespec.c:3914
#9 0xfee3ad in linespec_parse_basic src/gdb/linespec.c:1865
#10 0xff5128 in parse_linespec src/gdb/linespec.c:2655
#11 0xff8872 in event_location_to_sals src/gdb/linespec.c:3150
#12 0xff90a8 in decode_line_full(event_location const*, int, \
program_space*, symtab*, int, linespec_result*, \
char const*, char const*) src/gdb/linespec.c:3230
#13 0x9ce449 in parse_breakpoint_sals src/gdb/breakpoint.c:9057
#14 0x9ea022 in create_sals_from_location_default src/gdb/breakpoint.c:13708
#15 0x9e2c1f in bkpt_create_sals_from_location src/gdb/breakpoint.c:12514
#16 0x9cff06 in create_breakpoint(gdbarch*, event_location const*, \
char const*, int, char const*, int, int, bptype, int, \
auto_boolean, breakpoint_ops const*, int, int, int, \
unsigned int) src/gdb/breakpoint.c:9238
#17 0x9d114a in break_command_1 src/gdb/breakpoint.c:9402
#18 0x9d1b60 in break_command(char const*, int) src/gdb/breakpoint.c:9473
#19 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106
#20 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \
src/gdb/cli/cli-decode.c:1892
#21 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630
#22 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586
#23 0xdde7c1 in command_line_handler(std::unique_ptr<char, \
gdb::xfree_deleter<char> >&&) src/gdb/event-top.c:773
#24 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217
#25 0x16f2198 in rl_callback_read_char src/readline/callback.c:220
#26 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
src/gdb/event-top.c:175
#27 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192
#28 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514
#29 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731
#30 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857
#31 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321
#32 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370
#33 0x10a7715 in captured_command_loop src/gdb/main.c:331
#34 0x10aa548 in captured_main src/gdb/main.c:1173
#35 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188
#36 0x87bd35 in main src/gdb/gdb.c:32
#37 0x7f16e1434f89 in __libc_start_main (/lib64/libc.so.6+0x20f89)
#38 0x87bb49 in _start (build/gdb/gdb+0x87bb49)
0x62500098c93c is located 0 bytes to the right of 8252-byte region \
[0x62500098a900,0x62500098c93c)
allocated by thread T0 here:
#0 0x7f16e359a600 in malloc (/usr/lib64/libasan.so.5+0xeb600)
#1 0x1742ddf in bfd_malloc src/bfd/libbfd.c:275
#2 0x1738824 in bfd_get_full_section_contents src/bfd/compress.c:253
#3 0xe30044 in gdb_bfd_map_section(bfd_section*, unsigned long*) \
src/gdb/gdb_bfd.c:704
#4 0xcb56bf in dwarf2_read_section(objfile*, dwarf2_section_info*) \
src/gdb/dwarf2read.c:2539
#5 0xd5bcd0 in get_gdb_index_contents_from_section<dwarf2_per_objfile> \
src/gdb/dwarf2read.c:6217
#6 0xd7fc7d in gdb::function_view<gdb::array_view<unsigned char const> \
(...) const src/gdb/common/function-view.h:284
#7 0xd7fddd in gdb::function_view<gdb::array_view<unsigned char const> \
(...) src/gdb/common/function-view.h:278
#8 0xd730cf in gdb::function_view<gdb::array_view<unsigned char const> \
(...) const src/gdb/common/function-view.h:247
#9 0xcbc7ee in dwarf2_read_gdb_index src/gdb/dwarf2read.c:3582
#10 0xcce731 in dwarf2_initialize_objfile(objfile*, dw_index_kind*) \
src/gdb/dwarf2read.c:6297
#11 0xdb88c4 in elf_symfile_read src/gdb/elfread.c:1256
#12 0x141262a in read_symbols src/gdb/symfile.c:798
#13 0x14140a7 in syms_from_objfile_1 src/gdb/symfile.c:1000
#14 0x1414393 in syms_from_objfile src/gdb/symfile.c:1017
#15 0x1414fb7 in symbol_file_add_with_addrs src/gdb/symfile.c:1124
#16 0x14159b7 in symbol_file_add_from_bfd(bfd*, char const*, \
enum_flags<symfile_add_flag>, std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>, objfile*) src/gdb/symfile.c:1203
#17 0x1415b6c in symbol_file_add(char const*,
enum_flags<symfile_add_flag>, std::vector<other_sections, \
std::allocator<other_sections> >*, \
enum_flags<objfile_flag>) src/gdb/symfile.c:1216
#18 0x1415f2f in symbol_file_add_main_1 src/gdb/symfile.c:1240
#19 0x1418599 in symbol_file_command(char const*, int) \
src/gdb/symfile.c:1675
#20 0xde2fa6 in file_command src/gdb/exec.c:433
#21 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106
#22 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \
src/gdb/cli/cli-decode.c:1892
#23 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630
#24 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586
#25 0xdde7c1 in command_line_handler(std::unique_ptr<char, \
gdb::xfree_deleter<char> >&&) src/gdb/event-top.c:773
#26 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217
#27 0x16f2198 in rl_callback_read_char src/readline/callback.c:220
#28 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \
src/gdb/event-top.c:175
#29 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192
SUMMARY: AddressSanitizer: heap-buffer-overflow src/gdb/cp-support.c:999 in \
cp_find_first_component_aux
Shadow bytes around the buggy address:
0x0c4a801298d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a801298e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a801298f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a80129900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a80129910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c4a80129920: 00 00 00 00 00 00 00[04]fa fa fa fa fa fa fa fa
0x0c4a80129930: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80129940: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80129950: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80129960: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80129970: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==31229==ABORTING
...
The problem happens as follows.
The executable amd64-init-x87-values gets an index (due to target board
cc-with-gdb-index), which looks as follows:
...
Hex dump of section '.gdb_index':
0x00000000 08000000 18000000 28000000 28000000 ........(...(...
0x00000010 3c000000 3c200000 00000000 00000000 <...< ..........
0x00000020 2e000000 00000000 d4004000 00000000 ..........@.....
0x00000030 db004000 00000000 00000000 00000000 ..@.............
0x00000040 00000000 00000000 00000000 00000000 ................
0x00000050 00000000 00000000 00000000 00000000 ................
... more zeroes ...
0x00002010 00000000 00000000 00000000 00000000 ................
0x00002020 00000000 00000000 00000000 00000000 ................
0x00002030 00000000 00000000 00000000 ............
...
The structure of this index is:
...
header : [0x0, 0x18) : size 0x18
culist : [0x18 ,0x28) : size 0x10
typesculist : [0x28, 0x28) : size 0x0
adress area : [0x28, 0x3c) : size 0x14
symbol table : [0x3c, 0x203c) : size 0x2000
constant pool: [0x203c, 0x203c): size 0x0
EOF : 0x203c
...
Note that the symbol table consists entirely of empty slots (where an empty
slot is a pair of 32-bit zeroes), and that the constant pool is empty.
The problem happens here in mapped_index_base::build_name_components:
...
auto count = this->symbol_name_count ();
for (offset_type idx = 0; idx < count; idx++)
{
if (this->symbol_name_slot_invalid (idx))
continue;
const char *name = this->symbol_name_at (idx);
...
when accessing the slot at idx == 0 in the symbol table,
symbol_name_slot_invalid returns false so we calculate name, which is
calculated using 'constant_pool + symbol_table[idx].name', which means we get
name == constant_pool. And given that the constant pool is empty, name now
points past the memory allocated for the index, and when we access name[0] for
the first time in cp_find_first_component_aux, we run into the
heap-buffer-overflow.
Fix this by fixing the definition of symbol_name_slot_invalid:
...
- return bucket.name == 0 && bucket.vec;
+ return bucket.name == 0 && bucket.vec == 0;
...
Tested on x86_64-linux.
gdb/ChangeLog:
2019-06-10 Tom de Vries <tdevries@suse.de>
PR gdb/24618
* dwarf2read.c (struct mapped_index::symbol_name_slot_invalid): Make
sure an empty slot (defined by a 32-bit zero pair) is recognized as
invalid.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Check for not allocated/associated values during array slicing
@ 2019-06-11 7:57 sergiodj+buildbot
2019-06-11 8:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 7:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7067863418451b27130bb4300ac1890ff806c12 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a7067863418451b27130bb4300ac1890ff806c12
gdb: Check for not allocated/associated values during array slicing
When extracting an array slice we should give up if the array is
not-allocated or not-associated. For Fortran, at least in gfortran
compiled code, the upper and lower bounds are undefined if the array
is not allocated or not associated, in which case performing checks
against these bounds will result in undefined behaviour.
Better then to throw an error if we try to slice such an array. This
changes the error message that the user will receive in these
cases (if they got an error message before). Previously they may have
gotten "slice out of range" now they'll get "array not allocated" or
"array not associated".
gdb/ChangeLog:
* valops.c (value_slice): Check for not allocated or not
associated values.
gdb/testsuite/ChangeLog:
* gdb.fortran/vla-sizeof.exp: Update expected results.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-06-11 7:57 [binutils-gdb] gdb: Check for not allocated/associated values during array slicing sergiodj+buildbot
@ 2019-06-11 8:03 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 8:03 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10167>
Commit(s) tested:
a7067863418451b27130bb4300ac1890ff806c12
Author(s) (in the same order as the commits):
Andrew Burgess <andrew.burgess@embecosm.com>
Subject:
gdb: Check for not allocated/associated values during array slicing
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/a7/a7067863418451b27130bb4300ac1890ff806c12/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=34c43033>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=34c43033>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add readnow.exp
@ 2019-06-11 11:55 sergiodj+buildbot
2019-06-11 11:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 11:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5
[gdb/testsuite] Add readnow.exp
Add a target board to test -readnow.
gdb/testsuite/ChangeLog:
2019-06-11 Tom de Vries <tdevries@suse.de>
* boards/readnow.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove shadowing from darwin-nat.c
@ 2019-06-11 13:14 sergiodj+buildbot
2019-06-11 13:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 13:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 86108c1311d82af6707d38e6d3dae1ec0aa92ec9 ***
Author: Tom Tromey <tromey@blackburn.act-europe.fr>
Branch: master
Commit: 86108c1311d82af6707d38e6d3dae1ec0aa92ec9
Remove shadowing from darwin-nat.c
Building on Darwin with gcc showed that darwin-nat.c had some
shadowing variable declarations. This removes them.
gdb/ChangeLog
2019-06-11 Tom Tromey <tromey@adacore.com>
* darwin-nat.c (darwin_decode_exception_message)
(darwin_decode_message, darwin_nat_target::kill): Fix shadowing.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix remove-inferiors.exp FAIL with readnow board
@ 2019-06-11 13:39 sergiodj+buildbot
2019-06-11 13:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 13:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fea82da0fe15137fda0056c0f0b92b6e70997ea8 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: fea82da0fe15137fda0056c0f0b92b6e70997ea8
[gdb/testsuite] Fix remove-inferiors.exp FAIL with readnow board
We see this failure with the readnow board:
...
FAIL: gdb.multi/remove-inferiors.exp: load binary
...
When running with board readnow, an extra message "Expanding full symbols" is
emitted after the "Reading symbols" message, and the regexp corresponding to
the FAIL only allows the first message.
Fix this by allowing the extra message in the regexp.
gdb/testsuite/ChangeLog:
2019-06-11 Tom de Vries <tdevries@suse.de>
PR testsuite/24521
* gdb.multi/remove-inferiors.exp: Allow "Expanding full symbols"
message.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove linux-waitpid.c debugging code
@ 2019-06-11 15:37 sergiodj+buildbot
2019-06-11 15:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 15:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1c7fe9515dc1e8aa6378075ef56a646c1efdf7f5 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1c7fe9515dc1e8aa6378075ef56a646c1efdf7f5
Remove linux-waitpid.c debugging code
The debugging code in linux-waitpid.c is one of the few remaining
spots that depends on the gdb/gdbserver difference.
My first thought was that this code is not extremely useful, so this
patch removes this code. (However, if it is actually useful to
someone, we could make it work by introducing a new abstraction.)
gdb/ChangeLog
2019-06-11 Tom Tromey <tom@tromey.com>
* nat/linux-waitpid.c: Don't include server.h.
(linux_debug): Remove.
(my_waitpid): Update.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table.
@ 2019-06-12 21:16 sergiodj+buildbot
2019-06-12 21:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 21:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701 ***
Author: Adam Lackorzymski <adam@os.inf.tu-dresden.de>
Branch: master
Commit: 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701
Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table.
PR 24643
* elf32-arm.c (arm_elf_find_function): Fail if the symol table is
absent, or the bfd is not in the ELF formart.
* elfnn-aarch64.c (aarch64_elf_find_function): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove the ldmx mnemonic that never made it into POWER9.
@ 2019-06-12 22:32 sergiodj+buildbot
2019-06-12 22:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 22:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6fbc939cfdbdf02f205c20925583738b0f835e62 ***
Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: 6fbc939cfdbdf02f205c20925583738b0f835e62
Remove the ldmx mnemonic that never made it into POWER9.
opcodes/
* ppc-opc.c (powerpc_opcodes) <ldmx>: Delete mnemonic.
gas/
* testsuite/gas/ppc/power9.d: Delete ldmx tests.
* testsuite/gas/ppc/power9.s: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-06-12 22:32 [binutils-gdb] Remove the ldmx mnemonic that never made it into POWER9 sergiodj+buildbot
@ 2019-06-12 22:38 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 22:38 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10177>
Commit(s) tested:
6fbc939cfdbdf02f205c20925583738b0f835e62
Author(s) (in the same order as the commits):
Peter Bergner <bergner@linux.ibm.com>
Subject:
Remove the ldmx mnemonic that never made it into POWER9.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/6f/6fbc939cfdbdf02f205c20925583738b0f835e62/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=34c43033>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=34c43033>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] opcodes/or1k: Regenerate opcodes
@ 2019-06-12 23:45 sergiodj+buildbot
2019-06-12 23:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 23:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e4c4ac46e8e7ef92311181f85b193af369897151 ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: e4c4ac46e8e7ef92311181f85b193af369897151
opcodes/or1k: Regenerate opcodes
This picks up changes for:
- new orfpx64a32 spec additions
- new unordered instructions
- symbol and documentation updates
opcodes/ChangeLog:
* or1k-asm.c: Regenerated.
* or1k-desc.c: Regenerated.
* or1k-desc.h: Regenerated.
* or1k-dis.c: Regenerated.
* or1k-ibld.c: Regenerated.
* or1k-opc.c: Regenerated.
* or1k-opc.h: Regenerated.
* or1k-opinst.c: Regenerated.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix latent bug in custom word point completion handling
@ 2019-06-13 0:53 sergiodj+buildbot
2019-06-13 0:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 0:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 00b56dbe7016bc33f882525a47faab943fdeda9a ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 00b56dbe7016bc33f882525a47faab943fdeda9a
Fix latent bug in custom word point completion handling
Without this fix, if we switch the "print" completer to custom word
point handling, we regress gdb.base/completion.exp like this:
(gdb) p "break1.c FAIL: gdb.base/completion.exp: complete 'p "break1' (timeout)
The problem is that completing an expression that starts with double
quotes, and resolves to a filename, like this:
(gdb) p "break1[TAB]
would change from this, with current master:
(gdb) p "break1.c"|
^^^^^^^^^^|
\- cursor here
to this:
(gdb) p "break1.c |
^^^^^^^^^^|
\- quote replaced by space
The issue is that completer.c:advance_to_completion_word misses
telling the completion tracker to emulate readline's handling of
completing a string when rl_find_completion_word returns a delimiter.
This commit fixes the latent bug.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* completer.c (advance_to_completion_word): Handle delimiters.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix latent bug with custom word point completers
@ 2019-06-13 1:10 sergiodj+buildbot
2019-06-13 1:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 1:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3844e605e61777555aed09ab8ce88db2da95bc0b ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 3844e605e61777555aed09ab8ce88db2da95bc0b
Fix latent bug with custom word point completers
Completion routines that use a custom word point, and that then
recurse into complete_line (e.g., if we make "thread apply" a custom
word point completer, and complete on the command passed as argument),
we stumble on this latent bug:
(gdb) thread apply all pri[TAB]
(gdb) thread apply all priprint
The problem is that there's a spot in complete_line_internal_1 that
rewinds the completion word but does not reflect that change in the
custom word point in the tracker. This patch fixes it.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* completer.c (complete_line_internal_1): Rewind completion word
point.
(completion_tracker::advance_custom_word_point_by): Change
parameter type to int.
* completer.h (completion_tracker::advance_custom_word_point_by):
Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make check_for_argument skip whitespace after arg itself
@ 2019-06-13 1:34 sergiodj+buildbot
2019-06-13 1:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 1:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cbba3ecd36f0f861e4e810fbd5415c9759080cdc ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: cbba3ecd36f0f861e4e810fbd5415c9759080cdc
Make check_for_argument skip whitespace after arg itself
Basically every caller of check_for_argument needs to skip space after
the argument. This patch makes check_for_argument do it itself.
Suggested by Philippe Waroquiers.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* ax-gdb.c (agent_command_1): Remove skip_spaces call.
* breakpoint.c (watch_maybe_just_location): Remove skip_spaces
call.
* cli/cli-cmds.c (apropos_command): Remove skip_spaces call.
* cli/cli-utils.c (extract_info_print_args): Remove skip_spaces
calls.
(check_for_argument): Skip spaces after argument.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Allow "unlimited" abbreviations
@ 2019-06-13 1:56 sergiodj+buildbot
2019-06-13 1:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 1:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 93bcb04349eb500781747a542ececc7a8ba3bd95 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 93bcb04349eb500781747a542ececc7a8ba3bd95
Allow "unlimited" abbreviations
Currently we can abbreviate "on/off/enable/disable/yes/no" in boolean
settings,
(gdb) set non-stop of
(gdb) set non-stop en
we can abbreviate the items of enumeration commands,
(gdb) set print frame-arguments scal
(gdb) set scheduler-locking rep
but we cannot abbreviate "unlimited" in integer commands.
(gdb) set print elements u
No symbol "u" in current context.
This commit fixes that.
Testcases will be in gdb.base/settings.exp and gdb.base/options.exp,
in following patches.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* cli/cli-setshow.c (is_unlimited_literal): Allow abbreviations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix "set enum-command value junk"
@ 2019-06-13 2:04 sergiodj+buildbot
2019-06-13 2:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 2:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 48c410fb70fe09c036e27092880db687e5c2fb0b ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 48c410fb70fe09c036e27092880db687e5c2fb0b
Fix "set enum-command value junk"
With enum commands, we currently fail to notice junk after the value.
Currently:
(gdb) set print entry-values compact foo
(gdb) show print entry-values foo
Printing of function arguments at function entry is "compact".
After this fix:
(gdb) set print entry-values compact foo
Junk after item "compact": foo
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* cli/cli-setshow.c (do_set_command) <var_enum>: Detect junk
after item.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove "show" command completers, "set" command completers for string commands
@ 2019-06-13 2:25 sergiodj+buildbot
2019-06-13 2:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 2:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 597bf39df91c9a2e27cf1966dd4c942ac645ae33 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 597bf39df91c9a2e27cf1966dd4c942ac645ae33
Remove "show" command completers, "set" command completers for string commands
The default command completer is symbol_completer, but it makes no
sense for a "show" command to complete on symbols, or anything else,
really.
I wonder whether we should instead make the default be no completer.
That seems like a much larger/complicated audit/change, so I'd like to
move forward with this version, as it'll be covered by tests. I
noticed this because a following patch will add a new
gdb.base/settings.exp testcase that exercises all sorts of details of
settings commands, including completing the show commands, using new
representative "maint test-settings <type or settings command>"
commands.
Also remove the completer for var_string and var_string_noescape
commands. No point in completing symbols when GDB is expecting a
string.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* cli/cli-decode.c (add_setshow_cmd_full): Remove "show"
completer.
(add_setshow_string_cmd, add_setshow_string_noescape_cmd): Remove
"set" completers.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] New set/show testing framework (gdb.base/settings.exp)
@ 2019-06-13 2:36 sergiodj+buildbot
2019-06-13 2:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 2:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f
New set/show testing framework (gdb.base/settings.exp)
This commit adds new representative commands for all types of settings
commands supported by gdb (enum var_types), and then uses them to
exercise settings parsing and completion.
(gdb) maint test-settings s[TAB]
set show
(gdb) maint test-settings set [TAB]
auto-boolean integer uinteger
boolean optional-filename zinteger
enum string zuinteger
filename string-noescape zuinteger-unlimited
(gdb) maint test-settings set enum [TAB]
xxx yyy zzz
etc.
This is basically unit testing, except that it goes fully via GDB. It
must be done this way in order to exercise TAB completion properly,
which must go via readline.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* Makefile.in (COMMON_SFILES): Add maint-test-settings.c.
* NEWS: Mention maint test-settings KIND.
* maint-test-settings.c: New file.
gdb/doc/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Maintenance Commands): Document "maint
test-settings" commands.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/settings.c: New file.
* gdb.base/settings.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce generic command options framework
@ 2019-06-13 2:48 sergiodj+buildbot
2019-06-13 2:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 2:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d0faba9f52b898f0be539bc4d6fbd084772259d ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 9d0faba9f52b898f0be539bc4d6fbd084772259d
Introduce generic command options framework
This commit adds a generic command options framework, that makes it
easy enough to add '-'-style options to commands in a uniform way,
instead of each command implementing option parsing in its own way.
Options are defined in arrays of option_def objects (for option
definition), and the same options definitions are used for supporting
TAB completion, and also for generating the relevant help fragment of
the "help" command. See the gdb::options::build_help function, which
returns a string with the result of replacing %OPTIONS% in a template
string with an auto-generated "help" string fragment for all the
passed-in options.
Since most options in GDB are in the form of "-OPT", with a single
dash, this is the format that the framework supports.
I like to think of gdb's "-OPT" as the equivalent to getopt's long
options format ("--OPT"), and gdb's "/" as the equivalent to getopt's
short options format. getopt's short options format allows mixing
several one-character options, like "ls -als", kind of similar to
gdb's "x /FMT" and "disassemble /MOD", etc. While with gdb's "-"
options, the option is expected to have a full name, and to be
abbreviatable. E.g., "watch -location", "break -function main", etc.
This patch only deals with "-" options. The above comment serves more
to disclose why I don't think we should support mixing several
unrelated options in a single "-" option invocation, like "thread
apply -qcs" instead of "thread apply -q -c -s".
The following patches will add uses of the infrastructure to several
key commands. Most notably, "print", "compile print", "backtrace",
"frame apply" and "thread apply". I tried to add options to several
commands in order to make sure the framework didn't leave that many
open holes open.
Options use the same type as set commands -- enum var_types. So
boolean options are var_boolean, enum options are var_enum, etc. The
idea is to share code between settings commands and command options.
The "print" options will be based on the "set print" commands, and
their names will be the same. Actually, their definitions will be the
same too. There is a function to create "set/show" commands from an
array for option definitions:
/* Install set/show commands for options defined in OPTIONS. DATA is
a pointer to the structure that holds the data associated with the
OPTIONS array. */
extern void add_setshow_cmds_for_options (command_class cmd_class, void *data,
gdb::array_view<const option_def> options,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
That will be used by several following patches.
Other features:
- You can use the "--" delimiter to explicitly indicate end of
options. Several existing commands use this token sequence for
this effect already, so this just standardizes it.
- You can shorten option names, as long as unambiguous. Currently,
some commands allow this (e.g., break -function), while others do
not (thread apply all -ascending). As GDB allows abbreviating
command names and other things, it feels more GDB-ish to allow
abbreviating option names too, to me.
- For boolean options, 0/1 stands for off/on, just like with boolean
"set" commands.
- For boolean options, "true" is implied, just like with boolean "set
commands.
These are the option types supported, with a few examples:
- boolean options (var_boolean). The option's argument is optional.
(gdb) print -pretty on -- *obj
(gdb) print -pretty off -- *obj
(gdb) print -p -- *obj
(gdb) print -p 0 -- *obj
- flag options (like var_boolean, but no option argument (on/off))
(gdb) thread apply all -s COMMAND
- enum options (var_enum)
(gdb) bt -entry-values compact
(gdb) bt -e c
- uinteger options (var_uinteger)
(gdb) print -elements 100 -- *obj
(gdb) print -e 100 -- *obj
(gdb) print -elements unlimited -- *obj
(gdb) print -e u -- *obj
- zuinteger-unlimited options (var_zuinteger_unlimited)
(gdb) print -max-depth 100 -- obj
(gdb) print -max-depth -1 -- obj
(gdb) print -max-depth unlimited -- obj
Other var_types could be supported, of course. These were just the
types that I needed for the commands that I ported over, in the
following patches.
It was interesting (and unfortunate) to find that we need at least 3
different modes to cover the existing commands:
- Commands that require ending options with "--" if you specify any
option: "print" and "compile print".
- Commands that do not want to require "--", and want to error out if
you specify an unknown option (i.e., an unknown argument that starts
with '-'): "compile code" / "compile file".
- Commands that do not want to require "--", and want to process
unknown options themselves: "bt", because of "bt -COUNT",
"thread/frame apply", because "-" is a valid command.
The different behavior is encoded in the process_options_mode enum,
passed to process_options/complete_options.
For testing, this patch adds one representative maintenance command
for each of the process_options_mode values, that are used by the
testsuite to exercise the options framework:
(gdb) maint test-options require-delimiter
(gdb) maint test-options unknown-is-error
(gdb) maint test-options unknown-is-operand
and adds another command to help with TAB-completion testing:
(gdb) maint show test-options-completion-result
See their description at the top of the maint-test-options.c file.
Docs/NEWS are in a patch later in the series.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_CLI_SRCS): Add cli/cli-option.c.
(COMMON_SFILES): Add maint-test-settings.c.
* cli/cli-decode.c (boolean_enums): New global, factored out from
...
(add_setshow_boolean_cmd): ... here.
* cli/cli-decode.h (boolean_enums): Declare.
* cli/cli-option.c: New file.
* cli/cli-option.h: New file.
* cli/cli-setshow.c (parse_cli_boolean_value(const char **)): New,
factored out from ...
(parse_cli_boolean_value(const char *)): ... this.
(is_unlimited_literal): Change parameter type to pointer to
pointer. Adjust and advance ARG pointer.
(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
(parse_cli_var_enum): New, factored out from ...
(do_set_command): ... this. Adjust.
* cli/cli-setshow.h (parse_cli_boolean_value)
(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
(parse_cli_var_enum): Declare.
* cli/cli-utils.c: Include "cli/cli-option.h".
(get_ulongest): New.
* cli/cli-utils.h (get_ulongest): Declare.
(check_for_argument): New overloads.
* maint-test-options.c: New file.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/options.c: New file.
* gdb.base/options.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make "print" and "compile print" support -OPT options
@ 2019-06-13 2:53 sergiodj+buildbot
2019-06-13 2:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 2:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7d8062de98203eeec70d4439ab460b9ef50a2e0f ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 7d8062de98203eeec70d4439ab460b9ef50a2e0f
Make "print" and "compile print" support -OPT options
This patch adds support for "print -option optval --", etc.
Likewise for "compile print".
We'll get:
~~~~~~
(gdb) help print
Print value of expression EXP.
Usage: print [[OPTION]... --] [/FMT] [EXP]
Options:
-address [on|off]
Set printing of addresses.
-array [on|off]
Set pretty formatting of arrays.
-array-indexes [on|off]
Set printing of array indexes.
-elements NUMBER|unlimited
Set limit on string chars or array elements to print.
"unlimited" causes there to be no limit.
-max-depth NUMBER|unlimited
Set maximum print depth for nested structures, unions and arrays.
When structures, unions, or arrays are nested beyond this depth then they
will be replaced with either '{...}' or '(...)' depending on the language.
Use "unlimited" to print the complete structure.
-null-stop [on|off]
Set printing of char arrays to stop at first null char.
-object [on|off]
Set printing of C++ virtual function tables.
-pretty [on|off]
Set pretty formatting of structures.
-repeats NUMBER|unlimited
Set threshold for repeated print elements.
"unlimited" causes all elements to be individually printed.
-static-members [on|off]
Set printing of C++ static members.
-symbol [on|off]
Set printing of symbol names when printing pointers.
-union [on|off]
Set printing of unions interior to structures.
-vtbl [on|off]
Set printing of C++ virtual function tables.
Note: because this command accepts arbitrary expressions, if you
specify any command option, you must use a double dash ("--")
to mark the end of option processing. E.g.: "print -o -- myobj".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I want to highlight the comment above about "--".
At first, I thought we could make the print command parse the options,
and if the option wasn't recognized, fallback to parsing as an
expression. Then, if the user wanted to disambiguate, he'd use the
"--" option delimiter. For example, if you had a variable called
"object" and you wanted to print its negative, you'd have to do:
(gdb) print -- -object
After getting that working, I saw that gdb.pascal/floats.exp
regressed, in these tests:
gdb_test "print -r" " = -1\\.2(499.*|5|500.*)"
gdb_test "print -(r)" " = -1.2(499.*|5|500.*)"
gdb_test "print -(r + s)" " = -3\\.4(499.*|5|500.*)"
It's the first one that I found most concerning. It regressed because
"-r" is the abbreviation of "-raw". I realized then that the behavior
change was a bit risker than I'd like, considering scripts, wrappers
around gdb, etc., and even user expectation. So instead, I made the
print command _require_ the "--" options delimiter if you want to
specify any option. So:
(gdb) print -r
is parsed as an expression, and
(gdb) print -r --
is parsed as an option.
I noticed that that's also what lldb's expr (the equivalent of print)
does to handle the same problem.
Going back the options themselves, note that:
- you can shorten option names, as long as unambiguous.
- For boolean options, 0/1 stand for off/on.
- For boolean options, "true" is implied.
So these are all equivalent:
(gdb) print -object on -static-members off -pretty on -- foo
(gdb) print -object -static-members off -pretty -- foo
(gdb) print -object -static-members 0 -pretty -- foo
(gdb) print -o -st 0 -p -- foo
TAB completion is fully supported:
(gdb) p -[TAB]
-address -elements -pretty -symbol
-array -null-stop -repeats -union
-array-indexes -object -static-members -vtbl
Note that the code is organized such that some of the options and the
"set/show" commands code is shared. In particular, the "print"
options and the corresponding "set print" commands are defined with
the same structures. The commands are installed with the
gdb::option::add_setshow_cmds_for_options function.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* compile/compile.c: Include "cli/cli-option.h".
(compile_print_value): Scope data pointer is now a
value_print_options pointer; adjust.
(compile_print_command): Process options. Scope data pointer is
now a value_print_options pointer; adjust.
(_initialize_compile): Update "compile print"'s help to include
supported options. Install a completer for "compile print".
* cp-valprint.c (show_vtblprint, show_objectprint)
(show_static_field_print): Delete.
(_initialize_cp_valprint): Don't install "set print
static-members", "set print vtbl", "set print object" here.
* printcmd.c: Include "cli/cli-option.h" and
"common/gdb_optional.h".
(print_command_parse_format): Rework to fill in a
value_print_options instead of a format_data.
(print_value): Change parameter type from format_data pointer to
value_print_options reference. Adjust.
(print_command_1): Process options. Adjust to pass down a
value_print_options.
(print_command_completer): New.
(_initialize_printcmd): Install print_command_completer as
handle_brkchars completer for the "print" command. Update
"print"'s help to include supported options.
* valprint.c: Include "cli/cli-option.h".
(show_vtblprint, show_objectprint, show_static_field_print): Moved
here from cp-valprint.c.
(boolean_option_def, uinteger_option_def)
(value_print_option_defs, make_value_print_options_def_group):
New. Use gdb::option::add_setshow_cmds_for_options to install
"set print elements", "set print null-stop", "set print repeats",
"set print pretty", "set print union", "set print array", "set
print address", "set print symbol", "set print array-indexes".
* valprint.h: Include <string> and "cli/cli-option.h".
(make_value_print_options_def_group): Declare.
(print_value): Change parameter type from format_data pointer to
value_print_options reference.
(print_command_completer): Declare.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/options.exp: Build executable.
(test-print): New procedure.
(top level): Call it, once for "print" and another for "compile
print".
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb build with -std=gnu++11
@ 2019-06-13 10:19 sergiodj+buildbot
2019-06-13 10:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 10:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2
Fix gdb build with -std=gnu++11
The options framework series broken the build with gcc 4.8, or any
other compiler were we end up forcing -std=gnu++11, causing errors
like these:
../../binutils-gdb/gdb/compile/compile.c: In function gdb::option::option_def_group make_compile_options_def_group(compile_options*):
../../binutils-gdb/gdb/compile/compile.c:266:44: error: could not convert (const gdb::option::option_def*)(& compile_command_option_defs) from const gdb::option::option_def* to gdb::array_view<const gdb::option::option_def>
return {compile_command_option_defs, opts};
^
CXX copying.o
../../binutils-gdb/gdb/compile/compile.c:267:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
This is a C++11 vs C++14 difference -- C++14 relaxed the rules for
eliding braces.
This commit fixes it by adding the missing (in C++11) braces. Tested
with g++ 4.8.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* compile/compile.c (make_compile_options_def_group): Add braces
around array_view initializer.
* thread.c (make_thread_apply_all_options_def_group)
(make_thread_apply_all_options_def_group): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim/common: Wire in df/di conversion
@ 2019-06-13 14:06 sergiodj+buildbot
2019-06-13 14:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 14:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 688cea90bc0af3a0188695a25f5c4e8db4ef763b ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 688cea90bc0af3a0188695a25f5c4e8db4ef763b
sim/common: Wire in df/di conversion
Up until now these have not been used in any CGEN targets, add them as
they are now used by OpenRISC.
sim/common/ChangeLog:
* cgen-accfp.c (floatdidf, fixdfdi): New functions.
(cgen_init_accurate_fpu): Add floatdidf and fixdfdi.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim/common: wire up new unordered comparisons
@ 2019-06-13 14:32 sergiodj+buildbot
2019-06-13 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 14:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1cc84f59441d59827748e47a5971a12ed1ac283 ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: f1cc84f59441d59827748e47a5971a12ed1ac283
sim/common: wire up new unordered comparisons
Define and wire up unordered floating point comparison operations for cgen
targets. This patch depends on my posted cgen patches[0].
[0] https://www.sourceware.org/ml/cgen/2019-q2/msg00013.html
sim/common/ChangeLog:
yyyy-mm-dd Stafford Horne <shorne@gmail.com>
* cgen-accfp.c (unorderedsf, unordereddf): New functions.
(cgen_init_accurate_fpu): Wire up unorderedsf and unordereddf.
* cgen-fpu.h (cgen_fp_ops): Define fields unorderedsf and unordereddf.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares
@ 2019-06-13 15:25 sergiodj+buildbot
2019-06-13 15:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 15:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 57a63d27dcc8c7620f2168b370b649c7458c687e ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 57a63d27dcc8c7620f2168b370b649c7458c687e
sim/testsuite/or1k: Add tests for unordered compares
Add tests for 32-bit and 64-bit unordered compare instructions.
sim/testsuite/sim/or1k/ChangeLog:
yyyy-mm-dd Stafford Horne <shorne@gmail.com>
* fpu-unordered.S: New file.
* fpu64a32-unordered.S: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Regenerate with approved autotools version
@ 2019-06-14 6:59 sergiodj+buildbot
2019-06-14 7:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 6:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1
Regenerate with approved autotools version
bfd/
* Makefile.in: Regenerate.
* configure: Regenerate.
binutils/
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* doc/Makefile.in: Regenerate.
gas/
* Makefile.in: Regenerate.
* configure: Regenerate.
* doc/Makefile.in: Regenerate.
ld/
* Makefile.in: Regenerate.
* configure: Regenerate.
libctf/
* configure: Regenerate.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs
@ 2019-06-14 14:49 sergiodj+buildbot
2019-06-14 14:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 14:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26 ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26
Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs
These ilp32 relocations were missing for some reason.
bfd/ChangeLog:
* elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32.
include/ChangeLog:
* elf/aarch64.h (R_AARCH64_P32_MOVW_PREL_G0): Define.
(R_AARCH64_P32_MOVW_PREL_G0_NC): Define.
(R_AARCH64_P32_MOVW_PREL_G1): Define.
ld/ChangeLog:
* testsuite/ld-aarch64/aarch64-elf.exp: Add emit-relocs-22 and -23.
* testsuite/ld-aarch64/emit-relocs-22.d: New test.
* testsuite/ld-aarch64/emit-relocs-22.s: New test.
* testsuite/ld-aarch64/emit-relocs-23.d: New test.
* testsuite/ld-aarch64/emit-relocs-23.s: New test.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gdb.ada/vla.exp
@ 2019-06-14 14:49 sergiodj+buildbot
2019-06-14 14:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 14:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9a9e394b05a841bdd9163f280d7ef19cc65634d6 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 9a9e394b05a841bdd9163f280d7ef19cc65634d6
Fix gdb.ada/vla.exp
PR ada/24539 concerns a test failure in gdb.ada/vla.exp.
The problem here is that different versions of Gnat emit the
structure's fields in different orders -- with the order currently
failing actually being the correct one.
Joel pointed out that this can be fixed by simply adding the
No_Component_Reordering pragma to the type in question, which is what
this patch does.
I've reported a Gnat compiler bug internally in hopes of getting the
underlying problem fixed.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR ada/24539:
* gdb.ada/vla.exp: Update tests.
* gdb.ada/vla/vla.adb (Record_Type): Use No_Component_Reordering
pragma.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove alloca(0) calls
@ 2019-06-14 15:12 sergiodj+buildbot
2019-06-14 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 15:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT abdb711e0855f0597a96db0486b598144b788212 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: abdb711e0855f0597a96db0486b598144b788212
Remove alloca(0) calls
PR gdb/24653 points out that a gcc snapshot will complain about the
calls to alloca(0) in gdb.
These calls are only needed when using the C alloca. I'm inclined to
think that no current platform needs this, so this patch removes the
calls.
Let me know what you think.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR gdb/24653:
* regcache.c (registers_changed): Don't call alloca.
* top.c (execute_command): Don't call alloca.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Recognize _ in attribute names
@ 2019-06-14 15:48 sergiodj+buildbot
2019-06-14 16:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 15:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4268ec187d401b9b132afa1a13c73e0026a53c5d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 4268ec187d401b9b132afa1a13c73e0026a53c5d
Recognize _ in attribute names
Ada attribute names can contain "_", but the lexer currently does not
allow this -- even though the "attributes" array lists some attributes
spelled this way.
This patch fixes the bug and adds test cases for the existing
attributes.
This was reviewed off-list by Joel. I'm checking it in.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* ada-lex.l: Allow "_" in attribute names.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* gdb.ada/formatted_ref.exp (test_p_x_addr): Check
'unchecked_access and 'unrestricted_access as well.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c
@ 2019-06-14 16:19 sergiodj+buildbot
2019-06-14 16:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 16:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7c39e397aafaea64812f2611b061bdd50f30dce4 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7c39e397aafaea64812f2611b061bdd50f30dce4
gdb: Use scoped_restore_terminal_state in annotate.c
In a couple of places in annotate.c we are manually backing up and
restoring the terminal ownership, we could instead make use of
scoped_restore_terminal_state.
gdb/ChangeLog:
* annotate.c (annotate_breakpoints_invalid): Make use of
scoped_restore_terminal_state.
(annotate_frames_invalid): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-06-14 16:19 [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c sergiodj+buildbot
@ 2019-06-14 16:21 ` sergiodj+buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 16:21 UTC (permalink / raw)
To: gdb-testers
Buildslave:
rhel-7_1-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/RHEL-s390x-m64/builds/10220>
Commit(s) tested:
7c39e397aafaea64812f2611b061bdd50f30dce4
Author(s) (in the same order as the commits):
Andrew Burgess <andrew.burgess@embecosm.com>
Subject:
gdb: Use scoped_restore_terminal_state in annotate.c
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/RHEL-s390x-m64/7c/7c39e397aafaea64812f2611b061bdd50f30dce4/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
PASS -> FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: other threads ran - unlocked
============================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail?id=34c43033>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/RHEL-s390x-m64/xfails/master/xfail.table?id=34c43033>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Only compute realpath when basenames_may_differ is set
@ 2019-06-14 16:57 sergiodj+buildbot
2019-06-14 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 16:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a0c1ffedcf1988bc13fc5b6d57d3b74a17b60299 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: a0c1ffedcf1988bc13fc5b6d57d3b74a17b60299
Only compute realpath when basenames_may_differ is set
A user noted that, when sources are symlinked, gdb annotations will
print the real path, rather than the name of the symlink.
It seems to me that it is better to print the name of the file that
was actually used in the build, unless there is some reason not to.
This patch implements this, with the caveat that it will not work when
basenames-may-differ is enabled. The way this mode is currently
implemented, returning the symbolic (not real) path is not possible.
While I think it would be good to redo the source file name cache and
perhaps integrate it with class source_cache, I haven't done so here.
Regression tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* source.c (find_and_open_source): Respect basenames_may_differ.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* gdb.base/annotate-symlink.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Warn if add-symbol-file does not provide any symbols
@ 2019-06-14 22:55 sergiodj+buildbot
2019-06-14 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 22:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f568655424ad268c8c5df3f56e4e19a86b16623d ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: f568655424ad268c8c5df3f56e4e19a86b16623d
Warn if add-symbol-file does not provide any symbols
A user suggested that add-symbol-file ought to warn if the file does
not in fact provide any symbols. This seemed like a decent idea, so
this patch implements this idea.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* symfile.c (add_symbol_file_command): Remove obsolete comment.
Warn if symbol file does not provide any symbols.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* gdb.base/symfile-warn.exp: New file.
* gdb.base/symfile-warn.c: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Minor NEWS rearrangement
@ 2019-06-14 23:38 sergiodj+buildbot
2019-06-14 23:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 23:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 52ce35e2894e55cea94011dda6443be51e154f37 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 52ce35e2894e55cea94011dda6443be51e154f37
Minor NEWS rearrangement
I noticed that a NEWS item about Python scripting changes appeared
between an item about a convenience function and an item about a
convenience variable. I think it's better for the latter to be next
to each other.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* NEWS: Move convenience variable news above Python news.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Do not emit style escape sequences to log file
@ 2019-06-15 0:36 sergiodj+buildbot
2019-06-15 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 0:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0735b091aba72d4b35aebb671a02c5cb4a837fe9 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 0735b091aba72d4b35aebb671a02c5cb4a837fe9
Do not emit style escape sequences to log file
PR gdb/24502 requests that the "set logging" log file not contain
style escape sequences emitted by gdb.
This seemed like a reasonable request to me, so this patch implements
filtering for the log file.
This also updates a comment in ui-style.h that I noticed while writing
the patch.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR gdb/24502:
* ui-style.h (skip_ansi_escape): Update comment.
* ui-file.h (class no_terminal_escape_file): New class.
* ui-file.c (no_terminal_escape_file::write)
(no_terminal_escape_file::puts): New methods.
* cli/cli-logging.c (handle_redirections): Use
no_terminal_escape_file.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
PR gdb/24502:
* gdb.base/style-logging.exp: New file.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove file path from test name
@ 2019-06-15 22:01 sergiodj+buildbot
2019-06-15 22:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 22:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9
gdb: Remove file path from test name
Having paths in test names makes comparing sum files difficult, rename
a test to avoid paths in test names.
gdb/testsuite/ChangeLog:
* gdb.base/style-logging.exp: Remove path from test name.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: New function to open source file and compute line charpos data
@ 2019-06-15 22:42 sergiodj+buildbot
2019-06-15 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 22:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 00df30ae1ea6db8f3693cad8a499f55f1d66e913 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 00df30ae1ea6db8f3693cad8a499f55f1d66e913
gdb: New function to open source file and compute line charpos data
Every place that a symtab's line_charpos data is loaded always follows
the same pattern, so create a new function to contain this logic and
make use of it throughout GDB.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* source-cache.c (source_cache::get_plain_source_lines): Use
open_source_file_with_line_charpos instead of just
open_source_file, remove call to find_source_lines.
(source_cache::get_source_lines): Likewise.
* source.c (find_source_lines): Make static.
(get_filename_and_charpos): Renamed into...
(open_source_file_with_line_charpos): ..this along with changes to
return a scoped_fd, and some other minor clean ups.
(identify_source_line): Use open_source_file_with_line_charpos.
(search_command_helper): Use open_source_file_with_line_charpos
instead of just open_source_file, remove call to
find_source_lines.
* source.h (open_source_file_with_line_charpos): Declare new
function.
(find_source_lines): Delete declaration.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove an update of current_source_line and current_source_symtab
@ 2019-06-15 23:07 sergiodj+buildbot
2019-06-15 23:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 23:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0d3abd8cc936360f8c46502135edd2e646473438 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0d3abd8cc936360f8c46502135edd2e646473438
gdb: Remove an update of current_source_line and current_source_symtab
While reviewing some of the annotation code I noticed that
identify_source_line (in source.c) sets current_source_line,
current_source_symtab, and also calls clear_lines_listed_range. This
seems a little strange, identify_source_line is really a wrapper
around annotate_source, and is only called when annotation_level is
greater than 0 (so annotations are turned on).
It seems weird (to me) that when annotations are on we update GDB's
idea of the "current" line/symtab, but when they are off we don't,
given that annotations are really about communicating GDB's state to a
user (GUI) and surely shouldn't be changing GDB's behaviour.
This commit removes from identify_source_line all of the setting of
current line/symtab and the call to clear_lines_listed_range, after
doing this GDB still passes all tests, so I don't believe these lines
were actually required.
With this code removed identify_source_line is only a wrapper around
annotate_source, so I moved identify_source_line to annotate.c and
renamed it to annotate_source_line.
gdb/ChangeLog:
* annotate.c: Add 'source.h' and 'objfiles.h' includes.
(annotate_source): Make static.
(annotate_source_line): Moved from source.c and renamed from
identify_source_line. Update the return type.
* annotate.h (annotate_source): Delete declaration.
(annotate_source_line): Declaration moved from source.h, and
renamed from identify_source_line. Return type updated.
* source.c (identify_source_line): Moved to annotate.c and renamed
to annotate_source_line.
(info_line_command): Remove check of annotation_level.
* source.h (identify_source_line): Move declaration to annotate.h
and rename to annotate_source_line.
* stack.c: Add 'annotate.h' include.
(print_frame_info): Remove check of annotation_level before
calling annotate_source_line.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/mi: New commands to catch C++ exceptions
@ 2019-06-16 0:13 sergiodj+buildbot
2019-06-16 0:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 0:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 30056ea04ae3ecd828e2a06e12e6f174ae6659c9 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 30056ea04ae3ecd828e2a06e12e6f174ae6659c9
gdb/mi: New commands to catch C++ exceptions
Adds some MI commands to catch C++ exceptions. The new commands are
-catch-throw, -catch-rethrow, and -catch-catch, these all correspond
to the CLI commands 'catch throw', 'catch rethrow', and 'catch catch'.
Each MI command takes two optional arguments, '-t' has the effect of
calling 'tcatch' instead of 'catch', for example:
(gdb)
-catch-throw -t
Is the same as:
(gdb) tcatch throw
There is also a '-r REGEXP' argument that can supply a regexp to match
against the exception type, so:
(gdb)
-catch-catch -r PATTERN
Is the same as:
(gdb) catch catch PATTERN
The change in print_mention_exception_catchpoint might seem a little
strange; changing the output from using ui_out::field_int and
ui_out::text to using ui_out::message.
The print_mention_exception_catchpoint is used as the 'print_mention'
method for the exception catchpoint breakpoint object. Most of the
other 'print_mention' methods (see breakpoint.c) use either
printf_filtered, of ui_out::message. Using field_int was causing an
unexpected field to be added to the MI output. Here's the output
without the change in print_mention_exception_catchpoint:
(gdb)
-catch-throw
^done,bkptno="1",bkpt={number="1",type="breakpoint",disp="keep",
enabled="y",addr="0x00000000004006c0",
what="exception throw",catch-type="throw",
thread-groups=["i1"],times="0"}
Notice the breakpoint number appears in both the 'bkptno' field, and
the 'number' field within the 'bkpt' tuple. Here's the output with
the change in print_mention_exception_catchpoint:
(gdb)
-catch-throw
^done,bkpt={number="1",type="breakpoint",disp="keep",
enabled="y",addr="0x00000000004006c0",
what="exception throw",catch-type="throw",
thread-groups=["i1"],times="0"}
gdb/ChangeLog:
* NEWS: Mention new MI commands.
* break-catch-throw.c (enum exception_event_kind): Move to
breakpoint.h.
(print_mention_exception_catchpoint): Output text as a single
message.
(catch_exception_command_1): Rename to...
(catch_exception_event): ...this, make non-static, update header
command, and change some parameter types.
(catch_catch_command): Update for changes to
catch_exception_command_1.
(catch_throw_command): Likewise.
(catch_rethrow_command): Likewise.
* breakpoint.c (enum exception_event_kind): Delete.
* breakpoint.h (enum exception_event_kind): Moved here from
break-catch-throw.c.
(catch_exception_event): Declare.
* mi/mi-cmd-catch.c (mi_cmd_catch_exception_event): New function.
(mi_cmd_catch_throw): New function.
(mi_cmd_catch_rethrow): New function.
(mi_cmd_catch_catch): New function.
* mi/mi-cmds.c (mi_cmds): Add 'catch-throw', 'catch-rethrow', and
'catch-catch' entries.
* mi/mi-cmds.h (mi_cmd_catch_throw): Declare.
(mi_cmd_catch_rethrow): Declare.
(mi_cmd_catch_catch): Declare.
gdb/doc/ChangeLog:
* gdb.texinfo (GDB/MI Catchpoint Commands): Add menu entry to new
node.
(C++ Exception GDB/MI Catchpoint Commands): New node to describe
new MI commands.
gdb/testsuite/ChangeLog:
* gdb.mi/mi-catch-cpp-exceptions.cc: New file.
* gdb.mi/mi-catch-cpp-exceptions.exp: New file.
* lib/mi-support.exp (mi_expect_stop): Handle 'exception-caught'
as a stop reason.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/fortran: Show the type for non allocated / associated types
@ 2019-06-16 1:15 sergiodj+buildbot
2019-06-16 1:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 1:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 584a927c5ad0d18e9995a0049066b6c503bb7482 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 584a927c5ad0d18e9995a0049066b6c503bb7482
gdb/fortran: Show the type for non allocated / associated types
Show the type of not-allocated and/or not-associated types. For array
types and pointer to array types we are going to print the number of
ranks.
Consider this Fortran program:
program test
integer, allocatable :: vla (:)
logical l
allocate (vla(5:12))
l = allocated (vla)
end program test
And this GDB session with current HEAD:
(gdb) start
...
2 integer, allocatable :: vla (:)
(gdb) n
4 allocate (vla(5:12))
(gdb) ptype vla
type = <not allocated>
(gdb) p vla
$1 = <not allocated>
(gdb)
And the same session with this patch applied:
(gdb) start
...
2 integer, allocatable :: vla (:)
(gdb) n
4 allocate (vla(5:12))
(gdb) ptype vla
type = integer(kind=4), allocatable (:)
(gdb) p vla
$1 = <not allocated>
(gdb)
The type of 'vla' is now printed correctly, while the value itself
still shows as '<not allocated>'. How GDB prints the type of
associated pointers has changed in a similar way.
gdb/ChangeLog:
* f-typeprint.c (f_print_type): Don't return early for not
associated or not allocated types.
(f_type_print_varspec_suffix): Add print_rank parameter and print
ranks of array types in case they dangling.
(f_type_print_base): Add print_rank parameter.
gdb/testsuite/ChangeLog:
* gdb.fortran/pointers.f90: New file.
* gdb.fortran/print_type.exp: New file.
* gdb.fortran/vla-ptype.exp: Adapt expected results.
* gdb.fortran/vla-type.exp: Likewise.
* gdb.fortran/vla-value.exp: Likewise.
* gdb.mi/mi-vla-fortran.exp: Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make gdb.base/index-cache.exp work with readnow board (PR 24669)
@ 2019-06-16 16:27 sergiodj+buildbot
2019-06-16 16:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 16:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 399aaebd1a5e9e3971758396bd0c5c3ec5ae2386 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 399aaebd1a5e9e3971758396bd0c5c3ec5ae2386
Make gdb.base/index-cache.exp work with readnow board (PR 24669)
The gdb.base/index-cache.exp test fails with the readnow board:
$ make check TESTS="gdb.base/index-cache.exp" RUNTESTFLAGS="--target_board=readnow"
FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: at least one file was created
FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: expected file is there
FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: check index-cache stats
FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats
The problem is similar to what was fixed in
5a56d6a65f84 ("[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}")
In that commit, gdb.base/index-cache.exp was modified to account for the
fact that the index cache is not used when the binary already has an
embedded index.
The same situation happens when GDB is started with the -readnow flag:
it bypasses indices and partial symbols. So this patch updates the test
to also expect the index cache not to be used if -readnow is present in
$GDBFLAGS,
gdb/testsuite/ChangeLog:
PR gdb/24669
* gdb.base/index-cache.exp (uses_readnow,
expecting_index_cache_use): Define global variable.
(test_cache_enabled_miss, test_cache_enabled_hit): Use
expecting_index_cache_use.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some NULL checks from the TUI
@ 2019-06-16 16:53 sergiodj+buildbot
2019-06-16 17:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 16:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 730ead81dfffc181f79a4b79ba8abf6850e63596 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 730ead81dfffc181f79a4b79ba8abf6850e63596
Remove some NULL checks from the TUI
I found a few spots in the TUI that were NULL-checking the result of
XNEW. This cannot return NULL, so this patch removes the checks.
gdb/ChangeLog
2019-06-16 Tom Tromey <tom@tromey.com>
* tui/tui-data.c (tui_alloc_generic_win_info)
(tui_alloc_win_info, tui_add_content_elements): Remove NULL
checks.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Improve detection of bug gdb/24541
@ 2019-06-16 17:15 sergiodj+buildbot
2019-06-16 17:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 17:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 93cb9841d68263174a600dc70af742a8e2eabfc6 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 93cb9841d68263174a600dc70af742a8e2eabfc6
gdb/testsuite: Improve detection of bug gdb/24541
In bug gdb/24686 a testsuite failure was reported, this failure was
actually just another instance of bug gdb/24541, however, due to the
non-deterministic nature of bug gdb/24541 the testsuite pattern that
was intended to catch this bug failed.
This commit adds a second pattern to help detect gdb/24541, which
should change the FAIL reported in gdb/24686 into a KFAIL.
gdb/testsuite/ChangeLog:
PR gdb/24686
* gdb.mi/mi-catch-cpp-exceptions.exp: Add an extra pattern to
improve detection of bug gdb/24541.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove unnecessary casts of NULL
@ 2019-06-16 18:17 sergiodj+buildbot
2019-06-16 18:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 18:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cafb34387d063fa47bc2cdb33fc3fe2f13e6cec0 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cafb34387d063fa47bc2cdb33fc3fe2f13e6cec0
Remove unnecessary casts of NULL
I noticed some unnecessary casts of NULL. This removes all the
unnecessary ones, leaving only ones where we must ensure that NULL has
pointer type for passing through varargs.
I removed a couple of useless casts of 0 that I noticed while writing
this.
Tested by rebuilding.
gdb/ChangeLog
2019-06-16 Tom Tromey <tom@tromey.com>
* valops.c (value_cast, value_slice): Remove unnecessary cast.
* breakpoint.c (stopin_command, stopat_command)
(until_break_command, decode_location_default): Remove unnecessary
cast.
* utils.c (subset_compare): Remove unnecessary cast.
* ada-lang.c (ada_update_initial_language): Remove unnecessary
cast.
* linespec.c (decode_line_with_last_displayed): Remove unnecessary
cast.
* infcmd.c (path_command): Remove unnecessary cast.
* coffread.c (decode_type): Remove unnecessary cast.
* xcoffread.c (read_xcoff_symtab): Remove unnecessary cast.
* mipsread.c (mipscoff_symfile_read): Remove unnecessary cast.
* tui/tui-stack.c (tui_show_locator_content)
(tui_show_frame_info): Remove unnecessary cast.
* tui/tui-win.c (tui_scroll_forward_command)
(tui_scroll_backward_command, tui_set_focus, tui_set_win_height)
(parse_scrolling_args): Remove unnecessary cast.
* tui/tui-data.c (init_win_info, tui_del_window)
(tui_free_window, tui_del_data_windows, tui_free_data_content)
(free_content_elements): Remove unnecessary cast.
* tui/tui-windata.c (tui_first_data_item_displayed): Remove
unnecessary cast.
* tui/tui-source.c (tui_set_source_content)
(tui_vertical_source_scroll): Remove unnecessary cast.
* tui/tui-layout.c (tui_default_win_height): Remove unnecessary
cast.
* tui/tui-io.c (tui_initialize_io): Remove unnecessary cast.
* tui/tui-regs.c (tui_display_registers_from)
(tui_display_register): Remove unnecessary cast.
* tui/tui-wingeneral.c (tui_refresh_win, tui_delete_win)
(tui_unhighlight_win, tui_highlight_win, tui_make_window)
(make_visible): Remove unnecessary cast.
* tui/tui-winsource.c (tui_erase_source_content)
(tui_update_breakpoint_info, tui_set_exec_info_content): Remove
unnecessary cast.
* ax-gdb.c (agent_command_1): Remove unnecessary cast.
* cli/cli-setshow.c (cmd_show_list): Remove unnecessary cast.
* stabsread.c (read_type, read_array_type, read_range_type):
Remove unnecessary cast.
* mdebugread.c (mdebug_build_psymtabs): Remove unnecessary cast.
(parse_symbol, parse_type, upgrade_type, parse_external)
(parse_partial_symbols, psymtab_to_symtab_1, cross_ref): Remove
unnecessary cast.
* gdb_bfd.c (gdb_bfd_map_section): Remove unnecessary cast.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace uses of concat with xstrdup
@ 2019-06-16 18:41 sergiodj+buildbot
2019-06-16 18:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 18:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 395f9c911460b3e868c0b700e831c7f92746fad7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 395f9c911460b3e868c0b700e831c7f92746fad7
Replace uses of concat with xstrdup
I noticed a couple of spots using concat that could use xstrdup
instead. This patch fixes these.
gdb/ChangeLog
2019-06-16 Tom Tromey <tom@tromey.com>
* coffread.c (process_coff_symbol): Use xstrdup.
* value.c (create_internalvar): Use xstrdup.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Remove unused signal mask
@ 2019-06-16 20:27 sergiodj+buildbot
2019-06-16 20:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 20:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bf5142e7fef4e2eca5d98cf805dbadc737118c1e ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: bf5142e7fef4e2eca5d98cf805dbadc737118c1e
gdb: Remove unused signal mask
In the following commit:
commit 7feb7d068ae65557ede03c36468ebac61b0939ca
Date: Mon May 11 12:08:03 2009 +0000
The last useful uses of normal_mask in linux-nat.c were removed, since
then this variable has sat around being initialised, but never used.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* linux-nat.c (normal_mask): Delete.
(_initialize_linux_nat): Don't initialise normal_mask.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't cast a tui_win_info directly to tui_gen_win_info
@ 2019-06-16 21:57 sergiodj+buildbot
2019-06-16 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 21:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 431b3eadc4f842231d404e7e995ae5c1dbd28414 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 431b3eadc4f842231d404e7e995ae5c1dbd28414
Don't cast a tui_win_info directly to tui_gen_win_info
I found a few spots that directly cast a tui_win_info to a
tui_gen_win_info. However, I think it's a bit better here to take the
address of the "generic" member. As far as I know, nothing relies on
being able to downcast here, so this gives us the freedom to rearrange
the structure.
gdb/ChangeLog
2019-06-16 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win)
(make_all_visible): Use address of member.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/contrib] Fix gdb/contrib/gdb-add-index.sh for dwz-m-ed execs
@ 2019-06-17 1:14 sergiodj+buildbot
2019-06-17 1:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-17 1:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2b9f6e89d67b342593734d14f328625848fa5156 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 2b9f6e89d67b342593734d14f328625848fa5156
[gdb/contrib] Fix gdb/contrib/gdb-add-index.sh for dwz-m-ed execs
Atm gdb-add-index.exp fails with target board cc-with-dwz-m.
Fix this by updating gdb/contrib/gdb-add-index.sh to handle a dwz-m-ed
executable.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-06-16 Tom de Vries <tdevries@suse.de>
PR gdb/24445
* contrib/gdb-add-index.sh: Update to handle dwz-m-ed executable.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal
@ 2019-06-17 18:56 sergiodj+buildbot
2019-06-17 18:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-17 18:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 39c05d9435893ed0b51c4b5c8e95fe977b983921 ***
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Branch: master
Commit: 39c05d9435893ed0b51c4b5c8e95fe977b983921
aarch64: remove unnecessary loc_hash_table traversal
The loc_hash_table should only contain local ifunc symbols. The current
code already aborts if there is anything else and for defined ifunc
symbols elfNN_aarch64_allocate_dynrelocs is a no-op.
bfd/ChangeLog:
* elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove.
(elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal
with elfNN_aarch64_allocate_local_dynrelocs.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX
@ 2019-06-17 19:36 sergiodj+buildbot
2019-06-17 19:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-17 19:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc
i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX
Since not all vector lengths are supported by vshufXXX, vinsertXXX and
vextractXXX, decode them only with supported vector lengths.
gas/
PR binutils/24691
* testsuite/gas/i386/disassem.s: Add test for vshuff32x4 with
invalid vector length.
* testsuite/gas/i386/x86-64-disassem.s: Likewise.
* testsuite/gas/i386/disassem.d: Updated.
* testsuite/gas/i386/x86-64-disassem.d: Likewise.
opcodes/
PR binutils/24691
* i386-dis-evex.h (evex_table): Update EVEX_W_0F3A23_P_2,
EVEX_W_0F3A38_P_2, EVEX_W_0F3A39_P_2, EVEX_W_0F3A3A_P_2,
EVEX_W_0F3A3B_P_2 and EVEX_W_0F3A43_P_2.
(evex_len_table): Add EVEX_LEN_0F3A23_P_2_W_0,
EVEX_LEN_0F3A23_P_2_W_1, EVEX_LEN_0F3A38_P_2_W_0,
EVEX_LEN_0F3A38_P_2_W_1, EVEX_LEN_0F3A39_P_2_W_0,
EVEX_LEN_0F3A39_P_2_W_1, EVEX_LEN_0F3A3A_P_2_W_0,
EVEX_LEN_0F3A3A_P_2_W_1, EVEX_LEN_0F3A3B_P_2_W_0,
EVEX_LEN_0F3A3B_P_2_W_1, EVEX_LEN_0F3A43_P_2_W_0 and
EVEX_LEN_0F3A43_P_2_W_1.
* i386-dis.c (EVEX_LEN_0F3A23_P_2_W_0): New enum.
(EVEX_LEN_0F3A23_P_2_W_1): Likewise.
(EVEX_LEN_0F3A38_P_2_W_0): Likewise.
(EVEX_LEN_0F3A38_P_2_W_1): Likewise.
(EVEX_LEN_0F3A39_P_2_W_0): Likewise.
(EVEX_LEN_0F3A39_P_2_W_1): Likewise.
(EVEX_LEN_0F3A3A_P_2_W_0): Likewise.
(EVEX_LEN_0F3A3A_P_2_W_1): Likewise.
(EVEX_LEN_0F3A3B_P_2_W_0): Likewise.
(EVEX_LEN_0F3A3B_P_2_W_1): Likewise.
(EVEX_LEN_0F3A43_P_2_W_0): Likewise.
(EVEX_LEN_0F3A43_P_2_W_1): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix heap-buffer-overflow in child_path
@ 2019-06-18 7:53 sergiodj+buildbot
2019-06-18 7:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 7:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 310b3441a07cb07713a8065a39032504e098047b ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 310b3441a07cb07713a8065a39032504e098047b
[gdb] Fix heap-buffer-overflow in child_path
When compiling gdb with '-lasan -fsanitizer=address' and running tests with:
- export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0", and
- a target board using local-board.exp, which sets sysroot to ""
we run into a heap-buffer-overflow in child_path for f.i. gdb.arch/amd64-byte:
...
==3997==ERROR: AddressSanitizer: heap-buffer-overflow on address \
0x60200002abcf at pc 0x5602acdf6872 bp 0x7ffe5237a090 sp 0x7ffe5237a080
READ of size 1 at 0x60200002abcf thread T0
#0 0x5602acdf6871 in child_path(char const*, char const*) \
gdb/common/pathstuff.c:161
#1 0x5602adb06587 in find_separate_debug_file gdb/symfile.c:1483
#2 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \
gdb/symfile.c:1563
#3 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293
#4 0x5602adb01cfa in read_symbols gdb/symfile.c:798
#5 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000
#6 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017
#7 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124
#8 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/symfile.c:1204
#9 0x5602ada5a78d in solib_read_symbols(...) gdb/solib.c:695
#10 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004
#11 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394
#12 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028
#13 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215
#14 0x5602ad347f66 in post_create_inferior(target_ops*, int) \
gdb/infcmd.c:467
#15 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663
#16 0x5602ad348e55 in run_command gdb/infcmd.c:686
#17 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106
#18 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \
gdb/cli/cli-decode.c:1892
#19 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630
#20 0x5602ad5053e6 in catch_command_errors gdb/main.c:372
#21 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138
#22 0x5602ad5081ec in captured_main gdb/main.c:1163
#23 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188
#24 0x5602ac9ddc3a in main gdb/gdb.c:32
#25 0x7f582b56eb96 in __libc_start_main \
(/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#26 0x5602ac9dda09 in _start \
(/home/smarchi/build/binutils-gdb/gdb/gdb+0x19a2a09)
0x60200002abcf is located 1 bytes to the left of 1-byte region \
[0x60200002abd0,0x60200002abd1)
allocated by thread T0 here:
#0 0x7f582e0e4b50 in __interceptor_malloc \
(/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
#1 0x5602acdd3656 in xmalloc gdb/common/common-utils.c:44
#2 0x5602aefe17d1 in xstrdup libiberty/xstrdup.c:34
#3 0x5602acdf61f6 in gdb_realpath(char const*) gdb/common/pathstuff.c:80
#4 0x5602adb06278 in find_separate_debug_file gdb/symfile.c:1444
#5 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \
gdb/symfile.c:1563
#6 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293
#7 0x5602adb01cfa in read_symbols gdb/symfile.c:798
#8 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000
#9 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017
#10 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124
#11 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/solib.c:695
#13 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004
#14 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394
#15 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028
#16 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215
#17 0x5602ad347f66 in post_create_inferior(target_ops*, int) \
gdb/infcmd.c:467
#18 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663
#19 0x5602ad348e55 in run_command gdb/infcmd.c:686
#20 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106
#21 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \
gdb/cli/cli-decode.c:1892
#22 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630
#23 0x5602ad5053e6 in catch_command_errors gdb/main.c:372
#24 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138
#25 0x5602ad5081ec in captured_main gdb/main.c:1163
#26 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188
#27 0x5602ac9ddc3a in main gdb/gdb.c:32
#28 0x7f582b56eb96 in __libc_start_main \
(/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
SUMMARY: AddressSanitizer: heap-buffer-overflow gdb/common/pathstuff.c:161 \
in child_path(char const*, char const*)
Shadow bytes around the buggy address:
0x0c047fffd520: fa fa fd fd fa fa fd fd fa fa fd fa fa fa fd fa
0x0c047fffd530: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
0x0c047fffd540: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
0x0c047fffd550: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fa
0x0c047fffd560: fa fa fd fa fa fa fd fa fa fa fd fa fa fa 00 00
=>0x0c047fffd570: fa fa 07 fa fa fa 00 fa fa[fa]01 fa fa fa fa fa
0x0c047fffd580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffd590: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffd5a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffd5b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffd5c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==3997==ABORTING
...
The direct cause is that child_path gets called with parent == "", so this
test:
...
if (IS_DIR_SEPARATOR (parent[parent_len - 1]))
...
accesses parent[-1].
[ There is an open discussion (1) about whether an empty sysroot should indeed
be represented internally as "". But this patch focuses on fixing the
heap-buffer-overflow without any redesign. ]
Fix this by guarding the test with 'parent_len > 0'.
Note that the fix makes child_path behave the same for:
- parent == "/" && child == "/foo" (returns "foo")
- parent == "" and child == "/foo" (returns "foo").
Build and reg-tested on x86_64-linux.
(1) https://sourceware.org/ml/gdb-patches/2019-05/msg00193.html
gdb/ChangeLog:
2019-06-17 Tom de Vries <tdevries@suse.de>
PR gdb/24617
* common/pathstuff.c (child_path): Make sure parent_len > 0 before
accessing parent[parent_len - 1].
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add comment to list0.h
@ 2019-06-18 17:21 sergiodj+buildbot
2019-06-18 17:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 17:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d20ed5fd574ce1b72543c2963fa53946eb2225de ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d20ed5fd574ce1b72543c2963fa53946eb2225de
Add comment to list0.h
Pedro suggested adding a comment to list0.h to explain the control
character.
Tested on x86-64 Fedora 29.
gdb/testsuite/ChangeLog
2019-06-18 Tom Tromey <tromey@adacore.com>
* gdb.base/list0.h: Add comment explaining control character.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix clang buildbreaker
@ 2019-06-19 17:21 sergiodj+buildbot
2019-06-19 17:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 17:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8d6a48df549cce08ba1f05350f592be52352c7e8 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 8d6a48df549cce08ba1f05350f592be52352c7e8
[gdb] Fix clang buildbreaker
Building gdb with clang, I run into:
...
src/gdb/gdbserver/linux-low.c:6190:41: error: comparison of unsigned \
expression < 0 is always false [-Werror,-Wtautological-compare]
if (debug_write ("sigchld_handler\n",
sizeof ("sigchld_handler\n") - 1) < 0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
...
This regression is introduced by commit a7e559cc08 "gdbserver: Ensure all
debug output uses debug functions", which replaces calls to write with result
type ssize_t with calls to debug_write with result type size_t.
Fix this by making debug_write return ssize_t.
Build and reg-tested on x86_64-linux.
gdb/gdbserver/ChangeLog:
2019-06-19 Tom de Vries <tdevries@suse.de>
* debug.h (debug_write): Change return type to ssize_t.
* debug.c (debug_write): Same.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] i386: Check vector length for EVEX broadcast instructions
@ 2019-06-20 5:24 sergiodj+buildbot
2019-06-20 5:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-20 5:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f0a6222e30215d4b8ecb8124fe5ad4c3f321f8c4 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: f0a6222e30215d4b8ecb8124fe5ad4c3f321f8c4
i386: Check vector length for EVEX broadcast instructions
Since not all vector lengths are supported by EVEX broadcast instructions,
decode them only with supported vector lengths.
gas/
PR binutils/24700
* testsuite/gas/i386/disassem.s: Add test for vbroadcasti32x8
with invalid vector length.
* testsuite/gas/i386/x86-64-disassem.s: Likewise.
* testsuite/gas/i386/disassem.d: Updated.
* testsuite/gas/i386/x86-64-disassem.d: Likewise.
opcodes/
PR binutils/24700
* i386-dis-evex.h (evex_table): Update EVEX_W_0F3819_P_2,
EVEX_W_0F381A_P_2, EVEX_W_0F381B_P_2, EVEX_W_0F385A_P_2 and
EVEX_W_0F385B_P_2.
(evex_len_table): Add EVEX_LEN_0F3819_P_2_W_0,
EVEX_LEN_0F3819_P_2_W_1, EVEX_LEN_0F381A_P_2_W_0,
EVEX_LEN_0F381A_P_2_W_1, EVEX_LEN_0F381B_P_2_W_0,
EVEX_LEN_0F381B_P_2_W_1, EVEX_LEN_0F385A_P_2_W_0,
EVEX_LEN_0F385A_P_2_W_1, EVEX_LEN_0F385B_P_2_W_0 and
EVEX_LEN_0F385B_P_2_W_1.
* i386-dis.c (EVEX_LEN_0F3819_P_2_W_0): New enum.
(EVEX_LEN_0F3819_P_2_W_1): Likewise.
(EVEX_LEN_0F381A_P_2_W_0): Likewise.
(EVEX_LEN_0F381A_P_2_W_1): Likewise.
(EVEX_LEN_0F381B_P_2_W_0): Likewise.
(EVEX_LEN_0F381B_P_2_W_1): Likewise.
(EVEX_LEN_0F385A_P_2_W_0): Likewise.
(EVEX_LEN_0F385A_P_2_W_1): Likewise.
(EVEX_LEN_0F385B_P_2_W_0): Likewise.
(EVEX_LEN_0F385B_P_2_W_1): Likewise.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't declare tui_init_content_element
@ 2019-06-20 9:51 sergiodj+buildbot
2019-06-20 10:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-20 9:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e6a1c5cbcb9cee5a08d814669419936ee151b19d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e6a1c5cbcb9cee5a08d814669419936ee151b19d
Don't declare tui_init_content_element
I noticed that tui_init_content_element is declared but never defined.
This removes the declaration. Tested by rebuilding. (I should have
merged this with the previous patch but I had forgotten that I found
two of these.)
gdb/ChangeLog
2019-06-19 Tom Tromey <tom@tromey.com>
* tui/tui-data.h (tui_init_content_element): Don't declare.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build
@ 2019-06-21 7:56 sergiodj+buildbot
2019-06-21 8:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 7:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7d10623d3b153d6c15406b203fb1cf111c53f1dd ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 7d10623d3b153d6c15406b203fb1cf111c53f1dd
[gdbserver] Fix s390x -m31 gdbserver build
When building gdb on s390x with -m31, we run into this error:
...
gdb/gdbserver/linux-s390-ipa.c: \
In function 'const target_desc* get_ipa_tdesc(int)':
gdb/gdbserver/linux-s390-ipa.c:371:18: error: 's390_te_ft_collect_regmap' \
was not declared in this scope
SET_REGMAP(s390_te_ft_collect_regmap, 0);
The offending line is part of this code snippet:
...
case S390_TDESC_GS:
SET_REGMAP(s390_te_ft_collect_regmap, 0);
return tdesc_s390_gs_linux64;
...
introduced in commit ce29f8439f "S390: Make IPA recognize tdescs with guarded
storage".
The snippet is part of an #ifdef __s390x__ construct, in the false branch, and
in the true branch we find a snippet introduced by the same commit:
...
case S390_TDESC_GS:
SET_REGMAP(s390x_te_ft_collect_regmap, 0);
return tdesc_s390x_gs_linux64;
...
which is paired with a comment update for s390x_te_ft_collect_regmap:
...
-/* Used for s390x-te-linux64, s390x-tevx-linux64. */
+/* Used for s390x-te-linux64, s390x-tevx-linux64, and
+ s390x-gs-linux64. */
static const int s390x_te_ft_collect_regmap[] = {
...
A similar comment update is added in the same commit for
s390_te_linux64_ft_collect_regmap:
...
-/* Used for s390-te-linux64, s390-tevx-linux64. */
+/* Used for s390-te-linux64, s390-tevx-linux64, and s390-gs-linux64. */
static const int s390_te_linux64_ft_collect_regmap[] = {
...
but not paired with any update.
Fix the build breaker by making the offending SET_REGMAP use the regmap
indicated by the comment.
...
- SET_REGMAP(s390_te_ft_collect_regmap, 0);
+ SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
...
Build on s390x-linux with -m31.
gdb/gdbserver/ChangeLog:
2019-06-20 Tom de Vries <tdevries@suse.de>
* linux-s390-ipa.c (get_ipa_tdesc)[!__s390x__]: Use
s390_te_linux64_ft_collect_regmap for S390_TDESC_GS.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24689, string table corruption
@ 2019-06-21 12:52 sergiodj+buildbot
2019-06-21 12:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 12:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 890f750a3b053532a4b839a2dd6243076de12031 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 890f750a3b053532a4b839a2dd6243076de12031
PR24689, string table corruption
The testcase in the PR had a e_shstrndx section of type SHT_GROUP.
hdr->contents were initialized by setup_group rather than being read
from the file, thus last byte was not zero and string dereference ran
off the end of the buffer.
PR 24689
* elfcode.h (elf_object_p): Check type of e_shstrndx section.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: handle errors on dynhash insertion better
@ 2019-06-21 13:47 sergiodj+buildbot
2019-06-21 13:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 13:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 24865428034f44d9fffe6b2d9a318e1bd507c63a ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 24865428034f44d9fffe6b2d9a318e1bd507c63a
libctf: handle errors on dynhash insertion better
We were missing several cases where dynhash insertion might fail, likely
due to OOM but possibly for other reasons. Pass the errors on.
libctf/
* ctf-create.c (ctf_dtd_insert): Pass on error returns from
ctf_dynhash_insert.
(ctf_dvd_insert): Likewise.
(ctf_add_generic): Likewise.
(ctf_add_variable): Likewise.
* ctf-impl.h: Adjust declarations.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: drop mmap()-based CTF data allocator
@ 2019-06-21 14:04 sergiodj+buildbot
2019-06-21 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 14:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 65365aa856e5a258329dc350b02bbb51f84b4c16 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 65365aa856e5a258329dc350b02bbb51f84b4c16
libctf: drop mmap()-based CTF data allocator
This allocator has the ostensible benefit that it lets us mprotect() the
memory used for CTF storage: but in exchange for this it adds
considerable complexity, since we have to track allocation sizes
ourselves for use at freeing time, note whether the data we are storing
was ctf_data_alloc()ed or not so we know if we can safely mprotect()
it... and while the mprotect()ing has found few bugs, it *has* been the
cause of more than one due to errors in all this tracking leading to us
mprotect()ing bits of the heap and stuff like that.
We are about to start composing CTF buffers from pieces so that we can
do usage-based optimizations on the strtab. This means we need
realloc(), which needs nonportable mremap() and *more* tracking of the
*original* allocation size, and the complexity and bureaucracy of all of
this is just too high for its negligible benefits.
Drop the whole thing and just use malloc() like everyone else. It knows
better than we do when it is safe to use mmap() under the covers,
anyway.
While we're at it, don't leak the entire buffer if ctf_compress_write()
fails to compress it.
libctf/
* ctf-subr.c (_PAGESIZE): Remove.
(ctf_data_alloc): Likewise.
(ctf_data_free): Likewise.
(ctf_data_protect): Likewise.
* ctf-impl.h: Remove declarations.
* ctf-create.c (ctf_update): No longer call ctf_data_protect: use
ctf_free, not ctf_data_free.
(ctf_compress_write): Use ctf_data_alloc, not ctf_alloc. Free
the buffer again on compression error.
* ctf-open.c (ctf_set_base): No longer track the size: call
ctf_free, not ctf_data_free.
(upgrade_types): Likewise. Call ctf_alloc, not ctf_data_alloc.
(ctf_bufopen): Likewise. No longer call ctf_data_protect.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: dump header offsets into the debugging output
@ 2019-06-21 14:34 sergiodj+buildbot
2019-06-21 14:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 14:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 364620bf636a0a961892c9274616f8d5ad85eecc ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 364620bf636a0a961892c9274616f8d5ad85eecc
libctf: dump header offsets into the debugging output
This is an essential first piece of info needed to debug both libctf
writing and reading problems, and we weren't recording it anywhere!
(This is a short-term fix: fairly soon, we will record all of this in a
form that outlives ctf_bufopen, and then ctf_dump() will be able to dump
it like it can everything else.)
libctf/
* ctf-open.c (ctf_bufopen): Dump header offsets into the debugging
output.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] libctf: unidentified type kinds on open are a sign of file corruption
@ 2019-06-21 15:10 sergiodj+buildbot
2019-06-21 15:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 15:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0b4fa56e07639ed28cbbcd890868e01a82a5e45c ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 0b4fa56e07639ed28cbbcd890868e01a82a5e45c
libctf: unidentified type kinds on open are a sign of file corruption
If we see a CTF type with a kind we do not recognize in its ctt_info
during opening, we cannot skip it and continue opening the file: if the
type kind is unknown, we do not know how long its vlen is, and we cannot
have skipped past it: so if we continue reading we will almost certainly
read in part of the vlen as if it were a new ctf_type_t.
Avoid this trouble by considering unknown type kinds to be a reason to
return ECTF_CORRUPT, just like everything else that reads in type kinds
does.
libctf/
* ctf-open.c (ctf_types): Fail when unidentified type kinds are
seen.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix gnulib/update-gnulib.sh
@ 2019-06-21 15:22 sergiodj+buildbot
2019-06-21 15:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 15:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 70175d8d62178279d0fecce661b26a4f5b209fea ***
Author: Gary Benson <gbenson@redhat.com>
Branch: master
Commit: 70175d8d62178279d0fecce661b26a4f5b209fea
Fix gnulib/update-gnulib.sh
This commit fixes two paths in update-gnulib.sh that weren't updated
when gnulib was moved to toplevel.
gnulib/ChangeLog:
* update-gnulib.sh: Adjust paths.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add gnulib to gdb release tarball
@ 2019-06-21 15:45 sergiodj+buildbot
2019-06-21 15:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 15:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT be74b5b71481afe03aad074ad1951dcae152b97a ***
Author: Andreas Schwab <schwab@linux-m68k.org>
Branch: master
Commit: be74b5b71481afe03aad074ad1951dcae152b97a
Add gnulib to gdb release tarball
* src-release.sh (GDB_SUPPORT_DIRS): Add gnulib.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Mark ptype_union.exp as unsupported for cc-with-gdb-index
@ 2019-06-21 17:15 sergiodj+buildbot
2019-06-21 17:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 17:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b13a7d03c29e28bc0b38ce166ad1907403709d36 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: b13a7d03c29e28bc0b38ce166ad1907403709d36
[gdb/testsuite] Mark ptype_union.exp as unsupported for cc-with-gdb-index
When testing gdb with board cc-with-gdb-index, we run into:
...
FAIL: gdb.ada/ptype_union.exp: ptype global
FAIL: gdb.ada/ptype_union.exp: print global
...
The index is not supported for Ada (PR24713), and cc-with-gdb-index does not
add an index for Ada test-cases. However, this test-case compiles C sources,
for which cc-with-gdb-index does add an index. In gdb we load the executable
containing the index and set the language to Ada, resulting in gdb trying to
handle something that is not supported.
Fix the fail by marking this unsupported.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-06-21 Tom de Vries <tdevries@suse.de>
PR testsuite/24518
PR ada/24713
* gdb.ada/ptype_union.exp: Mark as unsupported if executable contains
index.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] dwarf2read: Use bool for dwarf2_section_info fields
@ 2019-06-21 20:25 sergiodj+buildbot
2019-06-21 20:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 20:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dc4ccb6f7f07e41616fd42625226229f0795d198 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: dc4ccb6f7f07e41616fd42625226229f0795d198
dwarf2read: Use bool for dwarf2_section_info fields
Use bool instead of char where applicable in dwarf2_section_info.
No functional changes intended.
gdb/ChangeLog:
* dwarf2read.h (struct dwarf2_section_info) <readin,
is_virtual>: Change type to bool.
* dwarf2read.c (dwarf2_read_section, create_dwp_v2_section): Use
true instead of 1.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] dwarf2read: C++ify dwo_file
@ 2019-06-21 20:33 sergiodj+buildbot
2019-06-21 20:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 20:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 51ac9db596ea9f0affa9f7db25bb179cf70beac4 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 51ac9db596ea9f0affa9f7db25bb179cf70beac4
dwarf2read: C++ify dwo_file
This patch changes dwo_file to be allocated/deallocated with new/delete,
so that we can start using C++ features in it, and in struct
dwo_sections.
The free_dwo_file function becomes the destructor of struct dwo_file
(and will disappear in upcoming patches, which will use gdb_bfd_ref_ptr
for dbfd and an std::vector for sections.types).
gdb/ChangeLog:
* dwarf2read.h (struct dwarf2_per_objfile) <dwo_files>: Change
type to htab_up.
* dwarf2read.c (struct dwo_file): Initialize fields.
<~dwo_file>: New.
(free_dwo_file): Remove, move content to ~dwo_file.
(struct dwo_file_deleter): Remove.
(dwo_file_up>: Remove custom deleter.
(free_dwo_files): Remove.
(dwarf2_per_objfile::~dwarf2_per_objfile): Don't explicitly free
dwo_files.
(process_skeletonless_type_units): Call unique_ptr::get.
(allocate_dwo_file_hash_table): Add deleter to created hash
table. Change return type to htab_up.
(lookup_dwo_file_slot): Don't memset dwo_file, call
unique_ptr::get.
(create_dwo_unit_in_dwp_v1): Allocate dwo_file with new.
(create_dwo_unit_in_dwp_v2): Likewise.
(open_and_init_dwo_file): Likewise.
(free_dwo_file_from_slot): Remove.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] dwarf2read: Get rid of VEC (dwarf2_section_info_def)
@ 2019-06-21 21:05 sergiodj+buildbot
2019-06-21 21:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-21 21:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fd5866f6aad7336f7a2b59578b9deef81383ea3b ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: fd5866f6aad7336f7a2b59578b9deef81383ea3b
dwarf2read: Get rid of VEC (dwarf2_section_info_def)
This patch removes uses of VEC (dwarf2_section_info_def) in favor of
std::vector<dwarf2_section_info>. The conversion is relatively
straightforward, no function changes are intended.
gdb/ChangeLog:
* dwarf2read.h (dwarf2_section_info_def): Remove.
(DEF_VEC_O (dwarf2_section_info_def)): Remove.
* dwarf2read.c (struct dwo_sections) <types>: Change type to
std::vector<dwarf2_section_info>.
(struct dwo_file) <~dwo_file>: Remove.
(dwarf2_per_objfile::~dwarf2_per_objfile): Don't manually free
types field.
(dwarf2_per_objfile::locate_sections): Adjust to std::vector.
(dwarf2_read_debug_names): Likewise.
(create_debug_types_hash_table): Change parameter type to
array_view, adjust code accordingly.
(dwarf2_locate_dwo_sections): Adjust to std::vector.
(partial_die_info::fixup): Likewise.
(determine_prefix): Likewise.
* dwarf-index-write.c (write_psymtabs_to_index): Adjust.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Compile index-cache.c with -Wl, --build-id
@ 2019-06-22 0:39 sergiodj+buildbot
2019-06-22 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-22 0:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c596f180a130c85faf8942d161be9ecf71c6791c ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: c596f180a130c85faf8942d161be9ecf71c6791c
[gdb/testsuite] Compile index-cache.c with -Wl,--build-id
When testing gdb.base/index-cache.exp using a gcc build without
--enable-linker-build-id we get:
...
FAIL: gdb.base/index-cache.exp: \
test_cache_enabled_miss: at least one file was created
FAIL: gdb.base/index-cache.exp: \
test_cache_enabled_miss: couldn't get executable build id
FAIL: gdb.base/index-cache.exp: \
test_cache_enabled_hit: check index-cache stats
...
With "set debug index-cache on" we find:
...
(gdb) file index-cache
Reading symbols from index-cache...
index cache: objfile index-cache has no build id
...
The problem is that a build-id is required for the index-cache functionality.
Fix this by compiling index-cache.c with -Wl,--build-id.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-06-21 Tom de Vries <tdevries@suse.de>
* gdb.base/index-cache.exp: Add additional_flags=-Wl,--build-id.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Fix s390x -m31 build
@ 2019-06-22 22:33 sergiodj+buildbot
2019-06-22 22:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: sergiodj+buildbot @ 2019-06-22 22:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47e3f47487396414ac936e2fd37b870fe08a55d0 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 47e3f47487396414ac936e2fd37b870fe08a55d0
[gdb] Fix s390x -m31 build
When building gdb on s390x with -m31, we run into this Wformat
warning (which Werror turns into an error):
...
gdb/dwarf2read.c: In function \
'void create_addrmap_from_aranges(dwarf2_per_objfile*, \
dwarf2_section_info*)':
gdb/dwarf2read.c:3277:22: error: format '%zu' expects argument of type \
'size_t', but argument 3 has type 'int' [-Werror=format=]
warning (_("Section .debug_aranges in %s entry at offset %zu "
...
The Wformat warning is triggered in this statement:
...
warning (_("Section .debug_aranges in %s entry at offset %zu "
"length %s exceeds section length %s, "
"ignoring .debug_aranges."),
objfile_name (objfile), entry_addr - section->buffer,
plongest (bytes_read + entry_length),
pulongest (section->size));
...
where 'entry_addr - section->buffer' is of type ptrdiff_t and '%zu' prints an
unsigned with the same size as size_t/ssize_t.
On s390x with -m31, we have:
- size_t : unsigned long int (32-bit)
- ptrdiff_t: int (32-bit)
Wformat warns against this because even though long int and int have the same
size, the types are not compatible.
[ The Wformat warning is to similar to what we would get for x86_64 -m32
(where long and int are also the same size) and:
...
int i;
printf ("%ld", i);
... ]
Fix this by using '%s' and plongest instead of '%zu' to print ptrdiff_t.
Build and reg-tested on x86_64.
gdb/ChangeLog:
2019-06-22 Tom de Vries <tdevries@suse.de>
* dwarf2read.c (create_addrmap_from_aranges)
(read_debug_names_from_section): Print ptrdiff_t using '%s' and plongest
instead of '%zu'.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler.
@ 2019-09-03 15:14 gdb-buildbot
2019-09-03 15:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-03 15:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f44b758d3133ef0a7f3131c1e12ed20feb33ee61 ***
commit f44b758d3133ef0a7f3131c1e12ed20feb33ee61
Author: Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 3 15:37:12 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 3 15:37:12 2019 +0100
Fix buffer underrun bug in the TI C30 disassembler.
PR 24961
* tic30-dis.c (get_indirect_operand): Check for bufcnt being
greater than zero before indexing via (bufcnt -1).
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 87e3f74663..64b6a07ac4 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-03 Nick Clifton <nickc@redhat.com>
+
+ PR 24961
+ * tic30-dis.c (get_indirect_operand): Check for bufcnt being
+ greater than zero before indexing via (bufcnt -1).
+
2019-09-03 Nick Clifton <nickc@redhat.com>
PR 24958
diff --git a/opcodes/tic30-dis.c b/opcodes/tic30-dis.c
index c64aceb29f..668c519df8 100644
--- a/opcodes/tic30-dis.c
+++ b/opcodes/tic30-dis.c
@@ -253,7 +253,9 @@ get_indirect_operand (unsigned short fragment,
for (i = 0, bufcnt = 0; i < len; i++, bufcnt++)
{
buffer[bufcnt] = current_ind->syntax[i];
- if (buffer[bufcnt - 1] == 'a' && buffer[bufcnt] == 'r')
+ if (bufcnt > 0
+ && buffer[bufcnt - 1] == 'a'
+ && buffer[bufcnt] == 'r')
buffer[++bufcnt] = arnum + '0';
if (buffer[bufcnt] == '('
&& current_ind->displacement == DISP_REQUIRED)
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Handle biased types
@ 2019-09-03 17:01 gdb-buildbot
2019-09-03 17:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-03 17:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4e962e74e45f2b0365e5b21504f33480c468ff00 ***
commit 4e962e74e45f2b0365e5b21504f33480c468ff00
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Mon May 13 13:21:48 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 3 10:20:40 2019 -0600
Handle biased types
In Ada, the programmer can request that a range type with a non-zero
base be stored in the minimal number of bits required for the range.
This is done by biasing the values; so, for example, a range of -7..-4
may be stored as two bits with a bias of -7.
This patch implements this for gdb. It is done by adding a bias to
struct range_bounds and then adjusting a few spots to handle this.
The test case is written to use -fgnat-encodings=minimal, but a future
compiler patch will change the compiler to emit DW_AT_GNU_bias with
-fgnat-encodings=gdb. It seemed good to get the gdb patch in first.
Tested on x86-64 Fedora 29; plus a variety of targets using AdaCore's
internal test suite.
gdb/ChangeLog
2019-09-03 Tom Tromey <tromey@adacore.com>
* ada-valprint.c (ada_val_print_num): Don't recurse for range
types.
(has_negatives): Unbias a range type bound.
* dwarf2read.c (read_subrange_type): Handle DW_AT_GNU_bias.
* gdbtypes.c (operator==): Handle new field.
(create_range_type): Add "bias" parameter.
(create_static_range_type, resolve_dynamic_range): Update.
* gdbtypes.h (struct range_bounds) <bias>: New member.
(create_range_type): Add bias parameter.
* printcmd.c (print_scalar_formatted): Unbias range types.
* value.c (unpack_long): Unbias range types.
(pack_long): Bias range types.
gdb/testsuite/ChangeLog
2019-09-03 Tom Tromey <tromey@adacore.com>
* gdb.ada/bias.exp: New file.
* gdb.ada/bias/bias.adb: New file.
* gdb.ada/print_chars.exp: Add regression test.
* gdb.ada/print_chars/foo.adb (My_Character): New type.
(MC): New variable.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 08615f462e..5d88be8a72 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,18 @@
+2019-09-03 Tom Tromey <tromey@adacore.com>
+
+ * ada-valprint.c (ada_val_print_num): Don't recurse for range
+ types.
+ (has_negatives): Unbias a range type bound.
+ * dwarf2read.c (read_subrange_type): Handle DW_AT_GNU_bias.
+ * gdbtypes.c (operator==): Handle new field.
+ (create_range_type): Add "bias" parameter.
+ (create_static_range_type, resolve_dynamic_range): Update.
+ * gdbtypes.h (struct range_bounds) <bias>: New member.
+ (create_range_type): Add bias parameter.
+ * printcmd.c (print_scalar_formatted): Unbias range types.
+ * value.c (unpack_long): Unbias range types.
+ (pack_long): Bias range types.
+
2019-09-02 Alan Hayward <alan.hayward@arm.com>
* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 609f2d4391..347c67f95c 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -2361,7 +2361,7 @@ has_negatives (struct type *type)
case TYPE_CODE_INT:
return !TYPE_UNSIGNED (type);
case TYPE_CODE_RANGE:
- return TYPE_LOW_BOUND (type) < 0;
+ return TYPE_LOW_BOUND (type) - TYPE_RANGE_DATA (type)->bias < 0;
}
}
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 0654049d77..3060eb676b 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -841,8 +841,15 @@ ada_val_print_num (struct type *type, const gdb_byte *valaddr,
fputs_filtered (str.c_str (), stream);
return;
}
- else if (TYPE_CODE (type) == TYPE_CODE_RANGE)
+ else if (TYPE_CODE (type) == TYPE_CODE_RANGE
+ && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ENUM
+ || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_BOOL
+ || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_CHAR))
{
+ /* For enum-valued ranges, we want to recurse, because we'll end
+ up printing the constant's name rather than its numeric
+ value. Character and fixed-point types are also printed
+ differently, so recuse for those as well. */
struct type *target_type = TYPE_TARGET_TYPE (type);
if (TYPE_LENGTH (type) != TYPE_LENGTH (target_type))
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index af4af195a0..fb888da7b8 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -17901,6 +17901,11 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
}
}
+ LONGEST bias = 0;
+ struct attribute *bias_attr = dwarf2_attr (die, DW_AT_GNU_bias, cu);
+ if (bias_attr != nullptr && attr_form_is_constant (bias_attr))
+ bias = dwarf2_get_attr_constant_value (bias_attr, 0);
+
/* Normally, the DWARF producers are expected to use a signed
constant form (Eg. DW_FORM_sdata) to express negative bounds.
But this is unfortunately not always the case, as witnessed
@@ -17917,7 +17922,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask;
- range_type = create_range_type (NULL, orig_base_type, &low, &high);
+ range_type = create_range_type (NULL, orig_base_type, &low, &high, bias);
if (high_bound_is_count)
TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 177455e612..4bc02e08f9 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -901,7 +901,8 @@ operator== (const range_bounds &l, const range_bounds &r)
return (FIELD_EQ (low)
&& FIELD_EQ (high)
&& FIELD_EQ (flag_upper_bound_is_count)
- && FIELD_EQ (flag_bound_evaluated));
+ && FIELD_EQ (flag_bound_evaluated)
+ && FIELD_EQ (bias));
#undef FIELD_EQ
}
@@ -912,7 +913,8 @@ operator== (const range_bounds &l, const range_bounds &r)
struct type *
create_range_type (struct type *result_type, struct type *index_type,
const struct dynamic_prop *low_bound,
- const struct dynamic_prop *high_bound)
+ const struct dynamic_prop *high_bound,
+ LONGEST bias)
{
/* The INDEX_TYPE should be a type capable of holding the upper and lower
bounds, as such a zero sized, or void type makes no sense. */
@@ -932,6 +934,7 @@ create_range_type (struct type *result_type, struct type *index_type,
TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound;
+ TYPE_RANGE_DATA (result_type)->bias = bias;
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1;
@@ -968,7 +971,7 @@ create_static_range_type (struct type *result_type, struct type *index_type,
high.kind = PROP_CONST;
high.data.const_val = high_bound;
- result_type = create_range_type (result_type, index_type, &low, &high);
+ result_type = create_range_type (result_type, index_type, &low, &high, 0);
return result_type;
}
@@ -2015,9 +2018,10 @@ resolve_dynamic_range (struct type *dyn_range_type,
static_target_type
= resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type),
addr_stack, 0);
+ LONGEST bias = TYPE_RANGE_DATA (dyn_range_type)->bias;
static_range_type = create_range_type (copy_type (dyn_range_type),
static_target_type,
- &low_bound, &high_bound);
+ &low_bound, &high_bound, bias);
TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
return static_range_type;
}
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 7268d3e4aa..c62b8a31ba 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -617,6 +617,11 @@ struct range_bounds
struct dynamic_prop high;
+ /* * The bias. Sometimes a range value is biased before storage.
+ The bias is added to the stored bits to form the true value. */
+
+ LONGEST bias;
+
/* True if HIGH range bound contains the number of elements in the
subrange. This affects how the final high bound is computed. */
@@ -1951,7 +1956,8 @@ extern struct type *create_array_type_with_stride
extern struct type *create_range_type (struct type *, struct type *,
const struct dynamic_prop *,
- const struct dynamic_prop *);
+ const struct dynamic_prop *,
+ LONGEST);
extern struct type *create_array_type (struct type *, struct type *,
struct type *);
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 9b29b53ca7..22356bfd6d 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -405,21 +405,30 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
/* Historically gdb has printed floats by first casting them to a
long, and then printing the long. PR cli/16242 suggests changing
- this to using C-style hex float format. */
- gdb::byte_vector converted_float_bytes;
- if (TYPE_CODE (type) == TYPE_CODE_FLT
- && (options->format == 'o'
- || options->format == 'x'
- || options->format == 't'
- || options->format == 'z'
- || options->format == 'd'
- || options->format == 'u'))
- {
- LONGEST val_long = unpack_long (type, valaddr);
- converted_float_bytes.resize (TYPE_LENGTH (type));
- store_signed_integer (converted_float_bytes.data (), TYPE_LENGTH (type),
- byte_order, val_long);
- valaddr = converted_float_bytes.data ();
+ this to using C-style hex float format.
+
+ Biased range types must also be unbiased here; the unbiasing is
+ done by unpack_long. */
+ gdb::byte_vector converted_bytes;
+ /* Some cases below will unpack the value again. In the biased
+ range case, we want to avoid this, so we store the unpacked value
+ here for possible use later. */
+ gdb::optional<LONGEST> val_long;
+ if ((TYPE_CODE (type) == TYPE_CODE_FLT
+ && (options->format == 'o'
+ || options->format == 'x'
+ || options->format == 't'
+ || options->format == 'z'
+ || options->format == 'd'
+ || options->format == 'u'))
+ || (TYPE_CODE (type) == TYPE_CODE_RANGE
+ && TYPE_RANGE_DATA (type)->bias != 0))
+ {
+ val_long.emplace (unpack_long (type, valaddr));
+ converted_bytes.resize (TYPE_LENGTH (type));
+ store_signed_integer (converted_bytes.data (), TYPE_LENGTH (type),
+ byte_order, *val_long);
+ valaddr = converted_bytes.data ();
}
/* Printing a non-float type as 'f' will interpret the data as if it were
@@ -469,7 +478,8 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
{
struct value_print_options opts = *options;
- LONGEST val_long = unpack_long (type, valaddr);
+ if (!val_long.has_value ())
+ val_long.emplace (unpack_long (type, valaddr));
opts.format = 0;
if (TYPE_UNSIGNED (type))
@@ -477,15 +487,15 @@ print_scalar_formatted (const gdb_byte *valaddr, struct type *type,
else
type = builtin_type (gdbarch)->builtin_true_char;
- value_print (value_from_longest (type, val_long), stream, &opts);
+ value_print (value_from_longest (type, *val_long), stream, &opts);
}
break;
case 'a':
{
- CORE_ADDR addr = unpack_pointer (type, valaddr);
-
- print_address (gdbarch, addr, stream);
+ if (!val_long.has_value ())
+ val_long.emplace (unpack_long (type, valaddr));
+ print_address (gdbarch, *val_long, stream);
}
break;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e0991e091a..d2dc356148 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-03 Tom Tromey <tromey@adacore.com>
+
+ * gdb.ada/bias.exp: New file.
+ * gdb.ada/bias/bias.adb: New file.
+ * gdb.ada/print_chars.exp: Add regression test.
+ * gdb.ada/print_chars/foo.adb (My_Character): New type.
+ (MC): New variable.
+
2019-08-29 Sandra Loosemore <sandra@codesourcery.com>
* gdb.base/argv0-symlink.exp: Run only on native target
diff --git a/gdb/testsuite/gdb.ada/bias.exp b/gdb/testsuite/gdb.ada/bias.exp
new file mode 100644
index 0000000000..76ca6c08c6
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias.exp
@@ -0,0 +1,56 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+standard_ada_testfile bias
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
+ {debug additional_flags=-fgnat-encodings=minimal}] != "" } {
+ return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/bias.adb]
+runto "bias.adb:$bp_location"
+
+gdb_test "print x" " = 64"
+gdb_test "print y" " = -5"
+
+gdb_test "print cval" " = 65"
+gdb_test "print/c cval" " = 65 'A'"
+
+# Some binary arithmetic checks.
+gdb_test "print y < y1" " = false"
+gdb_test "print y <= y1" " = false"
+gdb_test "print y > y1" " = true"
+gdb_test "print y >= y1" " = true"
+gdb_test "print y = y" " = true"
+gdb_test "print y /= y" " = false"
+gdb_test "print y /= y1" " = true"
+
+gdb_test "print x + x1" " = 65"
+gdb_test "ptype x + x1" "type = range 1 \\.\\. 64"
+gdb_test "print x / x1" " = 64"
+gdb_test "print x * x1" " = 64"
+gdb_test "print x - x1" " = 63"
+
+# Test that storing un-biases.
+gdb_test "print x := 5" " = 5"
+gdb_test "print x" " = 5" "re-read x after storing"
+
+gdb_test "print spr" " = \\(r => -4, s => -5\\)"
+gdb_test "print a" " = \\(-7, -5, -4\\)"
diff --git a/gdb/testsuite/gdb.ada/bias/bias.adb b/gdb/testsuite/gdb.ada/bias/bias.adb
new file mode 100644
index 0000000000..ad46d20dd2
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/bias.adb
@@ -0,0 +1,52 @@
+-- Copyright 2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+
+procedure Bias is
+ type Small is range -7 .. -4;
+ for Small'Size use 2;
+ Y : Small := -5;
+ Y1 : Small := -7;
+
+ type Repeat_Count_T is range 1 .. 2 ** 6;
+ for Repeat_Count_T'Size use 6;
+ X : Repeat_Count_T := 64;
+ X1 : Repeat_Count_T := 1;
+
+ type Char_Range is range 65 .. 68;
+ for Char_Range'Size use 2;
+ Cval : Char_Range := 65;
+
+ type Some_Packed_Record is record
+ R: Small;
+ S: Small;
+ end record;
+ pragma Pack (Some_Packed_Record);
+ SPR : Some_Packed_Record := (R => -4, S => -5);
+
+ type Packed_Array is array (1 .. 3) of Small;
+ pragma pack (Packed_Array);
+ A : Packed_Array := (-7, -5, -4);
+
+begin
+ Do_Nothing (Y'Address); -- STOP
+ Do_Nothing (Y1'Address);
+ Do_Nothing (X'Address);
+ Do_Nothing (X1'Address);
+ Do_Nothing (Cval'Address);
+ Do_Nothing (SPR'Address);
+ Do_Nothing (A'Address);
+end Bias;
diff --git a/gdb/testsuite/gdb.ada/bias/pck.adb b/gdb/testsuite/gdb.ada/bias/pck.adb
new file mode 100644
index 0000000000..fb433861df
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/pck.adb
@@ -0,0 +1,23 @@
+-- Copyright 2012-2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+
+package body Pck is
+ procedure Do_Nothing (A : System.Address) is
+ begin
+ null;
+ end Do_Nothing;
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/bias/pck.ads b/gdb/testsuite/gdb.ada/bias/pck.ads
new file mode 100644
index 0000000000..a40fa62c8e
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/bias/pck.ads
@@ -0,0 +1,20 @@
+-- Copyright 2012-2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+
+package Pck is
+ procedure Do_Nothing (A : System.Address);
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/print_chars.exp b/gdb/testsuite/gdb.ada/print_chars.exp
index 992b134764..9a0e215784 100644
--- a/gdb/testsuite/gdb.ada/print_chars.exp
+++ b/gdb/testsuite/gdb.ada/print_chars.exp
@@ -39,4 +39,4 @@ gdb_test "print WWC" \
"= 99 'c'" \
"print WWC"
-
+gdb_test "print MC" " = 77 'M'"
diff --git a/gdb/testsuite/gdb.ada/print_chars/foo.adb b/gdb/testsuite/gdb.ada/print_chars/foo.adb
index 40d0c06094..c89c0d3cef 100644
--- a/gdb/testsuite/gdb.ada/print_chars/foo.adb
+++ b/gdb/testsuite/gdb.ada/print_chars/foo.adb
@@ -19,6 +19,9 @@ procedure Foo is
C : Character := 'a';
WC : Wide_Character := 'b';
WWC : Wide_Wide_Character := 'c';
+
+ type My_Character is new Character;
+ MC : My_Character := 'M';
begin
Do_Nothing (C'Address); -- START
Do_Nothing (WC'Address);
diff --git a/gdb/value.c b/gdb/value.c
index 9103d8f41c..d58a964649 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -2751,10 +2751,16 @@ unpack_long (struct type *type, const gdb_byte *valaddr)
case TYPE_CODE_CHAR:
case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
- if (nosign)
- return extract_unsigned_integer (valaddr, len, byte_order);
- else
- return extract_signed_integer (valaddr, len, byte_order);
+ {
+ LONGEST result;
+ if (nosign)
+ result = extract_unsigned_integer (valaddr, len, byte_order);
+ else
+ result = extract_signed_integer (valaddr, len, byte_order);
+ if (code == TYPE_CODE_RANGE)
+ result += TYPE_RANGE_DATA (type)->bias;
+ return result;
+ }
case TYPE_CODE_FLT:
case TYPE_CODE_DECFLOAT:
@@ -3315,12 +3321,14 @@ pack_long (gdb_byte *buf, struct type *type, LONGEST num)
switch (TYPE_CODE (type))
{
+ case TYPE_CODE_RANGE:
+ num -= TYPE_RANGE_DATA (type)->bias;
+ /* Fall through. */
case TYPE_CODE_INT:
case TYPE_CODE_CHAR:
case TYPE_CODE_ENUM:
case TYPE_CODE_FLAGS:
case TYPE_CODE_BOOL:
- case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
store_signed_integer (buf, len, byte_order, num);
break;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Handle missing domain types in: maintenance print psymbols
@ 2019-09-03 22:11 gdb-buildbot
2019-09-03 22:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-03 22:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 06ff036ed22bac6c6cc622b2f3d23534b44fff67 ***
commit 06ff036ed22bac6c6cc622b2f3d23534b44fff67
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Sep 3 15:54:57 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 3 22:29:07 2019 +0100
gdb: Handle missing domain types in: maintenance print psymbols
Some domain_enum values were not handled in print_partial_symbols
which means that 'maintenance print psymbols' would print '<invalid
domain>' when it shouldn't have.
gdb/ChangeLog:
* psymtab.c (print_partial_symbols): Handle missing domain_enum
values MODULE_DOMAIN and COMMON_BLOCK_DOMAIN.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5d88be8a72..f55d1a8e31 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-03 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * psymtab.c (print_partial_symbols): Handle missing domain_enum
+ values MODULE_DOMAIN and COMMON_BLOCK_DOMAIN.
+
2019-09-03 Tom Tromey <tromey@adacore.com>
* ada-valprint.c (ada_val_print_num): Don't recurse for range
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 6cc7566580..6f9bf7268f 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -853,9 +853,15 @@ print_partial_symbols (struct gdbarch *gdbarch, struct objfile *objfile,
case STRUCT_DOMAIN:
fputs_filtered ("struct domain, ", outfile);
break;
+ case MODULE_DOMAIN:
+ fputs_filtered ("module domain, ", outfile);
+ break;
case LABEL_DOMAIN:
fputs_filtered ("label domain, ", outfile);
break;
+ case COMMON_BLOCK_DOMAIN:
+ fputs_filtered ("common block domain, ", outfile);
+ break;
default:
fputs_filtered ("<invalid domain>, ", outfile);
break;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Avoid expect's buffer overflow in info-var.exp test.
@ 2019-09-04 21:19 gdb-buildbot
2019-09-04 21:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-04 21:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 98b0ebab0a1eb0c1f179ebe633250e7201d35bce ***
commit 98b0ebab0a1eb0c1f179ebe633250e7201d35bce
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Aug 31 17:25:54 2019 +0200
Commit: Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Wed Sep 4 22:16:56 2019 +0200
Avoid expect's buffer overflow in info-var.exp test.
Once the executable is started, info variables can show thousands
of variables belonging to glibc (see below).
This long list of variables then causes the test to fail, due
to expect's buffer overflow:
Running /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var.exp ...
ERROR: internal buffer is full.
ERROR: internal buffer is full.
ERROR: internal buffer is full.
Fix this by testing 'info variables' without running the executable.
gdb ./info-var
...
Reading symbols from ./info-var...
(gdb) |info variables|wc
27 54 971
(gdb) start
Temporary breakpoint 1 at 0x1129: file /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c, line 23.
Starting program: /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/outputs/gdb.base/info-var/info-var
Temporary breakpoint 1, main ()
at /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c:23
23 return global_var + get_offset() + f1_var;
(gdb) |info variables|wc
4334 14581 130738
(gdb)
gdb/testsuite/ChangeLog
2019-09-04 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.base/info-var.exp: Test info variables without running
to main, to avoid expect's buffer overflow.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d2dc356148..46c7b5f927 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-04 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * gdb.base/info-var.exp: Test info variables without running
+ to main, to avoid expect's buffer overflow.
+
2019-09-03 Tom Tromey <tromey@adacore.com>
* gdb.ada/bias.exp: New file.
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
index 6dd896d8aa..c9b7485ffb 100644
--- a/gdb/testsuite/gdb.base/info-var.exp
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -22,10 +22,9 @@ if {[prepare_for_testing "failed to prepare" \
return -1
}
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
+# Note: we do not run to main, as otherwise, the output of info variables
+# can be very long, showing thousands of glibc variables.
+# This long output then causes expect's buffer to overflow.
gdb_test "info variables" \
[multi_line \
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24955, libbfd terminating program on out of memory
@ 2019-09-05 4:49 gdb-buildbot
2019-09-05 5:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-05 4:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89bdc77eabf5ede68322f6e47e003c1dc45b9ccb ***
commit 89bdc77eabf5ede68322f6e47e003c1dc45b9ccb
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 2 16:13:05 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 11:33:34 2019 +0930
PR24955, libbfd terminating program on out of memory
This patch fixes the worst of the cases where libbfd might terminate
a program due to calling xstrdup or xmalloc. I've also fixed some
error paths that didn't clean up properly.
PR 24955
* libbfd-in.h (bfd_strdup): New inline function.
* archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup. Close
bfd on error.
* elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
* opncls.c (bfd_fopen): Use bfd_strdup. Close fd and stream
on error.
(bfd_openstreamr): Use bfd_strdup.
(bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
* plugin.c (try_load_plugin): Use bfd_malloc.
* libbfd.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f033af7443..319ba5a571 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,17 @@
+2019-09-05 Alan Modra <amodra@gmail.com>
+
+ PR 24955
+ * libbfd-in.h (bfd_strdup): New inline function.
+ * archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup. Close
+ bfd on error.
+ * elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
+ * opncls.c (bfd_fopen): Use bfd_strdup. Close fd and stream
+ on error.
+ (bfd_openstreamr): Use bfd_strdup.
+ (bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
+ * plugin.c (try_load_plugin): Use bfd_malloc.
+ * libbfd.h: Regenerate.
+
2019-09-02 Alan Modra <amodra@gmail.com>
PR 11983
diff --git a/bfd/archive.c b/bfd/archive.c
index 690718e949..ef71e8a796 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -728,7 +728,9 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
else
{
n_bfd->origin = n_bfd->proxy_origin;
- n_bfd->filename = xstrdup (filename);
+ n_bfd->filename = bfd_strdup (filename);
+ if (n_bfd->filename == NULL)
+ goto out;
}
n_bfd->arelt_data = new_areldata;
@@ -745,8 +747,10 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
|| _bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
return n_bfd;
+ out:
free (new_areldata);
n_bfd->arelt_data = NULL;
+ bfd_close (n_bfd);
return NULL;
}
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 9a73c3b71f..625ae993df 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -1652,6 +1652,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
bfd_vma high_offset;
bfd_vma shdr_end;
bfd_vma loadbase;
+ char *filename;
/* Read in the ELF header in external format. */
err = target_read_memory (ehdr_vma, (bfd_byte *) &x_ehdr, sizeof x_ehdr);
@@ -1859,14 +1860,22 @@ NAME(_bfd_elf,bfd_from_remote_memory)
free (contents);
return NULL;
}
+ filename = bfd_strdup ("<in-memory>");
+ if (filename == NULL)
+ {
+ free (bim);
+ free (contents);
+ return NULL;
+ }
nbfd = _bfd_new_bfd ();
if (nbfd == NULL)
{
+ free (filename);
free (bim);
free (contents);
return NULL;
}
- nbfd->filename = xstrdup ("<in-memory>");
+ nbfd->filename = filename;
nbfd->xvec = templ->xvec;
bim->size = high_offset;
bim->buffer = contents;
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index 7a97dfae19..cac4d3b022 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -123,6 +123,15 @@ extern void *bfd_realloc2
extern void *bfd_zmalloc2
(bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN;
+static inline char *
+bfd_strdup (const char *str)
+{
+ size_t len = strlen (str) + 1;
+ char *buf = bfd_malloc (len);
+ if (buf != NULL)
+ memcpy (buf, str, len);
+ return buf;
+}
/* These routines allocate and free things on the BFD's objalloc. */
extern void *bfd_alloc2
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 13f4c5b408..aabe247068 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -128,6 +128,15 @@ extern void *bfd_realloc2
extern void *bfd_zmalloc2
(bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN;
+static inline char *
+bfd_strdup (const char *str)
+{
+ size_t len = strlen (str) + 1;
+ char *buf = bfd_malloc (len);
+ if (buf != NULL)
+ memcpy (buf, str, len);
+ return buf;
+}
/* These routines allocate and free things on the BFD's objalloc. */
extern void *bfd_alloc2
diff --git a/bfd/opncls.c b/bfd/opncls.c
index b8cda411e6..07f89b9a4c 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -223,6 +223,8 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
if (nbfd->iostream == NULL)
{
bfd_set_error (bfd_error_system_call);
+ if (fd != -1)
+ close (fd);
_bfd_delete_bfd (nbfd);
return NULL;
}
@@ -231,7 +233,13 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
/* PR 11983: Do not cache the original filename, but
rather make a copy - the original might go away. */
- nbfd->filename = xstrdup (filename);
+ nbfd->filename = bfd_strdup (filename);
+ if (nbfd->filename == NULL)
+ {
+ fclose (nbfd->iostream);
+ _bfd_delete_bfd (nbfd);
+ return NULL;
+ }
/* Figure out whether the user is opening the file for reading,
writing, or both, by looking at the MODE argument. */
@@ -243,8 +251,9 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd)
else
nbfd->direction = write_direction;
- if (! bfd_cache_init (nbfd))
+ if (!bfd_cache_init (nbfd))
{
+ fclose (nbfd->iostream);
_bfd_delete_bfd (nbfd);
return NULL;
}
@@ -398,7 +407,12 @@ bfd_openstreamr (const char *filename, const char *target, void *streamarg)
nbfd->iostream = stream;
/* PR 11983: Do not cache the original filename, but
rather make a copy - the original might go away. */
- nbfd->filename = xstrdup (filename);
+ nbfd->filename = bfd_strdup (filename);
+ if (nbfd->filename == NULL)
+ {
+ _bfd_delete_bfd (nbfd);
+ return NULL;
+ }
nbfd->direction = read_direction;
if (! bfd_cache_init (nbfd))
@@ -594,7 +608,12 @@ bfd_openr_iovec (const char *filename, const char *target,
/* PR 11983: Do not cache the original filename, but
rather make a copy - the original might go away. */
- nbfd->filename = xstrdup (filename);
+ nbfd->filename = bfd_strdup (filename);
+ if (nbfd->filename == NULL)
+ {
+ _bfd_delete_bfd (nbfd);
+ return NULL;
+ }
nbfd->direction = read_direction;
/* `open_p (...)' would get expanded by an the open(2) syscall macro. */
@@ -661,7 +680,12 @@ bfd_openw (const char *filename, const char *target)
/* PR 11983: Do not cache the original filename, but
rather make a copy - the original might go away. */
- nbfd->filename = xstrdup (filename);
+ nbfd->filename = bfd_strdup (filename);
+ if (nbfd->filename == NULL)
+ {
+ _bfd_delete_bfd (nbfd);
+ return NULL;
+ }
nbfd->direction = write_direction;
if (bfd_open_file (nbfd) == NULL)
@@ -801,7 +825,12 @@ bfd_create (const char *filename, bfd *templ)
return NULL;
/* PR 11983: Do not cache the original filename, but
rather make a copy - the original might go away. */
- nbfd->filename = xstrdup (filename);
+ nbfd->filename = bfd_strdup (filename);
+ if (nbfd->filename == NULL)
+ {
+ _bfd_delete_bfd (nbfd);
+ return NULL;
+ }
if (templ)
nbfd->xvec = templ->xvec;
nbfd->direction = no_direction;
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 376e92cdb3..5f760e9c42 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -262,7 +262,9 @@ try_load_plugin (const char *pname, bfd *abfd, int *has_plugin_p)
}
}
- plugin_list_iter = (struct plugin_list_entry *) xmalloc (sizeof *plugin_list_iter);
+ plugin_list_iter = bfd_malloc (sizeof *plugin_list_iter);
+ if (plugin_list_iter == NULL)
+ return 0;
plugin_list_iter->handle = plugin_handle;
plugin_list_iter->claim_file = NULL;
plugin_list_iter->next = plugin_list;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] R_PPC64_PCREL_OPT
@ 2019-09-05 5:56 gdb-buildbot
2019-09-05 5:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-05 5:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 77486630b13e9e586b0a1556cba9876a0ede99da ***
commit 77486630b13e9e586b0a1556cba9876a0ede99da
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 4 15:30:37 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 13:56:20 2019 +0930
R_PPC64_PCREL_OPT
The loads and stores handled in the second instruction of a sequence
marked by R_PPC64_PCREL_OPT may be a prefix instruction. For example:
pld ra,symbol@got@pcrel
0:
pld rt,off(ra)
.reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
can be optimised to
pld rt,symbol+off@pcrel
pnop
* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
in second instruction.
(ppc64_elf_relocate_section): Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 319ba5a571..7f587df81a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
+ in second instruction.
+ (ppc64_elf_relocate_section): Likewise.
+
2019-09-05 Alan Modra <amodra@gmail.com>
PR 24955
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index a5bd3426ee..e39b6faf17 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -8282,12 +8282,31 @@ ok_lo_toc_insn (unsigned int insn, enum elf_ppc64_reloc_type r_type)
static bfd_boolean
xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
{
- uint32_t insn2 = *pinsn2 >> 32;
- uint64_t i1new;
+ uint64_t insn1 = *pinsn1;
+ uint64_t insn2 = *pinsn2;
bfd_signed_vma off;
+ if ((insn2 & (63ULL << 58)) == 1ULL << 58)
+ {
+ /* Check that regs match. */
+ if (((insn2 >> 16) & 31) != ((insn1 >> 21) & 31))
+ return FALSE;
+
+ /* P8LS or PMLS form, non-pcrel. */
+ if ((insn2 & (-1ULL << 50) & ~(1ULL << 56)) != (1ULL << 58))
+ return FALSE;
+
+ *pinsn1 = (insn2 & ~(31 << 16) & ~0x3ffff0000ffffULL) | (1ULL << 52);
+ *pinsn2 = PNOP;
+ off = ((insn2 >> 16) & 0x3ffff0000ULL) | (insn2 & 0xffff);
+ *poff = (off ^ 0x200000000ULL) - 0x200000000ULL;
+ return TRUE;
+ }
+
+ insn2 >>= 32;
+
/* Check that regs match. */
- if (((insn2 >> 16) & 31) != ((*pinsn1 >> 21) & 31))
+ if (((insn2 >> 16) & 31) != ((insn1 >> 21) & 31))
return FALSE;
switch ((insn2 >> 26) & 63)
@@ -8308,7 +8327,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
case 54: /* stfd */
/* These are the PMLS cases, where we just need to tack a prefix
on the insn. */
- i1new = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
| (insn2 & ((63ULL << 26) | (31ULL << 21))));
off = insn2 & 0xffff;
break;
@@ -8316,7 +8335,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
case 58: /* lwa, ld */
if ((insn2 & 1) != 0)
return FALSE;
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| (insn2 & 2 ? 41ULL << 26 : 57ULL << 26)
| (insn2 & (31ULL << 21)));
off = insn2 & 0xfffc;
@@ -8325,7 +8344,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
case 57: /* lxsd, lxssp */
if ((insn2 & 3) < 2)
return FALSE;
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| ((40ULL | (insn2 & 3)) << 26)
| (insn2 & (31ULL << 21)));
off = insn2 & 0xfffc;
@@ -8336,14 +8355,14 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
return FALSE;
else if ((insn2 & 3) >= 2)
{
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| ((44ULL | (insn2 & 3)) << 26)
| (insn2 & (31ULL << 21)));
off = insn2 & 0xfffc;
}
else
{
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| ((50ULL | (insn2 & 4) | ((insn2 & 8) >> 3)) << 26)
| (insn2 & (31ULL << 21)));
off = insn2 & 0xfff0;
@@ -8351,7 +8370,7 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
break;
case 56: /* lq */
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| (insn2 & ((63ULL << 26) | (31ULL << 21))));
off = insn2 & 0xffff;
break;
@@ -8359,14 +8378,14 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
case 62: /* std, stq */
if ((insn2 & 1) != 0)
return FALSE;
- i1new = ((1ULL << 58) | (1ULL << 52)
+ insn1 = ((1ULL << 58) | (1ULL << 52)
| ((insn2 & 2) == 0 ? 61ULL << 26 : 60ULL << 26)
| (insn2 & (31ULL << 21)));
off = insn2 & 0xfffc;
break;
}
- *pinsn1 = i1new;
+ *pinsn1 = insn1;
*pinsn2 = (uint64_t) NOP << 32;
*poff = (off ^ 0x8000) - 0x8000;
return TRUE;
@@ -15413,7 +15432,12 @@ ppc64_elf_relocate_section (bfd *output_bfd,
pinsn2 = bfd_get_32 (input_bfd, contents + off2);
pinsn2 <<= 32;
if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
- break;
+ {
+ if (off2 + 8 > input_section->size)
+ break;
+ pinsn2 |= bfd_get_32 (input_bfd,
+ contents + off2 + 4);
+ }
if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
{
addend += addend_off;
@@ -15424,6 +15448,9 @@ ppc64_elf_relocate_section (bfd *output_bfd,
contents + offset + 4);
bfd_put_32 (input_bfd, pinsn2 >> 32,
contents + off2);
+ if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
+ bfd_put_32 (input_bfd, pinsn2,
+ contents + off2 + 4);
}
}
}
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b654eb9d36..0da9e2542d 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/pcrelopt.s,
+ * testsuite/ld-powerpc/pcrelopt.d: Test offset and prefix in
+ second instruction.
+
2019-08-29 Alan Modra <amodra@gmail.com>
PR ld/24406
diff --git a/ld/testsuite/ld-powerpc/pcrelopt.d b/ld/testsuite/ld-powerpc/pcrelopt.d
index 18fdb95abf..aeaa0cdb5d 100644
--- a/ld/testsuite/ld-powerpc/pcrelopt.d
+++ b/ld/testsuite/ld-powerpc/pcrelopt.d
@@ -80,10 +80,17 @@ Disassembly of section \.text:
.*: (04 10 00 01|01 00 10 04) pstxv vs0,66028
.*: (d8 00 01 ec|ec 01 00 d8)
.*: (60 00 00 00|00 00 00 60) nop
-.*: (04 10 00 01|01 00 10 04) pld r9,66008
-.*: (e5 20 01 d8|d8 01 20 e5)
-.*: (e8 09 00 00|00 00 09 e8) ld r0,0\(r9\)
+.*: (06 10 00 01|01 00 10 06) plbz r3,70676
+.*: (88 60 14 14|14 14 60 88)
+.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
-.*: (06 10 00 01|01 00 10 06) pla r7,66000
-.*: (38 e0 01 d0|d0 01 e0 38)
+.*: (04 10 12 35|35 12 10 04) plq r4,305485896
+.*: (e0 80 58 48|48 58 80 e0)
+.*: (07 00 00 00|00 00 00 07) pnop
+.*: (00 00 00 00|00 00 00 00)
+.*: (04 10 00 01|01 00 10 04) pld r9,65976
+.*: (e5 20 01 b8|b8 01 20 e5)
+.*: (e8 09 00 00|00 00 09 e8) ld r0,0\(r9\)
+.*: (06 10 00 01|01 00 10 06) pla r7,65972
+.*: (38 e0 01 b4|b4 01 e0 38)
.*: (88 c7 00 00|00 00 c7 88) lbz r6,0\(r7\)
diff --git a/ld/testsuite/ld-powerpc/pcrelopt.s b/ld/testsuite/ld-powerpc/pcrelopt.s
index 78b0f51f73..715a52b5f7 100644
--- a/ld/testsuite/ld-powerpc/pcrelopt.s
+++ b/ld/testsuite/ld-powerpc/pcrelopt.s
@@ -103,6 +103,18 @@ _start:
.reloc .-8,R_PPC64_PCREL_OPT,0f-(.-8)
0: stxv 0,0(9)
+#offsets are allowed too
+ pld 9,sym@got@pcrel
+0:
+ lbz 3,0x1234(9)
+ .reloc 0b-8,R_PPC64_PCREL_OPT,(.-4)-(0b-8)
+
+#and prefix insns as the second insn
+ pld 9,sym@got@pcrel
+0:
+ plq 4,0x12345678(9)
+ .reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
+
# This should not optimize
.extern i
.type i,@object
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC64 GOT_PCREL relocs
@ 2019-09-05 7:02 gdb-buildbot
2019-09-05 7:21 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-05 7:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 133a1f6041bc131afcb39bf1a124d8e0fc5547ea ***
commit 133a1f6041bc131afcb39bf1a124d8e0fc5547ea
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 5 10:06:42 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 5 15:25:51 2019 +0930
PowerPC64 GOT_PCREL relocs
PC-relative relocs typically use the addend in adjusting what they are
relative to. For example:
bcl 20,31,1f
1: mflr 12
addi 12,12,xxx-1b
generates "R_PPC64_REL16 xxx+0x4" for the addi (when little-endian).
The addend reflects the fact that you want the offset relative to the
previous insn not the current one in this case.
So the question is, will we ever want to do something like that for an
instruction using R_PPC64_GOT_PCREL34? I thought so at the time I
first implemented support in ld but at the time I think the hardware
was possibly going to support pcrel+offset+reg addressing. In which
case you might want something like:
load_big_offset_into_r2
pld 3,sym-big_offset@got@pcrel(2)
which would be a way of supporting more than 8G offsets from code to
the GOT. We could do the same with
load_big_offset_into_r2
pla 9,sym-big_offset@got@pcrel
ldx 3,9,2
However, this is really a poor version of TOC-pointer relative code.
So let's go with an addend on R_PPC64_GOT_PCREL34 meaning that
sym+addend should be put in a GOT entry, and the relocation calculate
the pc-relative offset to that GOT entry.
Note that this is an extension to the ABI, which says (by the
expression given for GOT relocs) that non-zero addends on GOT and PLT
relocs are ignored. This is true for all GOT/PLT relocs, not just the
pcrel ones.
* elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
GOT_PCREL and PLT_PCREL relocs as affecting the value stored
in the GOT/PLT entry rather than affecting the offset to that
GOI/PLT entry.
(ppc64_elf_edit_toc, ppc64_elf_relocate_section): Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7f587df81a..8ed849d74d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
+ GOT_PCREL and PLT_PCREL relocs as affecting the value stored
+ in the GOT/PLT entry rather than affecting the offset to that
+ GOI/PLT entry.
+ (ppc64_elf_edit_toc, ppc64_elf_relocate_section): Likewise.
+
2019-09-05 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index e39b6faf17..88ace7e6fe 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4524,7 +4524,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
int tls_type;
struct _ppc64_elf_section_data *ppc64_sec;
struct plt_entry **ifunc, **plt_list;
- bfd_vma sym_addend;
r_symndx = ELF64_R_SYM (rel->r_info);
if (r_symndx < symtab_hdr->sh_info)
@@ -4550,18 +4549,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_D28:
case R_PPC64_TPREL34:
case R_PPC64_DTPREL34:
- htab->powerxx_stubs = 1;
- /* Fall through. */
- default:
- /* Somewhat foolishly, because the ABIs don't specifically
- allow it, ppc64 gas and ld support GOT and PLT relocs
- with non-zero addends where the addend results in
- sym+addend being stored in the GOT or PLT entry. This
- can't be supported for pcrel relocs because the addend is
- used to specify the pcrel offset. */
- sym_addend = rel->r_addend;
- break;
-
case R_PPC64_PCREL34:
case R_PPC64_GOT_PCREL34:
case R_PPC64_GOT_TLSGD34:
@@ -4572,7 +4559,8 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_PLT_PCREL34_NOTOC:
case R_PPC64_PCREL28:
htab->powerxx_stubs = 1;
- sym_addend = 0;
+ break;
+ default:
break;
}
@@ -4621,7 +4609,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
{
ifunc = update_local_sym_info (abfd, symtab_hdr, r_symndx,
- sym_addend,
+ rel->r_addend,
NON_GOT | PLT_IFUNC);
if (ifunc == NULL)
return FALSE;
@@ -4638,7 +4626,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
((struct ppc_link_hash_entry *) h)->tls_mask |= TLS_TLS | TLS_MARK;
else
if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
- sym_addend,
+ rel->r_addend,
NON_GOT | TLS_TLS | TLS_MARK))
return FALSE;
sec->has_tls_reloc = 1;
@@ -4712,7 +4700,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
eh = (struct ppc_link_hash_entry *) h;
for (ent = eh->elf.got.glist; ent != NULL; ent = ent->next)
- if (ent->addend == sym_addend
+ if (ent->addend == rel->r_addend
&& ent->owner == abfd
&& ent->tls_type == tls_type)
break;
@@ -4723,7 +4711,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (ent == NULL)
return FALSE;
ent->next = eh->elf.got.glist;
- ent->addend = sym_addend;
+ ent->addend = rel->r_addend;
ent->owner = abfd;
ent->tls_type = tls_type;
ent->is_indirect = FALSE;
@@ -4736,14 +4724,14 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
else
/* This is a global offset table entry for a local symbol. */
if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
- sym_addend, tls_type))
+ rel->r_addend, tls_type))
return FALSE;
/* We may also need a plt entry if the symbol turns out to be
an ifunc. */
if (h != NULL && !bfd_link_pic (info) && abiversion (abfd) != 1)
{
- if (!update_plt_info (abfd, &h->plt.plist, sym_addend))
+ if (!update_plt_info (abfd, &h->plt.plist, rel->r_addend))
return FALSE;
}
break;
@@ -4769,9 +4757,9 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
if (plt_list == NULL)
plt_list = update_local_sym_info (abfd, symtab_hdr, r_symndx,
- sym_addend,
+ rel->r_addend,
NON_GOT | PLT_KEEP);
- if (!update_plt_info (abfd, plt_list, sym_addend))
+ if (!update_plt_info (abfd, plt_list, rel->r_addend))
return FALSE;
break;
@@ -4929,7 +4917,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
/* We may need a .plt entry if the function this reloc
refers to is in a shared lib. */
if (plt_list
- && !update_plt_info (abfd, plt_list, sym_addend))
+ && !update_plt_info (abfd, plt_list, rel->r_addend))
return FALSE;
break;
@@ -4973,7 +4961,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
else
if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
- sym_addend, tls_type))
+ rel->r_addend, tls_type))
return FALSE;
ppc64_sec = ppc64_elf_section_data (sec);
@@ -4995,7 +4983,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
BFD_ASSERT (rel->r_offset % 8 == 0);
ppc64_sec->u.toc.symndx[rel->r_offset / 8] = r_symndx;
- ppc64_sec->u.toc.add[rel->r_offset / 8] = sym_addend;
+ ppc64_sec->u.toc.add[rel->r_offset / 8] = rel->r_addend;
/* Mark the second slot of a GD or LD entry.
-1 to indicate GD and -2 to indicate LD. */
@@ -9044,7 +9032,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
asection *sym_sec;
struct elf_link_hash_entry *h;
struct got_entry *ent;
- bfd_vma sym_addend, val, pc;
+ bfd_vma val, pc;
unsigned char buf[8];
unsigned int insn;
enum {no_check, check_lo, check_ha} insn_check;
@@ -9119,11 +9107,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
case R_PPC64_GOT16_HA:
case R_PPC64_GOT16_LO_DS:
- sym_addend = rel->r_addend;
- break;
-
case R_PPC64_GOT_PCREL34:
- sym_addend = 0;
break;
}
@@ -9144,7 +9128,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
val = h->root.u.def.value;
else
val = sym->st_value;
- val += sym_addend;
+ val += rel->r_addend;
val += sym_sec->output_section->vma + sym_sec->output_offset;
/* Fudge factor to allow for the fact that the preliminary layout
@@ -9209,7 +9193,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
ent = local_got_ents[r_symndx];
}
for (; ent != NULL; ent = ent->next)
- if (ent->addend == sym_addend
+ if (ent->addend == rel->r_addend
&& ent->owner == ibfd
&& ent->tls_type == 0)
break;
@@ -15535,14 +15519,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
bfd_vma off;
unsigned long indx = 0;
struct got_entry *ent;
- bfd_vma sym_addend = orig_rel.r_addend;
-
- if (r_type == R_PPC64_GOT_PCREL34
- || r_type == R_PPC64_GOT_TLSGD34
- || r_type == R_PPC64_GOT_TLSLD34
- || r_type == R_PPC64_GOT_TPREL34
- || r_type == R_PPC64_GOT_DTPREL34)
- sym_addend = 0;
if (tls_type == (TLS_TLS | TLS_LD)
&& (h == NULL
@@ -15576,7 +15552,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
}
for (; ent != NULL; ent = ent->next)
- if (ent->addend == sym_addend
+ if (ent->addend == orig_rel.r_addend
&& ent->owner == input_bfd
&& ent->tls_type == tls_type)
break;
@@ -15633,7 +15609,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
outrel.r_offset = (got->output_section->vma
+ got->output_offset
+ off);
- outrel.r_addend = sym_addend;
+ outrel.r_addend = orig_rel.r_addend;
if (tls_type & (TLS_LD | TLS_GD))
{
outrel.r_addend = 0;
@@ -15646,7 +15622,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
bfd_elf64_swap_reloca_out (output_bfd,
&outrel, loc);
outrel.r_offset += 8;
- outrel.r_addend = sym_addend;
+ outrel.r_addend = orig_rel.r_addend;
outrel.r_info
= ELF64_R_INFO (indx, R_PPC64_DTPREL64);
}
@@ -15692,7 +15668,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
emitting a reloc. */
else
{
- relocation += sym_addend;
+ relocation += orig_rel.r_addend;
if (tls_type != 0)
{
if (htab->elf.tls_sec == NULL)
@@ -15723,6 +15699,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
abort ();
relocation = got->output_section->vma + got->output_offset + off;
+ addend = 0;
if (!(r_type == R_PPC64_GOT_PCREL34
|| r_type == R_PPC64_GOT_TLSGD34
|| r_type == R_PPC64_GOT_TLSLD34
@@ -15760,15 +15737,10 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (plt_list)
{
struct plt_entry *ent;
- bfd_vma sym_addend = orig_rel.r_addend;
-
- if (r_type == R_PPC64_PLT_PCREL34
- || r_type == R_PPC64_PLT_PCREL34_NOTOC)
- sym_addend = 0;
for (ent = *plt_list; ent != NULL; ent = ent->next)
if (ent->plt.offset != (bfd_vma) -1
- && ent->addend == sym_addend)
+ && ent->addend == orig_rel.r_addend)
{
asection *plt;
bfd_vma got;
@@ -15797,9 +15769,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
+ htab->sec_info[input_section->id].toc_off);
relocation -= got;
}
- if (r_type != R_PPC64_PLT_PCREL34
- && r_type != R_PPC64_PLT_PCREL34_NOTOC)
- addend = 0;
+ addend = 0;
unresolved_reloc = FALSE;
break;
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Restore breakpoint command in ui-redirect.exp
@ 2019-09-05 13:10 gdb-buildbot
2019-09-05 13:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-05 13:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 30331a6ca014f6b51b17627aa968c6b79627ce21 ***
commit 30331a6ca014f6b51b17627aa968c6b79627ce21
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 5 14:33:10 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 5 14:33:10 2019 +0200
[gdb/testsuite] Restore breakpoint command in ui-redirect.exp
In gdb.base/ui-redirect.exp, the "save breakpoint" command is used to write
the current breakpoints to a file, but the actual output is not verified.
Consequently, the test has regressed in that the "print 1" command associated
with a breakpoint on main is removed by a subsequent runto_main, which first
deletes all breakpoints:
...
(gdb) break main
Breakpoint 1 at 0x4004d7: file start.c, line 34.
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
> PASS: gdb.base/ui-redirect.exp: commands
print 1
> PASS: gdb.base/ui-redirect.exp: print 1
end
(gdb) PASS: gdb.base/ui-redirect.exp: end
delete breakpoints
Delete all breakpoints? (y or n) y
...
and consequently the "save breakpoint" output is missing the breakpoint
command for main:
...
break main
- commands
- print 1
- end
break foo
break bar
...
Fix this by replacing "gdb_breakpoint main" with runto_main, and verifying the
"save breakpoints" output.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-05 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (cmp_file_string): New proc.
* gdb.base/ui-redirect.exp: Replace "gdb_breakpoint main" with
runto_main. Verify save breakpoints output.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 46c7b5f927..0f6917a5a0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-05 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdb.exp (cmp_file_string): New proc.
+ * gdb.base/ui-redirect.exp: Replace "gdb_breakpoint main" with
+ runto_main. Verify save breakpoints output.
+
2019-09-04 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.base/info-var.exp: Test info variables without running
diff --git a/gdb/testsuite/gdb.base/ui-redirect.exp b/gdb/testsuite/gdb.base/ui-redirect.exp
index 4507ac51a2..efcac14b7c 100644
--- a/gdb/testsuite/gdb.base/ui-redirect.exp
+++ b/gdb/testsuite/gdb.base/ui-redirect.exp
@@ -23,7 +23,10 @@ if { [prepare_for_testing "failed to prepare" ui-redirect start.c] } {
return -1
}
-gdb_breakpoint main
+if ![runto_main] {
+ fail "can't run to main"
+ return -1
+}
set test "commands"
gdb_test_multiple $test $test {
@@ -40,18 +43,27 @@ gdb_test_multiple $test $test {
}
gdb_test_no_output "end"
-if ![runto_main] {
- fail "can't run to main"
- return -1
-}
gdb_breakpoint "foo"
gdb_breakpoint "bar"
+set cmds [multi_line_input \
+ "break main" \
+ " commands" \
+ " print 1" \
+ " end" \
+ "break foo" \
+ "break bar"]
+set cmds "$cmds\n"
+set outdir [standard_output_file {}]
+set cmds_file "$outdir/cmds.txt"
+
with_test_prefix "logging" {
gdb_test_no_output "set logging file /dev/null"
gdb_test "set logging on" \
"Copying output to /dev/null.*Copying debug output to /dev/null\\."
- gdb_test "save breakpoints /dev/null" "Saved to file '/dev/null'\\."
+ gdb_test "save breakpoints $cmds_file" "Saved to file '$cmds_file'\\." \
+ "save breakpoints cmds.txt"
+ cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
gdb_test "set logging off" "Done logging to /dev/null\\."
gdb_test "help" "List of classes of commands:.*"
}
@@ -60,7 +72,8 @@ with_test_prefix "redirect" {
gdb_test "set logging redirect on"
gdb_test "set logging on" \
"Redirecting output to /dev/null.*Copying debug output to /dev/null\\."
- gdb_test_no_output "save breakpoints /dev/null"
+ gdb_test_no_output "save breakpoints $cmds_file" "save breakpoints cmds.txt"
+ cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
gdb_test "set logging off" "Done logging to /dev/null\\."
gdb_test "help" "List of classes of commands:.*"
}
@@ -71,7 +84,9 @@ with_test_prefix "redirect while already logging" {
"Copying output to /dev/null.*Copying debug output to /dev/null\\."
gdb_test "set logging redirect on" \
".*warning: Currently logging .*Turn the logging off and on to make the new setting effective.*"
- gdb_test "save breakpoints /dev/null" "Saved to file '/dev/null'\\."
+ gdb_test "save breakpoints $cmds_file" "Saved to file '$cmds_file'\\." \
+ "save breakpoints cmds.txt"
+ cmp_file_string "$cmds_file" "$cmds" "cmds.txt"
gdb_test "set logging off" "Done logging to /dev/null\\."
gdb_test "help" "List of classes of commands:.*"
gdb_test_no_output "set logging redirect off"
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 76805fb5ec..acbeb01376 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -6668,5 +6668,32 @@ proc gdb_write_cmd_file { cmdline } {
catch "close $cmd_file"
}
+# Compare contents of FILE to string STR. Pass with MSG if equal, otherwise
+# fail with MSG.
+
+proc cmp_file_string { file str msg } {
+ if { ![file exists $file]} {
+ fail "$msg"
+ return
+ }
+
+ set caught_error [catch {
+ set fp [open "$file" r]
+ set file_contents [read $fp]
+ close $fp
+ } error_message]
+ if { $caught_error } then {
+ error "$error_message"
+ fail "$msg"
+ return
+ }
+
+ if { $file_contents == $str } {
+ pass "$msg"
+ } else {
+ fail "$msg"
+ }
+}
+
# Always load compatibility stuff.
load_lib future.exp
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd_get_filename
@ 2019-09-06 14:26 gdb-buildbot
2019-09-06 14:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-06 14:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b16c44debcf8a446e94e161e328169f5c8d5d811 ***
commit b16c44debcf8a446e94e161e328169f5c8d5d811
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Fri Sep 6 12:07:05 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 6 12:22:59 2019 +0930
bfd_get_filename
This macro says:
/* Cast from const char * to char * so that caller can assign to
a char * without a warning. */
I reckon that isn't such a good idea since it can result in char*
variables where const char* is appropriate. Not very many places
need the char* cast.
bfd/
* aout-target.h (object_p): Formatting.
* bfd-in.h (bfd_get_filename): Don't cast to char*.
* corefile.c (generic_core_file_matches_executable_p): Constify
variables and remove cast.
* bfd-in2.h: Regenerate.
binutils/
* nm.c (print_object_filename_bsd, print_object_filename_sysv),
(print_object_filename_posix, print_archive_filename_bsd),
(print_archive_filename_sysv, print_archive_filename_posix),
(print_archive_member_bsd, print_archive_member_sysv),
(print_archive_member_posix): Constify parameter.
(struct output_fns <print_object_filename, print_archive_filename>),
(<print_archive_member>): Likewise.
* objcopy.c (copy_archive): Add cast for make_tempdir.
ld/
* emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
variable.
* emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
gdb/
* coffread.c (coff_symfile_read): Constify filename variable.
* dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
(elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
* gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
* solib.c (reload_shared_libraries_1): Likewise.
* symfile.c (reread_symbols): Likewise.
* solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
* solib-darwin.c (darwin_bfd_open): Likewise.
* symfile-mem.c (symbol_file_add_from_memory): Likewise.
sim/cris/
* sim-if.c (sim_open): Constify filename variable.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8ed849d74d..24f5e33833 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-06 Alan Modra <amodra@gmail.com>
+
+ * aout-target.h (object_p): Formatting.
+ * bfd-in.h (bfd_get_filename): Don't cast to char*.
+ * corefile.c (generic_core_file_matches_executable_p): Constify
+ variables and remove cast.
+ * bfd-in2.h: Regenerate.
+
2019-09-05 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 2f3d5ea453..99a82bb57a 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -180,7 +180,7 @@ MY (object_p) (bfd *abfd)
#ifndef S_IXUSR
#define S_IXUSR 0100 /* Execute by owner. */
#endif
- if (stat(abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
+ if (stat (abfd->filename, &buf) == 0 && (buf.st_mode & S_IXUSR))
abfd->flags |= EXEC_P;
}
#endif /* ENTRY_CAN_BE_ZERO */
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a5e95d14aa..6544838a57 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -518,9 +518,7 @@ extern int bfd_stat (bfd *, struct stat *);
#endif
extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
-/* Cast from const char * to char * so that caller can assign to
- a char * without a warning. */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
#define bfd_get_format(abfd) ((abfd)->format)
#define bfd_get_target(abfd) ((abfd)->xvec->name)
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 63b4792818..7b1cfbcf1a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -525,9 +525,7 @@ extern int bfd_stat (bfd *, struct stat *);
#endif
extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
-/* Cast from const char * to char * so that caller can assign to
- a char * without a warning. */
-#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_filename(abfd) ((abfd)->filename)
#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
#define bfd_get_format(abfd) ((abfd)->format)
#define bfd_get_target(abfd) ((abfd)->xvec->name)
diff --git a/bfd/corefile.c b/bfd/corefile.c
index aa43da5cae..b2b3d2e26a 100644
--- a/bfd/corefile.c
+++ b/bfd/corefile.c
@@ -157,9 +157,9 @@ DESCRIPTION
bfd_boolean
generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
{
- char *exec;
- char *core;
- char *last_slash;
+ const char *exec;
+ const char *core;
+ const char *last_slash;
if (exec_bfd == NULL || core_bfd == NULL)
return TRUE;
@@ -169,7 +169,7 @@ generic_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
non-const char *. In this case, the assignement does not lead to
breaking the const, as we're only reading the string. */
- core = (char *) bfd_core_file_failing_command (core_bfd);
+ core = bfd_core_file_failing_command (core_bfd);
if (core == NULL)
return TRUE;
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 98e660d167..198380eaea 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-06 Alan Modra <amodra@gmail.com>
+
+ * nm.c (print_object_filename_bsd, print_object_filename_sysv),
+ (print_object_filename_posix, print_archive_filename_bsd),
+ (print_archive_filename_sysv, print_archive_filename_posix),
+ (print_archive_member_bsd, print_archive_member_sysv),
+ (print_archive_member_posix): Constify parameter.
+ (struct output_fns <print_object_filename, print_archive_filename>),
+ (<print_archive_member>): Likewise.
+ * objcopy.c (copy_archive): Add cast for make_tempdir.
+
2019-08-29 Alan Modra <amodra@gmail.com>
* dwarf.c (check_uvalue): Remove unnecessary pointer checks.
diff --git a/binutils/nm.c b/binutils/nm.c
index 5d3d647843..67b7ac7b12 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -77,15 +77,15 @@ struct extended_symbol_info
(sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
/* The output formatting functions. */
-static void print_object_filename_bsd (char *);
-static void print_object_filename_sysv (char *);
-static void print_object_filename_posix (char *);
-static void print_archive_filename_bsd (char *);
-static void print_archive_filename_sysv (char *);
-static void print_archive_filename_posix (char *);
-static void print_archive_member_bsd (char *, const char *);
-static void print_archive_member_sysv (char *, const char *);
-static void print_archive_member_posix (char *, const char *);
+static void print_object_filename_bsd (const char *);
+static void print_object_filename_sysv (const char *);
+static void print_object_filename_posix (const char *);
+static void print_archive_filename_bsd (const char *);
+static void print_archive_filename_sysv (const char *);
+static void print_archive_filename_posix (const char *);
+static void print_archive_member_bsd (const char *, const char *);
+static void print_archive_member_sysv (const char *, const char *);
+static void print_archive_member_posix (const char *, const char *);
static void print_symbol_filename_bsd (bfd *, bfd *);
static void print_symbol_filename_sysv (bfd *, bfd *);
static void print_symbol_filename_posix (bfd *, bfd *);
@@ -98,13 +98,13 @@ static void print_symbol_info_posix (struct extended_symbol_info *, bfd *);
struct output_fns
{
/* Print the name of an object file given on the command line. */
- void (*print_object_filename) (char *);
+ void (*print_object_filename) (const char *);
/* Print the name of an archive file given on the command line. */
- void (*print_archive_filename) (char *);
+ void (*print_archive_filename) (const char *);
/* Print the name of an archive member file. */
- void (*print_archive_member) (char *, const char *);
+ void (*print_archive_member) (const char *, const char *);
/* Print the name of the file (and archive, if there is one)
containing a symbol. */
@@ -1357,14 +1357,14 @@ display_file (char *filename)
/* Print the name of an object file given on the command line. */
static void
-print_object_filename_bsd (char *filename)
+print_object_filename_bsd (const char *filename)
{
if (filename_per_file && !filename_per_symbol)
printf ("\n%s:\n", filename);
}
static void
-print_object_filename_sysv (char *filename)
+print_object_filename_sysv (const char *filename)
{
if (undefined_only)
printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
@@ -1379,7 +1379,7 @@ Name Value Class Type Size
}
static void
-print_object_filename_posix (char *filename)
+print_object_filename_posix (const char *filename)
{
if (filename_per_file && !filename_per_symbol)
printf ("%s:\n", filename);
@@ -1388,26 +1388,26 @@ print_object_filename_posix (char *filename)
/* Print the name of an archive file given on the command line. */
static void
-print_archive_filename_bsd (char *filename)
+print_archive_filename_bsd (const char *filename)
{
if (filename_per_file)
printf ("\n%s:\n", filename);
}
static void
-print_archive_filename_sysv (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_sysv (const char *filename ATTRIBUTE_UNUSED)
{
}
static void
-print_archive_filename_posix (char *filename ATTRIBUTE_UNUSED)
+print_archive_filename_posix (const char *filename ATTRIBUTE_UNUSED)
{
}
\f
/* Print the name of an archive member file. */
static void
-print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
+print_archive_member_bsd (const char *archive ATTRIBUTE_UNUSED,
const char *filename)
{
if (!filename_per_symbol)
@@ -1415,7 +1415,7 @@ print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
}
static void
-print_archive_member_sysv (char *archive, const char *filename)
+print_archive_member_sysv (const char *archive, const char *filename)
{
if (undefined_only)
printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
@@ -1430,7 +1430,7 @@ Name Value Class Type Size
}
static void
-print_archive_member_posix (char *archive, const char *filename)
+print_archive_member_posix (const char *archive, const char *filename)
{
if (!filename_per_symbol)
printf ("%s[%s]:\n", archive, filename);
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ebb99339aa..b702e52d98 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3311,7 +3311,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
}
/* Make a temp directory to hold the contents. */
- dir = make_tempdir (bfd_get_filename (obfd));
+ dir = make_tempdir ((char *) bfd_get_filename (obfd));
if (dir == NULL)
fatal (_("cannot create tempdir for archive copying (error: %s)"),
strerror (errno));
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f55d1a8e31..40bd4d0d02 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-06 Alan Modra <amodra@gmail.com>
+
+ * coffread.c (coff_symfile_read): Constify filename variable.
+ * dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
+ (elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
+ * gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
+ * solib.c (reload_shared_libraries_1): Likewise.
+ * symfile.c (reread_symbols): Likewise.
+ * solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
+ * solib-darwin.c (darwin_bfd_open): Likewise.
+ * symfile-mem.c (symbol_file_add_from_memory): Likewise.
+
2019-09-03 Andrew Burgess <andrew.burgess@embecosm.com>
* psymtab.c (print_partial_symbols): Handle missing domain_enum
diff --git a/gdb/coffread.c b/gdb/coffread.c
index e24ab8d2f4..a70461271e 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -538,7 +538,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
struct coff_symfile_info *info;
bfd *abfd = objfile->obfd;
coff_data_type *cdata = coff_data (abfd);
- char *filename = bfd_get_filename (abfd);
+ const char *filename = bfd_get_filename (abfd);
int val;
unsigned int num_symbols;
int symtab_offset;
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index e339d1f7ec..df3ae5828a 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -587,7 +587,7 @@ dbx_symfile_init (struct objfile *objfile)
{
int val;
bfd *sym_bfd = objfile->obfd;
- char *name = bfd_get_filename (sym_bfd);
+ const char *name = bfd_get_filename (sym_bfd);
asection *text_sect;
unsigned char size_temp[DBX_STRINGTAB_SIZE_SIZE];
@@ -2939,7 +2939,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
{
int val;
bfd *sym_bfd = objfile->obfd;
- char *name = bfd_get_filename (sym_bfd);
+ const char *name = bfd_get_filename (sym_bfd);
unsigned int stabsize;
/* Allocate struct to keep track of stab reading. */
@@ -3026,7 +3026,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
{
int val;
bfd *sym_bfd = objfile->obfd;
- char *name = bfd_get_filename (sym_bfd);
+ const char *name = bfd_get_filename (sym_bfd);
stabsread_new_init ();
@@ -3107,7 +3107,7 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
{
int val;
bfd *sym_bfd = objfile->obfd;
- char *name = bfd_get_filename (sym_bfd);
+ const char *name = bfd_get_filename (sym_bfd);
asection *stabsect;
asection *stabstrsect;
asection *text_sect;
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 0334523ef1..d3b4c749f5 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -504,7 +504,7 @@ static int
gdb_bfd_close_or_warn (struct bfd *abfd)
{
int ret;
- char *name = bfd_get_filename (abfd);
+ const char *name = bfd_get_filename (abfd);
bfd_map_over_sections (abfd, free_one_bfd_section, NULL);
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index d13b651944..2b5444293e 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -643,9 +643,9 @@ solib_aix_bfd_open (const char *pathname)
along with appended parenthesized member name in order to allow commands
listing all shared libraries to display. Otherwise, we would only be
displaying the name of the archive member object. */
- xfree (bfd_get_filename (object_bfd.get ()));
+ xfree ((char *) bfd_get_filename (object_bfd.get ()));
object_bfd->filename = xstrprintf ("%s%s",
- bfd_get_filename (archive_bfd.get ()),
+ bfd_get_filename (archive_bfd.get ()),
sep);
return object_bfd;
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 443ebb64a4..3dd30d2aa3 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -670,7 +670,7 @@ darwin_bfd_open (const char *pathname)
/* The current filename for fat-binary BFDs is a name generated
by BFD, usually a string containing the name of the architecture.
Reset its value to the actual filename. */
- xfree (bfd_get_filename (res.get ()));
+ xfree ((char *) bfd_get_filename (res.get ()));
res->filename = xstrdup (pathname);
return res;
diff --git a/gdb/solib.c b/gdb/solib.c
index 29a17ad5d4..86000f6d61 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1296,7 +1296,7 @@ reload_shared_libraries_1 (int from_tty)
for (so = so_list_head; so != NULL; so = so->next)
{
- char *found_pathname = NULL;
+ const char *found_pathname = NULL;
int was_loaded = so->symbols_loaded;
symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 51a75541e5..6d1deae1e0 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -101,7 +101,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
/* Manage the new reference for the duration of this function. */
gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
- xfree (bfd_get_filename (nbfd));
+ xfree ((char *) bfd_get_filename (nbfd));
if (name == NULL)
nbfd->filename = xstrdup ("shared object read from target memory");
else
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 8843781e13..3cd514409b 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -2548,7 +2548,7 @@ reread_symbols (void)
/* Clean up any state BFD has sitting around. */
{
gdb_bfd_ref_ptr obfd (objfile->obfd);
- char *obfd_filename;
+ const char *obfd_filename;
obfd_filename = bfd_get_filename (objfile->obfd);
/* Open the new BFD before freeing the old one, so that
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 37836aa70a..13abd72d83 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-06 Alan Modra <amodra@gmail.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
+ variable.
+ * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
+ * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
+
2019-09-05 Eric Botcazou <ebotcazou@adacore.com>
PR ld/24574
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index b3c012c46d..52db0fde1d 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -552,7 +552,7 @@ gld${EMULATION_NAME}_search_needed (const char *path,
FIXME: The code could be a lot cleverer about allocating space
for the processed string. */
char * end = strchr (var, '/');
- char * replacement = NULL;
+ const char *replacement = NULL;
char * v = var + 1;
char * freeme = NULL;
unsigned flen = strlen (filename);
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 834215ac85..49bb66b906 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1513,7 +1513,7 @@ gld_${EMULATION_NAME}_after_open (void)
{
struct bfd_symbol *s;
struct bfd_link_hash_entry * blhe;
- char *other_bfd_filename;
+ const char *other_bfd_filename;
char *n;
s = (relocs[i]->sym_ptr_ptr)[0];
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 9eb7cd7a4b..4daa32b5c6 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1480,7 +1480,7 @@ gld_${EMULATION_NAME}_after_open (void)
{
struct bfd_symbol *s;
struct bfd_link_hash_entry * blhe;
- char *other_bfd_filename;
+ const char *other_bfd_filename;
char *n;
s = (relocs[i]->sym_ptr_ptr)[0];
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index 5e26f3ddf8..d37fc8f56d 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-06 Alan Modra <amodra@gmail.com>
+
+ * sim-if.c (sim_open): Constify filename variable.
+
2018-12-06 Andrew Burgess <andrew.burgess@embecosm.com>
* Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 054cce557b..1a5d421caf 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -746,7 +746,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
specified. */
if (abfd != NULL && !cris_bare_iron)
{
- char *name = bfd_get_filename (abfd);
+ const char *name = bfd_get_filename (abfd);
char **my_environ = GET_ENVIRON ();
/* We use these maps to give the same behavior as the old xsim
simulator. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change int to bool for the relocate_* functions
@ 2019-09-06 20:12 gdb-buildbot
2019-09-06 20:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-06 20:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ead0e69a4ab34d0c689f0c4c310b8d788867da32 ***
commit ead0e69a4ab34d0c689f0c4c310b8d788867da32
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Sep 6 14:19:40 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 6 14:34:00 2019 -0500
Change int to bool for the relocate_* functions
These parameters are only used as bools. This also
renames "flag" to "relocatable" to make it clearer
what it does.
gdb/ChangeLog:
2019-09-06 Christian Biesinger <cbiesinger@google.com>
* defs.h (relocate_gdb_directory): Change int to bool in
signature and rename flag to relocatable.
* main.c (relocate_path): Likewise.
(relocate_gdb_directory): Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 40bd4d0d02..acfc888aac 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-06 Christian Biesinger <cbiesinger@google.com>
+
+ * defs.h (relocate_gdb_directory): Change int to bool in
+ signature and rename flag to relocatable.
+ * main.c (relocate_path): Likewise.
+ (relocate_gdb_directory): Likewise.
+
2019-09-06 Alan Modra <amodra@gmail.com>
* coffread.c (coff_symfile_read): Constify filename variable.
diff --git a/gdb/defs.h b/gdb/defs.h
index ece3006de4..14e0a3e1d1 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -282,7 +282,7 @@ struct value;
/* This really belong in utils.c (path-utils.c?), but it references some
globals that are currently only available to main.c. */
-extern char *relocate_gdb_directory (const char *initial, int flag);
+extern char *relocate_gdb_directory (const char *initial, bool relocatable);
\f
/* Annotation stuff. */
diff --git a/gdb/main.c b/gdb/main.c
index 678c413021..129c57c1d1 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -139,14 +139,14 @@ set_gdb_data_directory (const char *new_datadir)
/* Relocate a file or directory. PROGNAME is the name by which gdb
was invoked (i.e., argv[0]). INITIAL is the default value for the
- file or directory. FLAG is true if the value is relocatable, false
- otherwise. Returns a newly allocated string; this may return NULL
- under the same conditions as make_relative_prefix. */
+ file or directory. RELOCATABLE is true if the value is relocatable,
+ false otherwise. Returns a newly allocated string; this may return
+ NULL under the same conditions as make_relative_prefix. */
static char *
-relocate_path (const char *progname, const char *initial, int flag)
+relocate_path (const char *progname, const char *initial, bool relocatable)
{
- if (flag)
+ if (relocatable)
return make_relative_prefix (progname, BINDIR, initial);
return xstrdup (initial);
}
@@ -158,11 +158,11 @@ relocate_path (const char *progname, const char *initial, int flag)
function always returns a newly-allocated string. */
char *
-relocate_gdb_directory (const char *initial, int flag)
+relocate_gdb_directory (const char *initial, bool relocatable)
{
char *dir;
- dir = relocate_path (gdb_program_name, initial, flag);
+ dir = relocate_path (gdb_program_name, initial, relocatable);
if (dir)
{
struct stat s;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change lookup_symbol's block_index parameter type to block_enum
@ 2019-09-07 16:44 gdb-buildbot
2019-09-07 16:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-07 16:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c7f839cbf08c397f3ab208054f11cfc1236ee143 ***
commit c7f839cbf08c397f3ab208054f11cfc1236ee143
Author: Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sat Sep 7 12:03:56 2019 -0400
Commit: Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 7 12:06:01 2019 -0400
Change lookup_symbol's block_index parameter type to block_enum
The only two values valid to pass to the block_index parameter of
quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
part of enum block_enum. Change the type of that parameter to
block_enum.
Change also the block_index field of dw2_symtab_iterator in the same
way.. This makes it consistent with dw2_debug_names_iterator, which
already uses block_enum for its block_index field.
This is a follow-up to this thread:
https://sourceware.org/ml/gdb-patches/2019-08/msg00097.html
gdb/ChangeLog:
* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
Change type to gdb::optional<block_enum>.
(dw2_symtab_iter_init): Change block_index parameter type
to gdb::optional<block_enum>.
(dw2_lookup_symbol): Change block_index parameter
type to block_enum.c
(dw2_debug_names_lookup_symbol): Likewise.
* psymtab.c (psym_lookup_symbol): Likewise.
* symfile-debug.c (debug_qf_lookup_symbol): Likewise.
* symfile.h (struct quick_symbol_functions) <lookup_symbol>:
Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index acfc888aac..d5938be9a0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-09-07 Simon Marchi <simon.marchi@efficios.com>
+
+ * dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
+ Change type to gdb::optional<block_enum>.
+ (dw2_symtab_iter_init): Change block_index parameter type
+ to gdb::optional<block_enum>.
+ (dw2_lookup_symbol): Change block_index parameter
+ type to block_enum.c
+ (dw2_debug_names_lookup_symbol): Likewise.
+ * psymtab.c (psym_lookup_symbol): Likewise.
+ * symfile-debug.c (debug_qf_lookup_symbol): Likewise.
+ * symfile.h (struct quick_symbol_functions) <lookup_symbol>:
+ Likewise.
+
2019-09-06 Christian Biesinger <cbiesinger@google.com>
* defs.h (relocate_gdb_directory): Change int to bool in
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index fb888da7b8..69bb5bdbaa 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3883,7 +3883,7 @@ struct dw2_symtab_iterator
struct dwarf2_per_objfile *dwarf2_per_objfile;
/* If set, only look for symbols that match that block. Valid values are
GLOBAL_BLOCK and STATIC_BLOCK. */
- gdb::optional<int> block_index;
+ gdb::optional<block_enum> block_index;
/* The kind of symbol we're looking for. */
domain_enum domain;
/* The list of CUs from the index entry of the symbol,
@@ -3905,7 +3905,7 @@ struct dw2_symtab_iterator
static void
dw2_symtab_iter_init (struct dw2_symtab_iterator *iter,
struct dwarf2_per_objfile *dwarf2_per_objfile,
- gdb::optional<int> block_index,
+ gdb::optional<block_enum> block_index,
domain_enum domain,
const char *name)
{
@@ -4018,7 +4018,7 @@ dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
}
static struct compunit_symtab *
-dw2_lookup_symbol (struct objfile *objfile, int block_index,
+dw2_lookup_symbol (struct objfile *objfile, block_enum block_index,
const char *name, domain_enum domain)
{
struct compunit_symtab *stab_best = NULL;
@@ -6004,10 +6004,9 @@ dw2_debug_names_iterator::next ()
}
static struct compunit_symtab *
-dw2_debug_names_lookup_symbol (struct objfile *objfile, int block_index_int,
+dw2_debug_names_lookup_symbol (struct objfile *objfile, block_enum block_index,
const char *name, domain_enum domain)
{
- const block_enum block_index = static_cast<block_enum> (block_index_int);
struct dwarf2_per_objfile *dwarf2_per_objfile
= get_dwarf2_per_objfile (objfile);
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 6f9bf7268f..70d04f8605 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -479,7 +479,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
static struct compunit_symtab *
psym_lookup_symbol (struct objfile *objfile,
- int block_index, const char *name,
+ block_enum block_index, const char *name,
const domain_enum domain)
{
const int psymtab_index = (block_index == GLOBAL_BLOCK ? 1 : 0);
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 0f9da66e53..c5b565fc51 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -140,8 +140,8 @@ debug_qf_map_symtabs_matching_filename
}
static struct compunit_symtab *
-debug_qf_lookup_symbol (struct objfile *objfile, int kind, const char *name,
- domain_enum domain)
+debug_qf_lookup_symbol (struct objfile *objfile, block_enum kind,
+ const char *name, domain_enum domain)
{
const struct debug_sym_fns_data *debug_data
= symfile_debug_objfile_data_key.get (objfile);
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 741b085e0c..5e4d2f5b53 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -179,7 +179,8 @@ struct quick_symbol_functions
contains !TYPE_OPAQUE symbol prefer its compunit. If it contains
only TYPE_OPAQUE symbol(s), return at least that compunit. */
struct compunit_symtab *(*lookup_symbol) (struct objfile *objfile,
- int block_index, const char *name,
+ block_enum block_index,
+ const char *name,
domain_enum domain);
/* Print statistics about any indices loaded for OBJFILE. The
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Truncate long TUI window titles
@ 2019-09-08 20:44 gdb-buildbot
2019-09-08 20:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-08 20:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8634b4628ea00a95ce3dfe8f9915724e8d710dad ***
commit 8634b4628ea00a95ce3dfe8f9915724e8d710dad
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 15:07:01 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Sun Sep 8 14:06:54 2019 -0600
Truncate long TUI window titles
If a TUI window has a long title, it can overflow the title line.
This changes the TUI to use just the tail part of the title in this
case.
gdb/ChangeLog
2019-09-08 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (box_win): Truncate long window titles.
gdb/testsuite/ChangeLog
2019-09-08 Tom Tromey <tom@tromey.com>
* gdb.tui/resize.exp: Remove setup_xfail.
* gdb.tui/regs.exp: Remove setup_xfail.
* gdb.tui/basic.exp: Remove setup_xfail.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d5938be9a0..af1608db9a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-08 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-wingeneral.c (box_win): Truncate long window titles.
+
2019-09-07 Simon Marchi <simon.marchi@efficios.com>
* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a6a645b81b..6cee4787e0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-08 Tom Tromey <tom@tromey.com>
+
+ * gdb.tui/resize.exp: Remove setup_xfail.
+ * gdb.tui/regs.exp: Remove setup_xfail.
+ * gdb.tui/basic.exp: Remove setup_xfail.
+
2019-09-06 David Blaikie <dblaikie@gmail.com>
* gdb.base/label.exp: un-XFAIL label related tests under Clang.
diff --git a/gdb/testsuite/gdb.tui/basic.exp b/gdb/testsuite/gdb.tui/basic.exp
index f60011c386..716c52f68a 100644
--- a/gdb/testsuite/gdb.tui/basic.exp
+++ b/gdb/testsuite/gdb.tui/basic.exp
@@ -35,9 +35,6 @@ gdb_assert {![string match "No Source Available" $text]} \
Term::command "list main"
Term::check_contents "list main" "21 *return 0"
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
Term::check_box "source box" 0 0 80 15
Term::command "layout asm"
@@ -48,8 +45,5 @@ Term::check_box "asm box" 0 0 80 15
Term::command "layout split"
Term::check_contents "split layout contents" "21 *return 0.*$hex <main>"
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
Term::check_box "source box in split layout" 0 0 80 8
Term::check_box "asm box in split layout" 0 7 80 8
diff --git a/gdb/testsuite/gdb.tui/regs.exp b/gdb/testsuite/gdb.tui/regs.exp
index f17b1db8d4..1af943dd15 100644
--- a/gdb/testsuite/gdb.tui/regs.exp
+++ b/gdb/testsuite/gdb.tui/regs.exp
@@ -38,9 +38,6 @@ Term::check_contents "source at startup" ">|21 *return 0"
Term::command "layout regs"
Term::check_box "register box" 0 0 80 8
-# This check fails because the file name in the title overwrites the
-# box.
-setup_xfail *-*-*
Term::check_box "source box in regs layout" 0 7 80 8
set text [Term::get_line 1]
diff --git a/gdb/testsuite/gdb.tui/resize.exp b/gdb/testsuite/gdb.tui/resize.exp
index 8484e03c71..3b885e1198 100644
--- a/gdb/testsuite/gdb.tui/resize.exp
+++ b/gdb/testsuite/gdb.tui/resize.exp
@@ -37,6 +37,4 @@ if {![Term::enter_tui]} {
Term::check_contents "source at startup" ">|21 *return 0"
Term::resize 40 90
-# Resizing seems to be somewhat broken.
-setup_xfail *-*-*
Term::check_box "source box after resize" 0 0 90 23
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index f900eab013..235c17c5fa 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -74,7 +74,21 @@ box_win (struct tui_win_info *win_info,
box (win, tui_border_vline, tui_border_hline);
#endif
if (!win_info->title.empty ())
- mvwaddstr (win, 0, 3, win_info->title.c_str ());
+ {
+ /* Emit "+-TITLE-+" -- so 2 characters on the right and 2 on
+ the left. */
+ int max_len = win_info->width - 2 - 2;
+
+ if (win_info->title.size () <= max_len)
+ mvwaddstr (win, 0, 3, win_info->title.c_str ());
+ else
+ {
+ std::string truncated
+ = "..." + win_info->title.substr (win_info->title.size ()
+ - max_len + 3);
+ mvwaddstr (win, 0, 3, truncated.c_str ());
+ }
+ }
wattroff (win, attrs);
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add markers for 2.33 branch to NEWS and ChangeLog files.
@ 2019-09-09 10:14 gdb-buildbot
2019-09-09 10:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-09 10:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60391a255b720e37ab1efbb7e83bf7dfa270a0fe ***
commit 60391a255b720e37ab1efbb7e83bf7dfa270a0fe
Author: Phil Blundell <philb@brightsign.biz>
AuthorDate: Mon Sep 9 10:27:03 2019 +0100
Commit: Phil Blundell <philb@brightsign.biz>
CommitDate: Mon Sep 9 10:27:40 2019 +0100
Add markers for 2.33 branch to NEWS and ChangeLog files.
diff --git a/ChangeLog b/ChangeLog
index 76c121f680..5d1dfee8dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created
+
2019-08-19 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 24f5e33833..aca3c80a2b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-09-06 Alan Modra <amodra@gmail.com>
* aout-target.h (object_p): Formatting.
diff --git a/binutils/.README-how-to-make-a-release.swp b/binutils/.README-how-to-make-a-release.swp
new file mode 100644
index 0000000000..063e52a5aa
Binary files /dev/null and b/binutils/.README-how-to-make-a-release.swp differ
diff --git a/binutils/BRANCHES b/binutils/BRANCHES
index 63f1e84d26..020b53c274 100644
--- a/binutils/BRANCHES
+++ b/binutils/BRANCHES
@@ -48,6 +48,7 @@ binutils-2_29-branch
binutils-2_30-branch
binutils-2_31-branch
binutils-2_32-branch
+binutils-2_33-branch
\f
Copyright (C) 2012-2019 Free Software Foundation, Inc.
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 198380eaea..5e8e03d604 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-09-06 Alan Modra <amodra@gmail.com>
* nm.c (print_object_filename_bsd, print_object_filename_sysv),
diff --git a/binutils/NEWS b/binutils/NEWS
index 349af31c36..e6afc4ba29 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,4 +1,7 @@
-*- text -*-
+
+Changes in 2.33:
+
* Add --source-comment[=<txt>] option to objdump which if present,
provides a prefix to source code lines displayed in a disassembly.
diff --git a/config/ChangeLog b/config/ChangeLog
index a22d73c8b5..dabbac3b49 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2018-06-24 Nick Clifton <nickc@redhat.com>
2.32 branch created.
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 66cf2dab1a..375cb19966 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-07-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* bpf.cpu (h-gpr): when disassembling, use %r0 and %r6 instead of
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 30b167a7ef..3f7e39e6e3 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-08-02 Alan Modra <amodra@gmail.com>
* powerpc.h (R_PPC64_TPREL34, R_PPC64_DTPREL34),
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 06b7cfdf5d..9c484d3bc6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-09-05 Alan Modra <amodra@gmail.com>
* config/tc-ppc.c (ppc_elf_suffix): Display the relocation
diff --git a/gas/NEWS b/gas/NEWS
index 2d8415f874..478860acaf 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,7 @@
-*- text -*-
+Changes in 2.33:
+
* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
instructions.
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 6fe991d80d..77a72e3742 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-08-16 Martin Liska <mliska@suse.cz>
PR ld/24912
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 1acb81aabc..d0aa7f8f1f 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-05-20 Nick Clifton <nickc@redhat.com>
PR 24569
diff --git a/include/ChangeLog b/include/ChangeLog
index 3055551062..eb500e146e 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-08-30 Claudiu Zissulescu <claziss@gmail.com>
* opcode/arc.h (FASTMATH): Move it from insn_class_t to
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 84a15d6fa3..204310c939 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-09-06 Alan Modra <amodra@gmail.com>
* emultempl/beos.em (sort_by_file_name): Use appropriate
diff --git a/ld/NEWS b/ld/NEWS
index f66b35a95c..45c48f5c54 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,7 @@
-*- text -*-
+Changes in 2.33:
+
* Add command-line option --no-print-map-discarded.
* The Cortex-A53 Erratum 843419 workaround now supports a choice of which
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 4170762574..e56e2c0b86 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-07-18 Nick Alcock <nick.alcock@oracle.com>
* ctf-types.c (ctf_type_aname_raw): New.
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 64b6a07ac4..67bc754be5 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Phil Blundell <pb@pbcl.net>
+
+ binutils 2.33 branch created.
+
2019-09-03 Nick Clifton <nickc@redhat.com>
PR 24961
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-09 10:14 [binutils-gdb] Add markers for 2.33 branch to NEWS and ChangeLog files gdb-buildbot
@ 2019-09-09 10:18 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-09 10:18 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/25
Author:
Phil Blundell <philb@brightsign.biz>
Commit tested:
60391a255b720e37ab1efbb7e83bf7dfa270a0fe
Subject of commit:
Add markers for 2.33 branch to NEWS and ChangeLog files.
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/60/60391a255b720e37ab1efbb7e83bf7dfa270a0fe/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.gdb/unittest.exp: maintenance check xml-descriptions ${srcdir}/../features
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/60/60391a255b720e37ab1efbb7e83bf7dfa270a0fe//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/60/60391a255b720e37ab1efbb7e83bf7dfa270a0fe//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix leak detected in python.c initialization code.
@ 2019-09-09 22:31 gdb-buildbot
2019-09-09 22:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-09 22:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e4df087431f10f6d9079d8f0c78ad0414e814b92 ***
commit e4df087431f10f6d9079d8f0c78ad0414e814b92
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Sep 7 20:54:44 2019 +0200
Commit: Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Mon Sep 9 23:50:37 2019 +0200
Fix leak detected in python.c initialization code.
Valgrind reports the below leak.
Make the variable progname_copy static, so that Valgrind continues
to find a pointer to the memory given to Python.
Note that the comment in do_start_initialization and the Python documentation
indicates that the progname given to Py_SetProgramName cannot be freed.
However, in Python 3.7.4, Py_SetProgramName does:
void
Py_SetProgramName(const wchar_t *program_name)
{
...
PyMem_RawFree(_Py_path_config.program_name);
_Py_path_config.program_name = _PyMem_RawWcsdup(program_name);
So, it looks like 3.7.4 Python duplicates its argument, which explains
the leak found by Valgrind.
It looks better to respect the doc and not have GDB freeing the string
given to Py_SetProgramName, and avoid the leak error by declaring
the progname_copy static.
This will work with Python versions that really use this string without
duplicating it, and avoids a leak report for Python version that duplicates
it.
==4023== 200 bytes in 1 blocks are definitely lost in loss record 4,545 of 7,116^M
==4023== at 0x4C29F33: malloc (vg_replace_malloc.c:307)^M
==4023== by 0x446D27: xmalloc (alloc.c:60)^M
==4023== by 0x657C77: do_start_initialization (python.c:1610)^M
==4023== by 0x657C77: _initialize_python() (python.c:1823)^M
==4023== by 0x75FE24: initialize_all_files() (init.c:231)^M
==4023== by 0x708A94: gdb_init(char*) (top.c:2242)^M
==4023== by 0x5E7460: captured_main_1 (main.c:857)^M
==4023== by 0x5E7460: captured_main (main.c:1161)^M
==4023== by 0x5E7460: gdb_main(captured_main_args*) (main.c:1186)^M
==4023== by 0x4122D4: main (gdb.c:32)^M
gdb/ChangeLog
2019-09-09 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* python/python.c (do_start_initialization): Make progname_copy static,
to avoid a leak report.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index af1608db9a..eb6d062812 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-09 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * python/python.c (do_start_initialization): Make progname_copy static,
+ to avoid a leak report.
+
2019-09-08 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (box_win): Truncate long window titles.
diff --git a/gdb/python/python.c b/gdb/python/python.c
index b309ae91ba..9c49151db3 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1590,7 +1590,14 @@ do_start_initialization ()
{
#ifdef IS_PY3K
size_t progsize, count;
- wchar_t *progname_copy;
+ /* Python documentation indicates that the memory given
+ to Py_SetProgramName cannot be freed. However, it seems that
+ at least Python 3.7.4 Py_SetProgramName takes a copy of the
+ given program_name. Making progname_copy static and not release
+ the memory avoids a leak report for Python versions that duplicate
+ program_name, and respect the requirement of Py_SetProgramName
+ for Python versions that do not duplicate program_name. */
+ static wchar_t *progname_copy;
#endif
#ifdef WITH_PYTHON_PATH
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use ui_out for "info win"
@ 2019-09-09 23:50 gdb-buildbot
2019-09-09 23:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-09 23:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 25a2915e8dba63abef6d7434114f36efeb5c09fe ***
commit 25a2915e8dba63abef6d7434114f36efeb5c09fe
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:53:42 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Mon Sep 9 17:06:22 2019 -0600
Use ui_out for "info win"
This changes the "info win" command to use ui-out. This yields
somewhat nicer table output.
gdb/ChangeLog
2019-09-09 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_all_windows_info): Use ui_out.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eb6d062812..542f37fca0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-09 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-win.c (tui_all_windows_info): Use ui_out.
+
2019-09-09 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* python/python.c (do_start_initialization): Make progname_copy static,
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 8d41372cf9..bf84cdac44 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -828,18 +828,26 @@ static void
tui_all_windows_info (const char *arg, int from_tty)
{
struct tui_win_info *win_with_focus = tui_win_with_focus ();
+ struct ui_out *uiout = current_uiout;
+
+ ui_out_emit_table table_emitter (uiout, 3, -1, "tui-windows");
+ uiout->table_header (10, ui_left, "name", "Name");
+ uiout->table_header (5, ui_right, "lines", "Lines");
+ uiout->table_header (10, ui_left, "focus", "Focus");
+ uiout->table_body ();
for (tui_win_info *win_info : all_tui_windows ())
if (win_info->is_visible ())
{
+ ui_out_emit_tuple tuple_emitter (uiout, nullptr);
+
+ uiout->field_string ("name", win_info->name ());
+ uiout->field_signed ("lines", win_info->height);
if (win_with_focus == win_info)
- printf_filtered (" %s\t(%d lines) <has focus>\n",
- win_info->name (),
- win_info->height);
+ uiout->field_string ("focus", _("(has focus)"));
else
- printf_filtered (" %s\t(%d lines)\n",
- win_info->name (),
- win_info->height);
+ uiout->field_skip ("focus");
+ uiout->text ("\n");
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-09 23:50 [binutils-gdb] Use ui_out for "info win" gdb-buildbot
@ 2019-09-09 23:57 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-09 23:57 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/28
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
25a2915e8dba63abef6d7434114f36efeb5c09fe
Subject of commit:
Use ui_out for "info win"
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/25/25a2915e8dba63abef6d7434114f36efeb5c09fe/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=0: other threads ran - unlocked
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/25/25a2915e8dba63abef6d7434114f36efeb5c09fe//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/25/25a2915e8dba63abef6d7434114f36efeb5c09fe//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] DWARF 5 support: Handle dwo_id
@ 2019-09-10 2:15 gdb-buildbot
2019-09-10 2:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 2:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a084a2a6a181c2206be4ba29b21dc0ae441ab4e9 ***
commit a084a2a6a181c2206be4ba29b21dc0ae441ab4e9
Author: Ali Tamur <tamur@google.com>
AuthorDate: Mon Aug 26 17:53:24 2019 -0700
Commit: Ali Tamur <tamur@google.com>
CommitDate: Mon Sep 9 18:35:43 2019 -0700
DWARF 5 support: Handle dwo_id
* DW_UT_skeleton and DW_UT_split_compile compilation units have dwo ids
to match the compilation unit in the skeleton and .dwo files. The dwo_id is
in the header.
Tested with CC=/usr/bin/gcc (version 8.3.0) against master branch (also with
-gsplit-dwarf and -gdwarf-4 flags) and there was no increase in the set of
tests that fails.
This is part of an effort to support DWARF 5 in gdb.
gdb/ChangeLog:
* dwarf2read.c (comp_unit_head): Update comment.
(dwarf2_dwo_name): New function declaration.
(dwarf_unit_type_name): New function declaration.
(read_comp_unit_head): Add support for new compilation units,
DW_UT_partial, DW_UT_skeleton, DW_UT_split_compile, DW_UT_split_type.
Particularly, DW_UT_skeleton and DW_UT_split_compile have dwo_id
(currently named as "signature") in their header. Also clarify error
messages.
(lookup_dwo_id): New function. Returns the dwo id of the given
compile unit.
(lookup_dwo_unit): Use the new lookup_dwo_id function.
(init_cutu_and_read_dies): Use the new dwarf2_dwo_name and lookup_dwo_id
functions.
(create_dwo_cu_reader): Use the added lookup_dwo_id function.
(dwarf2_dwo_name): Get the dwo name if present.
(dwarf_unit_type_name): Convert DW_UT_* types to string for diagnostic
purposes.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 542f37fca0..9ad7227e0b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,24 @@
+
+2019-09-09 Ali Tamur <tamur@google.com>
+
+ * dwarf2read.c (comp_unit_head): Update comment.
+ (dwarf2_dwo_name): New function declaration.
+ (dwarf_unit_type_name): New function declaration.
+ (read_comp_unit_head): Add support for new compilation units,
+ DW_UT_partial, DW_UT_skeleton, DW_UT_split_compile, DW_UT_split_type.
+ Particularly, DW_UT_skeleton and DW_UT_split_compile have dwo_id
+ (currently named as "signature") in their header. Also clarify error
+ messages.
+ (lookup_dwo_id): New function. Returns the dwo id of the given
+ compile unit.
+ (lookup_dwo_unit): Use the new lookup_dwo_id function.
+ (init_cutu_and_read_dies): Use the new dwarf2_dwo_name and lookup_dwo_id
+ functions.
+ (create_dwo_cu_reader): Use the added lookup_dwo_id function.
+ (dwarf2_dwo_name): Get the dwo name if present.
+ (dwarf_unit_type_name): Convert DW_UT_* types to string for diagnostic
+ purposes.
+
2019-09-09 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_all_windows_info): Use ui_out.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 69bb5bdbaa..a75941867a 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -373,8 +373,11 @@ struct comp_unit_head
This will be the first byte following the compilation unit header. */
cu_offset first_die_cu_offset;
- /* 64-bit signature of this type unit - it is valid only for
- UNIT_TYPE DW_UT_type. */
+
+ /* 64-bit signature of this unit. For type units, it denotes the signature of
+ the type (DW_UT_type in DWARF 4, additionally DW_UT_split_type in DWARF 5).
+ Also used in DWARF 5, to denote the dwo id when the unit type is
+ DW_UT_skeleton or DW_UT_split_compile. */
ULONGEST signature;
/* For types, offset in the type's DIE of the type defined by this TU. */
@@ -1579,6 +1582,8 @@ static struct attribute *dwarf2_attr_no_follow (struct die_info *,
static const char *dwarf2_string_attr (struct die_info *die, unsigned int name,
struct dwarf2_cu *cu);
+static const char *dwarf2_dwo_name (struct die_info *die, struct dwarf2_cu *cu);
+
static int dwarf2_flag_true_p (struct die_info *die, unsigned name,
struct dwarf2_cu *cu);
@@ -1761,6 +1766,8 @@ static const char *dwarf_tag_name (unsigned int);
static const char *dwarf_attr_name (unsigned int);
+static const char *dwarf_unit_type_name (int unit_type);
+
static const char *dwarf_form_name (unsigned int);
static const char *dwarf_bool_name (unsigned int);
@@ -6389,18 +6396,28 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
switch (cu_header->unit_type)
{
case DW_UT_compile:
+ case DW_UT_partial:
+ case DW_UT_skeleton:
+ case DW_UT_split_compile:
if (section_kind != rcuh_kind::COMPILE)
error (_("Dwarf Error: wrong unit_type in compilation unit header "
- "(is DW_UT_compile, should be DW_UT_type) [in module %s]"),
- filename);
+ "(is %s, should be %s) [in module %s]"),
+ dwarf_unit_type_name (cu_header->unit_type),
+ dwarf_unit_type_name (DW_UT_type), filename);
break;
case DW_UT_type:
+ case DW_UT_split_type:
section_kind = rcuh_kind::TYPE;
break;
default:
error (_("Dwarf Error: wrong unit_type in compilation unit header "
- "(is %d, should be %d or %d) [in module %s]"),
- cu_header->unit_type, DW_UT_compile, DW_UT_type, filename);
+ "(is %#04x, should be one of: %s, %s, %s, %s or %s) "
+ "[in module %s]"), cu_header->unit_type,
+ dwarf_unit_type_name (DW_UT_compile),
+ dwarf_unit_type_name (DW_UT_skeleton),
+ dwarf_unit_type_name (DW_UT_split_compile),
+ dwarf_unit_type_name (DW_UT_type),
+ dwarf_unit_type_name (DW_UT_split_type), filename);
}
cu_header->addr_size = read_1_byte (abfd, info_ptr);
@@ -6421,13 +6438,19 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
_("read_comp_unit_head: dwarf from non elf file"));
cu_header->signed_addr_p = signed_addr;
- if (section_kind == rcuh_kind::TYPE)
- {
- LONGEST type_offset;
+ bool header_has_signature = section_kind == rcuh_kind::TYPE
+ || cu_header->unit_type == DW_UT_skeleton
+ || cu_header->unit_type == DW_UT_split_compile;
+ if (header_has_signature)
+ {
cu_header->signature = read_8_bytes (abfd, info_ptr);
info_ptr += 8;
+ }
+ if (section_kind == rcuh_kind::TYPE)
+ {
+ LONGEST type_offset;
type_offset = read_offset (abfd, info_ptr, cu_header, &bytes_read);
info_ptr += bytes_read;
cu_header->type_cu_offset_in_tu = (cu_offset) type_offset;
@@ -7296,6 +7319,21 @@ read_cutu_die_from_dwo (struct dwarf2_per_cu_data *this_cu,
return 1;
}
+/* Return the signature of the compile unit, if found. In DWARF 4 and before,
+ the signature is in the DW_AT_GNU_dwo_id attribute. In DWARF 5 and later, the
+ signature is part of the header. */
+static gdb::optional<ULONGEST>
+lookup_dwo_id (struct dwarf2_cu *cu, struct die_info* comp_unit_die)
+{
+ if (cu->header.version >= 5)
+ return cu->header.signature;
+ struct attribute *attr;
+ attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
+ if (attr == nullptr)
+ return gdb::optional<ULONGEST> ();
+ return DW_UNSND (attr);
+}
+
/* Subroutine of init_cutu_and_read_dies to simplify it.
Look up the DWO unit specified by COMP_UNIT_DIE of THIS_CU.
Returns NULL if the specified DWO unit cannot be found. */
@@ -7305,14 +7343,13 @@ lookup_dwo_unit (struct dwarf2_per_cu_data *this_cu,
struct die_info *comp_unit_die)
{
struct dwarf2_cu *cu = this_cu->cu;
- ULONGEST signature;
struct dwo_unit *dwo_unit;
const char *comp_dir, *dwo_name;
gdb_assert (cu != NULL);
/* Yeah, we look dwo_name up again, but it simplifies the code. */
- dwo_name = dwarf2_string_attr (comp_unit_die, DW_AT_GNU_dwo_name, cu);
+ dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
comp_dir = dwarf2_string_attr (comp_unit_die, DW_AT_comp_dir, cu);
if (this_cu->is_debug_types)
@@ -7322,21 +7359,17 @@ lookup_dwo_unit (struct dwarf2_per_cu_data *this_cu,
/* Since this_cu is the first member of struct signatured_type,
we can go from a pointer to one to a pointer to the other. */
sig_type = (struct signatured_type *) this_cu;
- signature = sig_type->signature;
dwo_unit = lookup_dwo_type_unit (sig_type, dwo_name, comp_dir);
}
else
{
- struct attribute *attr;
-
- attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
- if (! attr)
+ gdb::optional<ULONGEST> signature = lookup_dwo_id (cu, comp_unit_die);
+ if (!signature.has_value ())
error (_("Dwarf Error: missing dwo_id for dwo_name %s"
" [in module %s]"),
dwo_name, objfile_name (this_cu->dwarf2_per_objfile->objfile));
- signature = DW_UNSND (attr);
dwo_unit = lookup_dwo_comp_unit (this_cu, dwo_name, comp_dir,
- signature);
+ *signature);
}
return dwo_unit;
@@ -7448,7 +7481,6 @@ init_cutu_and_read_dies (struct dwarf2_per_cu_data *this_cu,
struct die_reader_specs reader;
struct die_info *comp_unit_die;
int has_children;
- struct attribute *attr;
struct signatured_type *sig_type = NULL;
struct dwarf2_section_info *abbrev_section;
/* Non-zero if CU currently points to a DWO file and we need to
@@ -7585,9 +7617,9 @@ init_cutu_and_read_dies (struct dwarf2_per_cu_data *this_cu,
Note that if USE_EXISTING_OK != 0, and THIS_CU->cu already contains a
DWO CU, that this test will fail (the attribute will not be present). */
- attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_name, cu);
+ const char *dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
abbrev_table_up dwo_abbrev_table;
- if (attr)
+ if (dwo_name != nullptr)
{
struct dwo_unit *dwo_unit;
struct die_info *dwo_comp_unit_die;
@@ -11838,10 +11870,9 @@ create_dwo_cu_reader (const struct die_reader_specs *reader,
struct create_dwo_cu_data *data = (struct create_dwo_cu_data *) datap;
struct dwo_file *dwo_file = data->dwo_file;
struct dwo_unit *dwo_unit = &data->dwo_unit;
- struct attribute *attr;
- attr = dwarf2_attr (comp_unit_die, DW_AT_GNU_dwo_id, cu);
- if (attr == NULL)
+ gdb::optional<ULONGEST> signature = lookup_dwo_id (cu, comp_unit_die);
+ if (!signature.has_value ())
{
complaint (_("Dwarf Error: debug entry at offset %s is missing"
" its dwo_id [in module %s]"),
@@ -11850,7 +11881,7 @@ create_dwo_cu_reader (const struct die_reader_specs *reader,
}
dwo_unit->dwo_file = dwo_file;
- dwo_unit->signature = DW_UNSND (attr);
+ dwo_unit->signature = *signature;
dwo_unit->section = section;
dwo_unit->sect_off = sect_off;
dwo_unit->length = cu->per_cu->length;
@@ -20112,6 +20143,17 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c
return str;
}
+/* Return the dwo name or NULL if not present. If present, it is in either
+ DW_AT_GNU_dwo_name or DW_AT_dwo_name atrribute. */
+static const char *
+dwarf2_dwo_name (struct die_info *die, struct dwarf2_cu *cu)
+{
+ const char *dwo_name = dwarf2_string_attr (die, DW_AT_GNU_dwo_name, cu);
+ if (dwo_name == nullptr)
+ dwo_name = dwarf2_string_attr (die, DW_AT_dwo_name, cu);
+ return dwo_name;
+}
+
/* Return non-zero iff the attribute NAME is defined for the given DIE,
and holds a non-zero value. This function should only be used for
DW_FORM_flag or DW_FORM_flag_present attributes. */
@@ -22811,6 +22853,33 @@ dwarf_attr_name (unsigned attr)
return name;
}
+/* Convert a unit type to corresponding DW_UT name. */
+
+static const char *
+dwarf_unit_type_name (int unit_type) {
+ switch (unit_type)
+ {
+ case 0x01:
+ return "DW_UT_compile (0x01)";
+ case 0x02:
+ return "DW_UT_type (0x02)";
+ case 0x03:
+ return "DW_UT_partial (0x03)";
+ case 0x04:
+ return "DW_UT_skeleton (0x04)";
+ case 0x05:
+ return "DW_UT_split_compile (0x05)";
+ case 0x06:
+ return "DW_UT_split_type (0x06)";
+ case 0x80:
+ return "DW_UT_lo_user (0x80)";
+ case 0xff:
+ return "DW_UT_hi_user (0xff)";
+ default:
+ return nullptr;
+ }
+}
+
/* Convert a DWARF value form code into its string name. */
static const char *
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn.
@ 2019-09-10 15:02 gdb-buildbot
2019-09-10 15:03 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aebcfb76fc165795e67917cb67cf985c4dfdc577 ***
commit aebcfb76fc165795e67917cb67cf985c4dfdc577
Author: Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 10 15:20:58 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 10 15:20:58 2019 +0100
Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn.
PR 24907
binutils* objdump.c (null_print): New function.
(disassemble_bytes): Delete previous_octets local and replace with
a test of the max_reloc_offset_into_insn field of the
bfd_arch_info structure. If a reloc is a potential match for the
next insn, then perform a dummy disassembly in order to calculate
its real length.
bfd * archures.c (bfd_arch_info_type): Add max_reloc_offset_into_insn
field.
(bfd_default_arch_struct): Initialise the new field.
* bfd-in2.h: Regenerate.
* cpu-aarch64.c: Initialise the new field.
* cpu-alpha.c: Likewise.
* cpu-arc.c: Likewise.
* cpu-arm.c: Likewise.
* cpu-avr.c: Likewise.
* cpu-bfin.c: Likewise.
* cpu-bpf.c: Likewise.
* cpu-cr16.c: Likewise.
* cpu-cr16c.c: Likewise.
* cpu-cris.c: Likewise.
* cpu-crx.c: Likewise.
* cpu-csky.c: Likewise.
* cpu-d10v.c: Likewise.
* cpu-d30v.c: Likewise.
* cpu-dlx.c: Likewise.
* cpu-epiphany.c: Likewise.
* cpu-fr30.c: Likewise.
* cpu-frv.c: Likewise.
* cpu-ft32.c: Likewise.
* cpu-h8300.c: Likewise.
* cpu-hppa.c: Likewise.
* cpu-i386.c: Likewise.
* cpu-ia64.c: Likewise.
* cpu-iamcu.c: Likewise.
* cpu-ip2k.c: Likewise.
* cpu-iq2000.c: Likewise.
* cpu-k1om.c: Likewise.
* cpu-l1om.c: Likewise.
* cpu-lm32.c: Likewise.
* cpu-m10200.c: Likewise.
* cpu-m10300.c: Likewise.
* cpu-m32c.c: Likewise.
* cpu-m32r.c: Likewise.
* cpu-m68hc11.c: Likewise.
* cpu-m68hc12.c: Likewise.
* cpu-m68k.c: Likewise.
* cpu-m9s12x.c: Likewise.
* cpu-m9s12xg.c: Likewise.
* cpu-mcore.c: Likewise.
* cpu-mep.c: Likewise.
* cpu-metag.c: Likewise.
* cpu-microblaze.c: Likewise.
* cpu-mips.c: Likewise.
* cpu-mmix.c: Likewise.
* cpu-moxie.c: Likewise.
* cpu-msp430.c: Likewise.
* cpu-mt.c: Likewise.
* cpu-nds32.c: Likewise.
* cpu-nfp.c: Likewise.
* cpu-nios2.c: Likewise.
* cpu-ns32k.c: Likewise.
* cpu-or1k.c: Likewise.
* cpu-pdp11.c: Likewise.
* cpu-pj.c: Likewise.
* cpu-plugin.c: Likewise.
* cpu-powerpc.c: Likewise.
* cpu-pru.c: Likewise.
* cpu-riscv.c: Likewise.
* cpu-rl78.c: Likewise.
* cpu-rs6000.c: Likewise.
* cpu-rx.c: Likewise.
* cpu-s12z.c: Likewise.
* cpu-s390.c: Likewise.
* cpu-score.c: Likewise.
* cpu-sh.c: Likewise.
* cpu-sparc.c: Likewise.
* cpu-spu.c: Likewise.
* cpu-tic30.c: Likewise.
* cpu-tic4x.c: Likewise.
* cpu-tic54x.c: Likewise.
* cpu-tic6x.c: Likewise.
* cpu-tic80.c: Likewise.
* cpu-tilegx.c: Likewise.
* cpu-tilepro.c: Likewise.
* cpu-v850.c: Likewise.
* cpu-v850_rh850.c: Likewise.
* cpu-vax.c: Likewise.
* cpu-visium.c: Likewise.
* cpu-wasm32.c: Likewise.
* cpu-xc16x.c: Likewise.
* cpu-xgate.c: Likewise.
* cpu-xstormy16.c: Likewise.
* cpu-xtensa.c: Likewise.
* cpu-z80.c: Likewise.
* cpu-z8k.c: Likewise.
gas * testsuite/gas/arm/pr24907.s: New test.
* testsuite/gas/arm/pr24907.d: Expected disassembly.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aca3c80a2b..8b6b843a6f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,96 @@
+2019-09-10 Nick Clifton <nickc@redhat.com>
+
+ PR 24907
+ * archures.c (bfd_arch_info_type): Add max_reloc_offset_into_insn
+ field.
+ (bfd_default_arch_struct): Initialise the new field.
+ * bfd-in2.h: Regenerate.
+ * cpu-aarch64.c: Initialise the new field.
+ * cpu-alpha.c: Likewise.
+ * cpu-arc.c: Likewise.
+ * cpu-arm.c: Likewise.
+ * cpu-avr.c: Likewise.
+ * cpu-bfin.c: Likewise.
+ * cpu-bpf.c: Likewise.
+ * cpu-cr16.c: Likewise.
+ * cpu-cr16c.c: Likewise.
+ * cpu-cris.c: Likewise.
+ * cpu-crx.c: Likewise.
+ * cpu-csky.c: Likewise.
+ * cpu-d10v.c: Likewise.
+ * cpu-d30v.c: Likewise.
+ * cpu-dlx.c: Likewise.
+ * cpu-epiphany.c: Likewise.
+ * cpu-fr30.c: Likewise.
+ * cpu-frv.c: Likewise.
+ * cpu-ft32.c: Likewise.
+ * cpu-h8300.c: Likewise.
+ * cpu-hppa.c: Likewise.
+ * cpu-i386.c: Likewise.
+ * cpu-ia64.c: Likewise.
+ * cpu-iamcu.c: Likewise.
+ * cpu-ip2k.c: Likewise.
+ * cpu-iq2000.c: Likewise.
+ * cpu-k1om.c: Likewise.
+ * cpu-l1om.c: Likewise.
+ * cpu-lm32.c: Likewise.
+ * cpu-m10200.c: Likewise.
+ * cpu-m10300.c: Likewise.
+ * cpu-m32c.c: Likewise.
+ * cpu-m32r.c: Likewise.
+ * cpu-m68hc11.c: Likewise.
+ * cpu-m68hc12.c: Likewise.
+ * cpu-m68k.c: Likewise.
+ * cpu-m9s12x.c: Likewise.
+ * cpu-m9s12xg.c: Likewise.
+ * cpu-mcore.c: Likewise.
+ * cpu-mep.c: Likewise.
+ * cpu-metag.c: Likewise.
+ * cpu-microblaze.c: Likewise.
+ * cpu-mips.c: Likewise.
+ * cpu-mmix.c: Likewise.
+ * cpu-moxie.c: Likewise.
+ * cpu-msp430.c: Likewise.
+ * cpu-mt.c: Likewise.
+ * cpu-nds32.c: Likewise.
+ * cpu-nfp.c: Likewise.
+ * cpu-nios2.c: Likewise.
+ * cpu-ns32k.c: Likewise.
+ * cpu-or1k.c: Likewise.
+ * cpu-pdp11.c: Likewise.
+ * cpu-pj.c: Likewise.
+ * cpu-plugin.c: Likewise.
+ * cpu-powerpc.c: Likewise.
+ * cpu-pru.c: Likewise.
+ * cpu-riscv.c: Likewise.
+ * cpu-rl78.c: Likewise.
+ * cpu-rs6000.c: Likewise.
+ * cpu-rx.c: Likewise.
+ * cpu-s12z.c: Likewise.
+ * cpu-s390.c: Likewise.
+ * cpu-score.c: Likewise.
+ * cpu-sh.c: Likewise.
+ * cpu-sparc.c: Likewise.
+ * cpu-spu.c: Likewise.
+ * cpu-tic30.c: Likewise.
+ * cpu-tic4x.c: Likewise.
+ * cpu-tic54x.c: Likewise.
+ * cpu-tic6x.c: Likewise.
+ * cpu-tic80.c: Likewise.
+ * cpu-tilegx.c: Likewise.
+ * cpu-tilepro.c: Likewise.
+ * cpu-v850.c: Likewise.
+ * cpu-v850_rh850.c: Likewise.
+ * cpu-vax.c: Likewise.
+ * cpu-visium.c: Likewise.
+ * cpu-wasm32.c: Likewise.
+ * cpu-xc16x.c: Likewise.
+ * cpu-xgate.c: Likewise.
+ * cpu-xstormy16.c: Likewise.
+ * cpu-xtensa.c: Likewise.
+ * cpu-z80.c: Likewise.
+ * cpu-z8k.c: Likewise.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/bfd/archures.c b/bfd/archures.c
index 3465406213..02c8e4ec93 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -584,6 +584,16 @@ DESCRIPTION
. bfd_boolean code);
.
. const struct bfd_arch_info *next;
+.
+. {* On some architectures the offset for a relocation can point into
+. the middle of an instruction. This field specifies the maximum
+. offset such a relocation can have (in octets). This affects the
+. behaviour of the disassembler, since a value greater than zero
+. means that it may need to disassemble an instruction twice, once
+. to get its length and then a second time to display it. If the
+. value is negative then this has to be done for every single
+. instruction, regardless of the offset of the reloc. *}
+. signed int max_reloc_offset_into_insn;
.}
.bfd_arch_info_type;
.
@@ -929,12 +939,13 @@ DESCRIPTION
.extern const bfd_arch_info_type bfd_default_arch_struct;
*/
-const bfd_arch_info_type bfd_default_arch_struct = {
+const bfd_arch_info_type bfd_default_arch_struct =
+{
32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, TRUE,
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0,
+ 0, 0
};
/*
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 7b1cfbcf1a..690ba9a6fd 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2514,6 +2514,16 @@ typedef struct bfd_arch_info
bfd_boolean code);
const struct bfd_arch_info *next;
+
+ /* On some architectures the offset for a relocation can point into
+ the middle of an instruction. This field specifies the maximum
+ offset such a relocation can have (in octets). This affects the
+ behaviour of the disassembler, since a value greater than zero
+ means that it may need to disassemble an instruction twice, once
+ to get its length and then a second time to display it. If the
+ value is negative then this has to be done for every single
+ instruction, regardless of the offset of the reloc. */
+ signed int max_reloc_offset_into_insn;
}
bfd_arch_info_type;
diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
index eed1c3d9dc..fbffb79b63 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -104,7 +104,7 @@ scan (const struct bfd_arch_info *info, const char *string)
#define N(NUMBER, PRINT, WORDSIZE, DEFAULT, NEXT) \
{ WORDSIZE, WORDSIZE, 8, bfd_arch_aarch64, NUMBER, \
"aarch64", PRINT, 4, DEFAULT, compatible, scan, \
- bfd_arch_default_fill, NEXT }
+ bfd_arch_default_fill, NEXT, 0 }
static const bfd_arch_info_type bfd_aarch64_arch_ilp32 =
N (bfd_mach_aarch64_ilp32, "aarch64:ilp32", 32, FALSE, NULL);
diff --git a/bfd/cpu-alpha.c b/bfd/cpu-alpha.c
index 06ce01dd41..c4221d86bc 100644
--- a/bfd/cpu-alpha.c
+++ b/bfd/cpu-alpha.c
@@ -24,19 +24,20 @@
#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
{ \
- BITS_WORD, /* bits in a word */ \
- BITS_ADDR, /* bits in an address */ \
- 8, /* 8 bits in a byte */ \
+ BITS_WORD, /* Bits in a word. */ \
+ BITS_ADDR, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_alpha, \
NUMBER, \
"alpha", \
PRINT, \
- 3, \
+ 3, /* Section alignment power. */ \
DEFAULT, \
bfd_default_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
#define NN(index) (&arch_info_struct[index])
diff --git a/bfd/cpu-arc.c b/bfd/cpu-arc.c
index e6f102b4e7..906ca1d874 100644
--- a/bfd/cpu-arc.c
+++ b/bfd/cpu-arc.c
@@ -27,20 +27,21 @@ static const bfd_arch_info_type *
arc_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
#define ARC(mach, print_name, default_p, next) \
-{ \
- 32, /* 32 bits in a word */ \
- 32, /* 32 bits in an address */ \
- 8, /* 8 bits in a byte */ \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_arc, \
mach, \
"arc", \
print_name, \
- 4, /* section alignment power */ \
+ 4, /* Section alignment power. */ \
default_p, \
arc_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 8d70b84b8b..71a78daf11 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -221,7 +221,7 @@ scan (const struct bfd_arch_info *info, const char *string)
#define N(number, print, default, next) \
{ 32, 32, 8, bfd_arch_arm, number, "arm", print, 4, default, compatible, \
- scan, bfd_arch_default_fill, next }
+ scan, bfd_arch_default_fill, next, 0 }
static const bfd_arch_info_type arch_info_struct[] =
{
diff --git a/bfd/cpu-avr.c b/bfd/cpu-avr.c
index a8b341ead8..621c48bba9 100644
--- a/bfd/cpu-avr.c
+++ b/bfd/cpu-avr.c
@@ -82,9 +82,9 @@ compatible (const bfd_arch_info_type * a,
#define N(addr_bits, machine, print, default, next) \
{ \
- 8, /* 8 bits in a word. */ \
- addr_bits, /* bits in an address. */ \
- 8, /* 8 bits in a byte. */ \
+ 8, /* Bits in a word. */ \
+ addr_bits, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_avr, \
machine, /* Machine number. */ \
"avr", /* Architecture name. */ \
@@ -94,7 +94,8 @@ compatible (const bfd_arch_info_type * a,
compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- next \
+ next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-bfin.c b/bfd/cpu-bfin.c
index 51b170ac78..03f388e9b0 100644
--- a/bfd/cpu-bfin.c
+++ b/bfd/cpu-bfin.c
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_bfin_arch =
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-bpf.c b/bfd/cpu-bpf.c
index 57fe7d7502..4d92ca4e4f 100644
--- a/bfd/cpu-bpf.c
+++ b/bfd/cpu-bpf.c
@@ -25,7 +25,7 @@
const bfd_arch_info_type bfd_bpf_arch =
{
- 64, /* Bits per word */
+ 64, /* Bits per word. */
64, /* Bits per address. */
8, /* Bits per byte. */
bfd_arch_bpf, /* Architecture. */
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_bpf_arch =
bfd_default_compatible, /* Architecture comparison fn. */
bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-cr16.c b/bfd/cpu-cr16.c
index 04db29efb6..bd3bfb32b6 100644
--- a/bfd/cpu-cr16.c
+++ b/bfd/cpu-cr16.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_cr16_arch =
- {
- 16, /* 16 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_cr16, /* enum bfd_architecture arch. */
- bfd_mach_cr16,
- "cr16", /* Arch name. */
- "cr16", /* Printable name. */
- 1, /* Unsigned int section alignment power. */
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_cr16, /* Architecture number. */
+ bfd_mach_cr16,
+ "cr16", /* Arch name. */
+ "cr16", /* Printable name. */
+ 1, /* Section alignment power. */
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-cr16c.c b/bfd/cpu-cr16c.c
index b963b26579..ed4a818971 100644
--- a/bfd/cpu-cr16c.c
+++ b/bfd/cpu-cr16c.c
@@ -23,18 +23,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_cr16c_arch =
- {
- 16, /* 16 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_cr16c,
- bfd_mach_cr16c,
- "cr16c",
- "cr16c",
- 1,
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_cr16c,
+ bfd_mach_cr16c,
+ "cr16c",
+ "cr16c",
+ 1,
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-cris.c b/bfd/cpu-cris.c
index c3e404181e..c6b819f240 100644
--- a/bfd/cpu-cris.c
+++ b/bfd/cpu-cris.c
@@ -67,7 +67,7 @@ get_compatible (const bfd_arch_info_type *a,
#define N(NUMBER, PRINT, NEXT) \
{ 32, 32, 8, bfd_arch_cris, NUMBER, "cris", PRINT, 1, FALSE, \
- get_compatible, bfd_default_scan, bfd_arch_default_fill, NEXT }
+ get_compatible, bfd_default_scan, bfd_arch_default_fill, NEXT, 0 }
static const bfd_arch_info_type bfd_cris_arch_compat_v10_v32 =
N (bfd_mach_cris_v10_v32, "cris:common_v10_v32", NULL);
@@ -97,8 +97,9 @@ const bfd_arch_info_type bfd_cris_arch =
bfd_default_scan, /* Check if a bfd_arch_info_type is a
match. */
bfd_arch_default_fill, /* Default fill. */
- &bfd_cris_arch_v32 /* Pointer to next bfd_arch_info_type in
+ &bfd_cris_arch_v32, /* Pointer to next bfd_arch_info_type in
the same family. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
/*
diff --git a/bfd/cpu-crx.c b/bfd/cpu-crx.c
index cc8420fd4b..d181edb56b 100644
--- a/bfd/cpu-crx.c
+++ b/bfd/cpu-crx.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_crx_arch =
- {
- 16, /* 16 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_crx, /* enum bfd_architecture arch. */
- bfd_mach_crx,
- "crx", /* Arch name. */
- "crx", /* Printable name. */
- 1, /* Unsigned int section alignment power. */
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_crx, /* Architecture number. */
+ bfd_mach_crx,
+ "crx", /* Arch name. */
+ "crx", /* Printable name. */
+ 1, /* Section alignment power. */
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-csky.c b/bfd/cpu-csky.c
index 1bde70e035..463dce564f 100644
--- a/bfd/cpu-csky.c
+++ b/bfd/cpu-csky.c
@@ -23,21 +23,22 @@
#include "bfd.h"
#include "libbfd.h"
-#define N(NUMBER, PRINT, ISDEFAULT, NEXT) \
-{ \
- 32, /* 32 bits in a word */ \
- 32, /* 32 bits in an address */ \
- 8, /* 8 bits in a byte */ \
- bfd_arch_csky, /* Architecture */ \
- NUMBER, /* Machine number */ \
- "csky", /* Architecture name */ \
- PRINT, /* Printable name */ \
- 3, /* Section align power */ \
- ISDEFAULT, /* Is this the default architecture ? */ \
- bfd_default_compatible, /* Architecture comparison function */ \
- bfd_default_scan, /* String to architecture conversion */ \
- bfd_arch_default_fill, \
- NEXT /* Next in list */ \
+#define N(NUMBER, PRINT, ISDEFAULT, NEXT) \
+{ \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_csky, /* Architecture. */ \
+ NUMBER, /* Machine number. */ \
+ "csky", /* Architecture name. */ \
+ PRINT, /* Printable name. */ \
+ 3, /* Section align power. */ \
+ ISDEFAULT, /* Is this the default architecture ? */ \
+ bfd_default_compatible, /* Architecture comparison function. */ \
+ bfd_default_scan, /* String to architecture conversion. */ \
+ bfd_arch_default_fill, \
+ NEXT, /* Next in list. */ \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-d10v.c b/bfd/cpu-d10v.c
index b6ebe495a6..f78fe88435 100644
--- a/bfd/cpu-d10v.c
+++ b/bfd/cpu-d10v.c
@@ -23,53 +23,29 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 16, /* Bits in a word. */ \
+ 18, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_d10v, \
+ NUMBER, \
+ "d10v", \
+ PRINT, \
+ 4, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
static const bfd_arch_info_type d10v_ts3_info =
-{
- 16, /* 16 bits in a word. */
- 18, /* really 16 bits in an address, but code has 18 bit range. */
- 8, /* 8 bits in a byte. */
- bfd_arch_d10v,
- bfd_mach_d10v_ts3,
- "d10v",
- "d10v:ts3",
- 4, /* Section alignment power. */
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
-};
+ N (bfd_mach_d10v_ts3, "d10v:ts3", FALSE, NULL);
static const bfd_arch_info_type d10v_ts2_info =
-{
- 16,
- 18,
- 8,
- bfd_arch_d10v,
- bfd_mach_d10v_ts2,
- "d10v",
- "d10v:ts2",
- 4,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- & d10v_ts3_info,
-};
+ N (bfd_mach_d10v_ts2, "d10v:ts2", FALSE, & d10v_ts3_info);
const bfd_arch_info_type bfd_d10v_arch =
-{
- 16,
- 18,
- 8,
- bfd_arch_d10v,
- bfd_mach_d10v,
- "d10v",
- "d10v",
- 4,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- & d10v_ts2_info,
-};
+ N (bfd_mach_d10v, "d10v", TRUE, & d10v_ts2_info);
diff --git a/bfd/cpu-d30v.c b/bfd/cpu-d30v.c
index 1e5f553c88..f987f1c4bf 100644
--- a/bfd/cpu-d30v.c
+++ b/bfd/cpu-d30v.c
@@ -25,17 +25,18 @@
const bfd_arch_info_type bfd_d30v_arch =
{
- 32, /* Bits in a word. */
- 32, /* Bits in an address. */
- 8, /* Bits in a byte. */
- bfd_arch_d30v,
- 0,
- "d30v",
- "d30v",
- 4, /* Section alignment power. */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_d30v,
+ 0,
+ "d30v",
+ "d30v",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-dlx.c b/bfd/cpu-dlx.c
index 3d3dd17ba7..445515c437 100644
--- a/bfd/cpu-dlx.c
+++ b/bfd/cpu-dlx.c
@@ -24,18 +24,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_dlx_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_dlx,
- 0, /* Only 1 machine. */
- "dlx",
- "dlx",
- 4,
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_dlx,
+ 0, /* Machine number. */
+ "dlx",
+ "dlx",
+ 4,
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-epiphany.c b/bfd/cpu-epiphany.c
index 453337e69d..dace97483d 100644
--- a/bfd/cpu-epiphany.c
+++ b/bfd/cpu-epiphany.c
@@ -23,36 +23,27 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, PRINT, ALIGN, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_epiphany, \
+ NUMBER, \
+ "epiphany", \
+ PRINT, \
+ ALIGN, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_epiphany16_arch =
-{
- 32, /* Bits per word */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_epiphany, /* Architecture. */
- bfd_mach_epiphany16, /* Machine. */
- "epiphany", /* Architecture name. */
- "epiphany16", /* Machine name. */
- 1, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
-};
+ N (bfd_mach_epiphany16, "epiphany16", 1, FALSE, NULL);
const bfd_arch_info_type bfd_epiphany_arch =
-{
- 32, /* Bits per word - not really true. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_epiphany, /* Architecture. */
- bfd_mach_epiphany32, /* Machine. */
- "epiphany", /* Architecture name. */
- "epiphany32", /* Machine name. */
- 2, /* Section align power. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- & bfd_epiphany16_arch /* Next in list. */
-};
+ N (bfd_mach_epiphany32, "epiphany32", 2, TRUE, & bfd_epiphany16_arch);
+
diff --git a/bfd/cpu-fr30.c b/bfd/cpu-fr30.c
index 8d4b5a01f0..28b7460d5d 100644
--- a/bfd/cpu-fr30.c
+++ b/bfd/cpu-fr30.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_fr30_arch =
{
- 32, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_fr30, /* architecture */
- bfd_mach_fr30, /* machine */
- "fr30", /* architecture name */
- "fr30", /* printable name */
- 4, /* section align power */
- TRUE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- bfd_default_scan, /* string to architecture convert fn */
+ 32, /* Bits per word. */
+ 32, /* Bits per address. */
+ 8, /* Bits per byte. */
+ bfd_arch_fr30, /* Architecture. */
+ bfd_mach_fr30, /* Machine. */
+ "fr30", /* Architecture name. */
+ "fr30", /* Printable name. */
+ 4, /* Section align power. */
+ TRUE, /* The default ? */
+ bfd_default_compatible, /* Architecture comparison fn. */
+ bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* next in list */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-frv.c b/bfd/cpu-frv.c
index e4a15345f1..622258f0b9 100644
--- a/bfd/cpu-frv.c
+++ b/bfd/cpu-frv.c
@@ -24,19 +24,20 @@
#define FRV_ARCH(MACHINE, NAME, DEFAULT, NEXT) \
{ \
- 32, /* 32 bits in a word */ \
- 32, /* 32 bits in an address */ \
- 8, /* 8 bits in a byte */ \
- bfd_arch_frv, /* architecture */ \
- MACHINE, /* which machine */ \
- "frv", /* architecture name */ \
- NAME, /* machine name */ \
- 4, /* default alignment */ \
- DEFAULT, /* is this the default? */ \
- bfd_default_compatible, /* architecture comparison fn */ \
- bfd_default_scan, /* string to architecture convert fn */ \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_frv, /* Architecture number. */ \
+ MACHINE, /* Machine number. */ \
+ "frv", /* Architecture name. */ \
+ NAME, /* Machine name. */ \
+ 4, /* Section alignment. */ \
+ DEFAULT, /* Is this the default? */ \
+ bfd_default_compatible, /* Architecture comparison fn. */ \
+ bfd_default_scan, /* String to architecture convert fn. */\
bfd_arch_default_fill, /* Default fill. */ \
- NEXT /* next in list */ \
+ NEXT, /* Next in list. */ \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_300
diff --git a/bfd/cpu-ft32.c b/bfd/cpu-ft32.c
index 5b51b7abf2..3c33e3fdf0 100644
--- a/bfd/cpu-ft32.c
+++ b/bfd/cpu-ft32.c
@@ -22,54 +22,31 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_ft32, \
+ NUMBER, \
+ "ft32", \
+ PRINT, \
+ 2, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
static const bfd_arch_info_type arch_info_struct[] =
- {
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_ft32, /* enum bfd_architecture arch. */
- bfd_mach_ft32,
- "ft32", /* Arch name. */
- "ft32", /* Printable name. */
- 2, /* Unsigned int section alignment power. */
- FALSE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[1],
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_ft32, /* enum bfd_architecture arch. */
- bfd_mach_ft32b,
- "ft32b", /* Arch name. */
- "ft32b", /* Printable name. */
- 2, /* Unsigned int section alignment power. */
- FALSE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- },
- };
+{
+ N (bfd_mach_ft32, "ft32", FALSE, &arch_info_struct[1]),
+ N (bfd_mach_ft32b, "ft32b", FALSE, NULL)
+};
const bfd_arch_info_type bfd_ft32_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_ft32, /* enum bfd_architecture arch. */
- bfd_mach_ft32,
- "ft32", /* Arch name. */
- "ft32", /* Printable name. */
- 2, /* Unsigned int section alignment power. */
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- arch_info_struct,
- };
+ N (bfd_mach_ft32, "ft32", TRUE, arch_info_struct);
+
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index 6c4019e472..53dd4ec52b 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -113,124 +113,30 @@ compatible (const bfd_arch_info_type *in, const bfd_arch_info_type *out)
return in;
}
+#define N(word, addr, number, name, print, default, next) \
+ { word, addr, 8, bfd_arch_h8300, number, name, print, 1, default, \
+ compatible, h8300_scan, bfd_arch_default_fill, next, 0 }
+
static const bfd_arch_info_type h8300sxn_info_struct =
-{
- 32, /* 32 bits in a word */
- 16, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_h8300,
- bfd_mach_h8300sxn,
- "h8300sxn", /* arch_name */
- "h8300sxn", /* printable name */
- 1,
- FALSE, /* the default machine */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- 0
-};
+ N (32, 16, bfd_mach_h8300sxn, "h8300sxn", "h8300sxn", FALSE, NULL);
static const bfd_arch_info_type h8300sx_info_struct =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_h8300,
- bfd_mach_h8300sx,
- "h8300sx", /* arch_name */
- "h8300sx", /* printable name */
- 1,
- FALSE, /* the default machine */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- &h8300sxn_info_struct
-};
+ N (32, 32, bfd_mach_h8300sx, "h8300sx", "h8300sx", FALSE, &h8300sxn_info_struct);
static const bfd_arch_info_type h8300sn_info_struct =
-{
- 32, /* 32 bits in a word. */
- 16, /* 16 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_h8300,
- bfd_mach_h8300sn,
- "h8300sn", /* Architecture name. */
- "h8300sn", /* Printable name. */
- 1,
- FALSE, /* The default machine. */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- &h8300sx_info_struct
-};
+ N (32, 16, bfd_mach_h8300sn, "h8300sn", "h8300sn", FALSE, &h8300sx_info_struct);
static const bfd_arch_info_type h8300hn_info_struct =
-{
- 32, /* 32 bits in a word. */
- 16, /* 16 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_h8300,
- bfd_mach_h8300hn,
- "h8300hn", /* Architecture name. */
- "h8300hn", /* Printable name. */
- 1,
- FALSE, /* The default machine. */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- &h8300sn_info_struct
-};
+ N (32, 16, bfd_mach_h8300hn, "h8300hn", "h8300hn", FALSE, &h8300sn_info_struct);
static const bfd_arch_info_type h8300s_info_struct =
-{
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_h8300,
- bfd_mach_h8300s,
- "h8300s", /* Architecture name. */
- "h8300s", /* Printable name. */
- 1,
- FALSE, /* The default machine. */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- & h8300hn_info_struct
-};
+ N (32, 32, bfd_mach_h8300s, "h8300s", "h8300s", FALSE, & h8300hn_info_struct);
static const bfd_arch_info_type h8300h_info_struct =
-{
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_h8300,
- bfd_mach_h8300h,
- "h8300h", /* Architecture name. */
- "h8300h", /* Printable name. */
- 1,
- FALSE, /* The default machine. */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- &h8300s_info_struct
-};
+ N (32, 32, bfd_mach_h8300h, "h8300h", "h8300h", FALSE, &h8300s_info_struct);
const bfd_arch_info_type bfd_h8300_arch =
-{
- 16, /* 16 bits in a word. */
- 16, /* 16 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_h8300,
- bfd_mach_h8300,
- "h8300", /* Architecture name. */
- "h8300", /* Printable name. */
- 1,
- TRUE, /* The default machine. */
- compatible,
- h8300_scan,
- bfd_arch_default_fill,
- &h8300h_info_struct
-};
+ N (16, 16, bfd_mach_h8300, "h8300", "h8300", TRUE, &h8300h_info_struct);
/* Pad the given address to 32 bits, converting 16-bit and 24-bit
addresses into the values they would have had on a h8s target. */
diff --git a/bfd/cpu-hppa.c b/bfd/cpu-hppa.c
index e144c11152..2bcc0312da 100644
--- a/bfd/cpu-hppa.c
+++ b/bfd/cpu-hppa.c
@@ -22,72 +22,35 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_hppa, \
+ NUMBER, \
+ "hppa", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
+
static const bfd_arch_info_type bfd_hppa10_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_hppa,
- bfd_mach_hppa10, /* By convention PA1.0 = 10 */
- "hppa",
- "hppa1.0",
- 3,
- TRUE, /* Unless we use 1.1 specific features */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
-};
+ N (32, bfd_mach_hppa10, "hppa1.0", TRUE, NULL);
-/* PA2.0 in narrow mode */
+/* PA2.0 in narrow mode. */
static const bfd_arch_info_type bfd_hppa20_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_hppa,
- bfd_mach_hppa20, /* By convention PA2.0 = 20 */
- "hppa",
- "hppa2.0",
- 3,
- FALSE, /* Unless we use 1.1 specific features */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_hppa10_arch,
-};
+ N (32, bfd_mach_hppa20, "hppa2.0", FALSE, &bfd_hppa10_arch);
-/* PA2.0 in wide mode */
+/* PA2.0 in wide mode. */
static const bfd_arch_info_type bfd_hppa20w_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_hppa,
- bfd_mach_hppa20w, /* ??? How best to describe wide mode here? */
- "hppa",
- "hppa2.0w",
- 3,
- FALSE, /* Unless we use 1.1 specific features */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_hppa20_arch,
-};
+ N (64, bfd_mach_hppa20w, "hppa2.0w", FALSE, &bfd_hppa20_arch);
const bfd_arch_info_type bfd_hppa_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_hppa,
- bfd_mach_hppa11, /* By convention PA1.1 = 11 */
- "hppa",
- "hppa1.1",
- 3,
- FALSE, /* 1.1 specific features used */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_hppa20w_arch,
-};
+ N (32, bfd_mach_hppa11, "hppa1.1", FALSE, &bfd_hppa20w_arch);
diff --git a/bfd/cpu-i386.c b/bfd/cpu-i386.c
index a865a66e12..5df6435519 100644
--- a/bfd/cpu-i386.c
+++ b/bfd/cpu-i386.c
@@ -130,173 +130,62 @@ bfd_arch_i386_onebyte_nop_fill (bfd_size_type count,
return fill;
}
+#define N(BITS, MACH, NAME, PRINT, DEF, FILL, NEXT) \
+ { BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_i386, \
+ MACH, /* Machine number. */ \
+ NAME, \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEF, /* Default architecture version ? */ \
+ bfd_i386_compatible, \
+ bfd_default_scan, \
+ FILL, \
+ NEXT, \
+ 0 /* Maximum instruction length. */ \
+ }
+
static const bfd_arch_info_type bfd_x64_32_nacl_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32_nacl,
- "i386",
- "i386:x64-32:nacl",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- NULL
-};
+ N (64, bfd_mach_x64_32_nacl, "i386", "i386:x64-32:nacl",
+ FALSE, bfd_arch_i386_onebyte_nop_fill, NULL);
static const bfd_arch_info_type bfd_x86_64_nacl_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64_nacl,
- "i386",
- "i386:x86-64:nacl",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- &bfd_x64_32_nacl_arch
-};
+ N (64, bfd_mach_x86_64_nacl, "i386", "i386:x86-64:nacl",
+ FALSE, bfd_arch_i386_onebyte_nop_fill, &bfd_x64_32_nacl_arch);
const bfd_arch_info_type bfd_i386_nacl_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386_nacl,
- "i386",
- "i386:nacl",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- &bfd_x86_64_nacl_arch
-};
+ N (32, bfd_mach_i386_i386_nacl, "i386", "i386:nacl",
+ TRUE, bfd_arch_i386_onebyte_nop_fill, &bfd_x86_64_nacl_arch);
+
static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32_intel_syntax,
- "i386:intel",
- "i386:x64-32:intel",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_i386_nacl_arch
-};
+ N (64, bfd_mach_x64_32_intel_syntax, "i386:intel", "i386:x64-32:intel",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_i386_nacl_arch);
static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64_intel_syntax,
- "i386:intel",
- "i386:x86-64:intel",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_x64_32_arch_intel_syntax,
-};
+ N (64, bfd_mach_x86_64_intel_syntax, "i386:intel", "i386:x86-64:intel",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch_intel_syntax);
static const bfd_arch_info_type bfd_i386_arch_intel_syntax =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386_intel_syntax,
- "i386:intel",
- "i386:intel",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_x86_64_arch_intel_syntax
-};
+ N (32, bfd_mach_i386_i386_intel_syntax, "i386:intel", "i386:intel",
+ TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch_intel_syntax);
+
static const bfd_arch_info_type i8086_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address (well, not really) */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i8086,
- "i8086",
- "i8086",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_i386_arch_intel_syntax
-};
+ N (32, bfd_mach_i386_i8086, "i8086", "i8086",
+ FALSE, bfd_arch_i386_short_nop_fill, &bfd_i386_arch_intel_syntax);
static const bfd_arch_info_type bfd_x64_32_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32,
- "i386",
- "i386:x64-32",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &i8086_arch
-};
+ N (64, bfd_mach_x64_32, "i386", "i386:x64-32",
+ FALSE, bfd_arch_i386_long_nop_fill, &i8086_arch);
static const bfd_arch_info_type bfd_x86_64_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64,
- "i386",
- "i386:x86-64",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_x64_32_arch
-};
+ N (64, bfd_mach_x86_64, "i386", "i386:x86-64",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch);
const bfd_arch_info_type bfd_i386_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386,
- "i386",
- "i386",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_x86_64_arch
-};
+ N (32, bfd_mach_i386_i386, "i386", "i386",
+ TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch);
diff --git a/bfd/cpu-ia64.c b/bfd/cpu-ia64.c
index 93e8cc001a..300007ade6 100644
--- a/bfd/cpu-ia64.c
+++ b/bfd/cpu-ia64.c
@@ -23,38 +23,28 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 64, /* Bits in a word. */ \
+ BITS_ADDR, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_ia64, \
+ NUMBER, \
+ "ia64", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_ia64_elf32_arch =
- {
- 64, /* 64 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_ia64,
- bfd_mach_ia64_elf32,
- "ia64",
- "ia64-elf32",
- 3, /* log2 of section alignment */
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+ N (32, bfd_mach_ia64_elf32, "ia64-elf32", FALSE, NULL);
const bfd_arch_info_type bfd_ia64_arch =
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_ia64,
- bfd_mach_ia64_elf64,
- "ia64",
- "ia64-elf64",
- 3, /* log2 of section alignment */
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_ia64_elf32_arch,
- };
+ N (64, bfd_mach_ia64_elf64, "ia64-elf64", TRUE, &bfd_ia64_elf32_arch);
#include "cpu-ia64-opc.c"
diff --git a/bfd/cpu-iamcu.c b/bfd/cpu-iamcu.c
index 4b315d4475..6630a7a662 100644
--- a/bfd/cpu-iamcu.c
+++ b/bfd/cpu-iamcu.c
@@ -25,36 +25,14 @@
extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
bfd_boolean);
+#define N(number, name, print, next) \
+ { 32, 32, 8, bfd_arch_iamcu, number, name, print, 3, TRUE, \
+ bfd_default_compatible, bfd_default_scan, \
+ bfd_arch_i386_short_nop_fill, next, 0 }
+
static const bfd_arch_info_type bfd_iamcu_arch_intel_syntax =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_iamcu,
- bfd_mach_i386_iamcu_intel_syntax,
- "iamcu:intel",
- "iamcu:intel",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- 0
-};
+ N (bfd_mach_i386_iamcu_intel_syntax, "iamcu:intel", "iamcu:intel", NULL);
const bfd_arch_info_type bfd_iamcu_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_iamcu,
- bfd_mach_i386_iamcu,
- "iamcu",
- "iamcu",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_iamcu_arch_intel_syntax
-};
+ N (bfd_mach_i386_iamcu, "iamcu", "iamcu", &bfd_iamcu_arch_intel_syntax);
+
diff --git a/bfd/cpu-ip2k.c b/bfd/cpu-ip2k.c
index 68e3a34ba2..217229dfd1 100644
--- a/bfd/cpu-ip2k.c
+++ b/bfd/cpu-ip2k.c
@@ -22,36 +22,27 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 16, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_ip2k, \
+ NUMBER, \
+ "ip2k", \
+ PRINT, \
+ 1, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_ip2k_nonext_arch =
-{
- 32, /* Bits per word - not really true. */
- 16, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_ip2k, /* Architecture. */
- bfd_mach_ip2022, /* Machine. */
- "ip2k", /* Architecture name. */
- "ip2022", /* Machine name. */
- 1, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
-};
+ N (bfd_mach_ip2022, "ip2022", FALSE, NULL);
const bfd_arch_info_type bfd_ip2k_arch =
-{
- 32, /* Bits per word - not really true. */
- 16, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_ip2k, /* Architecture. */
- bfd_mach_ip2022ext, /* Machine. */
- "ip2k", /* Architecture name. */
- "ip2022ext", /* Machine name. */
- 1, /* Section align power. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- & bfd_ip2k_nonext_arch /* Next in list. */
-};
+ N (bfd_mach_ip2022ext, "ip2022ext", TRUE, & bfd_ip2k_nonext_arch);
+
diff --git a/bfd/cpu-iq2000.c b/bfd/cpu-iq2000.c
index c5f5c1a17f..a8d09478bb 100644
--- a/bfd/cpu-iq2000.c
+++ b/bfd/cpu-iq2000.c
@@ -22,38 +22,27 @@
#include "bfd.h"
#include "libbfd.h"
-static const bfd_arch_info_type arch_info_struct[] =
-{
- {
- 32, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_iq2000, /* architecture */
- bfd_mach_iq10, /* machine */
- "iq2000", /* architecture name */
- "iq10", /* printable name */
- 3, /* section align power */
- FALSE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- bfd_default_scan, /* string to architecture convert fn */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* next in list */
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_iq2000, \
+ NUMBER, \
+ "iq2000", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
-};
+
+static const bfd_arch_info_type arch_info_struct =
+ N (bfd_mach_iq10, "iq10", FALSE, NULL);
const bfd_arch_info_type bfd_iq2000_arch =
-{
- 32, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_iq2000, /* architecture */
- bfd_mach_iq2000, /* machine */
- "iq2000", /* architecture name */
- "iq2000", /* printable name */
- 3, /* section align power */
- TRUE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- bfd_default_scan, /* string to architecture convert fn */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[0], /* next in list */
-};
+ N (bfd_mach_iq2000, "iq2000", TRUE, &arch_info_struct);
+
diff --git a/bfd/cpu-k1om.c b/bfd/cpu-k1om.c
index 927bab6f2c..f5bcec168d 100644
--- a/bfd/cpu-k1om.c
+++ b/bfd/cpu-k1om.c
@@ -25,36 +25,14 @@
extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
bfd_boolean);
+#define N(number, name, print, next) \
+ { 64, 64, 8, bfd_arch_k1om, number, name, print, 3, TRUE, \
+ bfd_default_compatible, bfd_default_scan, \
+ bfd_arch_i386_short_nop_fill, next, 9 }
+
static const bfd_arch_info_type bfd_k1om_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_k1om,
- bfd_mach_k1om_intel_syntax,
- "k1om:intel",
- "k1om:intel",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- 0
-};
+ N (bfd_mach_k1om_intel_syntax, "k1om:intel", "k1om:intel", NULL);
const bfd_arch_info_type bfd_k1om_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_k1om,
- bfd_mach_k1om,
- "k1om",
- "k1om",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_k1om_arch_intel_syntax
-};
+ N (bfd_mach_k1om, "k1om", "k1om", &bfd_k1om_arch_intel_syntax);
+
diff --git a/bfd/cpu-l1om.c b/bfd/cpu-l1om.c
index e32400eb97..063a5aa1e7 100644
--- a/bfd/cpu-l1om.c
+++ b/bfd/cpu-l1om.c
@@ -25,36 +25,13 @@
extern void * bfd_arch_i386_short_nop_fill (bfd_size_type, bfd_boolean,
bfd_boolean);
+#define N(number, name, print, next) \
+ { 64, 64, 8, bfd_arch_l1om, number, name, print, 3, TRUE, \
+ bfd_default_compatible, bfd_default_scan, \
+ bfd_arch_i386_short_nop_fill, next, 0 }
+
static const bfd_arch_info_type bfd_l1om_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_l1om,
- bfd_mach_l1om_intel_syntax,
- "l1om:intel",
- "l1om:intel",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- 0
-};
+ N (bfd_mach_l1om_intel_syntax, "l1om:intel", "l1om:intel", NULL);
const bfd_arch_info_type bfd_l1om_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_l1om,
- bfd_mach_l1om,
- "l1om",
- "l1om",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_l1om_arch_intel_syntax
-};
+ N (bfd_mach_l1om, "l1om", "l1om", &bfd_l1om_arch_intel_syntax);
diff --git a/bfd/cpu-lm32.c b/bfd/cpu-lm32.c
index 41e3dc9348..9711e0654e 100644
--- a/bfd/cpu-lm32.c
+++ b/bfd/cpu-lm32.c
@@ -25,17 +25,18 @@
const bfd_arch_info_type bfd_lm32_arch =
{
- 32, /* Bits in word. */
- 32, /* Bits in address. */
- 8, /* Bits in byte. */
- bfd_arch_lm32, /* Enum bfd_architecture. */
- bfd_mach_lm32, /* Machine number. */
- "lm32", /* Architecture name. */
- "lm32", /* Printable name. */
- 4, /* Alignment. */
- TRUE, /* Is this the default machine for the target. */
- bfd_default_compatible, /* Function callback to test if two files have compatible machines. */
- bfd_default_scan,
- bfd_arch_default_fill,
- NULL /* Next. */
+ 32, /* Bits in word. */
+ 32, /* Bits in address. */
+ 8, /* Bits in byte. */
+ bfd_arch_lm32, /* Enum bfd_architecture. */
+ bfd_mach_lm32, /* Machine number. */
+ "lm32", /* Architecture name. */
+ "lm32", /* Printable name. */
+ 4, /* Alignment. */
+ TRUE, /* Is this the default machine for the target. */
+ bfd_default_compatible, /* Function callback to test if two files have compatible machines. */
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL, /* Next. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-m10200.c b/bfd/cpu-m10200.c
index f546764a9e..96faeb9c96 100644
--- a/bfd/cpu-m10200.c
+++ b/bfd/cpu-m10200.c
@@ -23,18 +23,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_mn10200_arch =
- {
- 16, /* 16 bits in a word */
- 24, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_mn10200,
- 200,
- "mn10200",
- "mn10200",
- 2,
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 16, /* Bits in a word. */
+ 24, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_mn10200,
+ 200,
+ "mn10200",
+ "mn10200",
+ 2,
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-m10300.c b/bfd/cpu-m10300.c
index b52c37eb6d..2681b71edd 100644
--- a/bfd/cpu-m10300.c
+++ b/bfd/cpu-m10300.c
@@ -22,53 +22,29 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, NAME, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_mn10300, \
+ NUMBER, \
+ NAME, \
+ PRINT, \
+ 2, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_am33_2_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_mn10300,
- 332,
- "am33_2",
- "am33-2",
- 2,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+ N (bfd_mach_am33_2, "am33_2", "am33-2", FALSE, NULL);
const bfd_arch_info_type bfd_am33_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_mn10300,
- 330,
- "am33",
- "am33",
- 2,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_am33_2_arch,
- };
+ N (bfd_mach_am33, "am33", "am33", FALSE, &bfd_am33_2_arch);
const bfd_arch_info_type bfd_mn10300_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_mn10300,
- 300,
- "mn10300",
- "mn10300",
- 2,
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_am33_arch,
- };
+ N (bfd_mach_mn10300, "mn10300", "mn10300", TRUE, &bfd_am33_arch);
diff --git a/bfd/cpu-m32c.c b/bfd/cpu-m32c.c
index 2e7de137f1..86e6b783d5 100644
--- a/bfd/cpu-m32c.c
+++ b/bfd/cpu-m32c.c
@@ -35,38 +35,13 @@ m32c_scan (const bfd_arch_info_type * info, const char * string)
return bfd_default_scan (info, string);
}
-static const bfd_arch_info_type arch_info_struct[] =
-{
- {
- 32, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_m32c, /* architecture */
- bfd_mach_m32c, /* machine */
- "m32c", /* architecture name */
- "m32c", /* printable name */
- 3, /* section align power */
- FALSE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- m32c_scan, /* string to architecture convert fn */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* next in list */
- },
-};
+#define N(number, print, align, default, next) \
+{ 32, 32, 8, bfd_arch_m32c, number, "m32c", print, align, default, \
+ bfd_default_compatible, m32c_scan, bfd_arch_default_fill, next, 0 }
+
+static const bfd_arch_info_type arch_info_struct =
+ N (bfd_mach_m32c, "m32c", 3, FALSE, NULL);
const bfd_arch_info_type bfd_m32c_arch =
-{
- 32, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_m32c, /* Architecture. */
- bfd_mach_m16c, /* Machine. */
- "m32c", /* Architecture name. */
- "m16c", /* Printable name. */
- 4, /* Section align power. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- m32c_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[0], /* Next in list. */
-};
+ N (bfd_mach_m16c, "m16c", 4, TRUE, &arch_info_struct);
+
diff --git a/bfd/cpu-m32r.c b/bfd/cpu-m32r.c
index 085fd4eb2c..c911d23865 100644
--- a/bfd/cpu-m32r.c
+++ b/bfd/cpu-m32r.c
@@ -23,8 +23,8 @@
#include "libbfd.h"
#define N(number, print, default, next) \
-{ 32, 32, 8, bfd_arch_m32r, number, "m32r", print, 4, default, \
- bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+{ 32, 32, 8, bfd_arch_m32r, number, "m32r", print, 4, default, \
+ bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
#define M32R2_NEXT & arch_info_struct [1]
#define NEXT & arch_info_struct [0]
diff --git a/bfd/cpu-m68hc11.c b/bfd/cpu-m68hc11.c
index 4bb7cd475c..23841f88d8 100644
--- a/bfd/cpu-m68hc11.c
+++ b/bfd/cpu-m68hc11.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_m68hc11_arch =
{
- 16, /* 16 bits in a word */
- 16, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_m68hc11,
- 0,
- "m68hc11",
- "m68hc11",
- 4, /* section alignment power */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 16, /* Bits in a word. */
+ 16, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_m68hc11,
+ 0,
+ "m68hc11",
+ "m68hc11",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-m68hc12.c b/bfd/cpu-m68hc12.c
index 4d199f2541..15b41c75b7 100644
--- a/bfd/cpu-m68hc12.c
+++ b/bfd/cpu-m68hc12.c
@@ -22,36 +22,27 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 16, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_m68hc12, \
+ NUMBER, \
+ "m68hc12", \
+ PRINT, \
+ 4, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_m68hc12s_arch =
-{
- 16, /* 16 bits in a word */
- 32, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_m68hc12,
- bfd_mach_m6812s,
- "m68hc12:HCS12",
- "m68hc12",
- 4, /* section alignment power */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
-};
+ N (bfd_mach_m6812s, "m68hc12:HCS12", FALSE, NULL);
const bfd_arch_info_type bfd_m68hc12_arch =
-{
- 16, /* 16 bits in a word */
- 32, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_m68hc12,
- 0,
- "m68hc12",
- "m68hc12",
- 4, /* section alignment power */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_m68hc12s_arch,
-};
+ N (bfd_mach_m6812_default, "m68hc12", TRUE, &bfd_m68hc12s_arch);
+
diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c
index d42f3b8417..b3d3358ede 100644
--- a/bfd/cpu-m68k.c
+++ b/bfd/cpu-m68k.c
@@ -30,7 +30,7 @@ bfd_m68k_compatible (const bfd_arch_info_type *a,
#define N(name, print,d,next) \
{ 32, 32, 8, bfd_arch_m68k, name, "m68k",print,2,d,bfd_m68k_compatible, \
- bfd_default_scan, bfd_arch_default_fill, next, }
+ bfd_default_scan, bfd_arch_default_fill, next, 0 }
static const bfd_arch_info_type arch_info_struct[] =
{
diff --git a/bfd/cpu-m9s12x.c b/bfd/cpu-m9s12x.c
index e6fbb29f5b..4cd4ba1044 100644
--- a/bfd/cpu-m9s12x.c
+++ b/bfd/cpu-m9s12x.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_m9s12x_arch =
{
- 16, /* 16 bits in a word. */
- 32, /* 16 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_m9s12x,
- 0,
- "m9s12x",
- "m9s12x",
- 4, /* Section alignment power. */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_m9s12x,
+ 0,
+ "m9s12x",
+ "m9s12x",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-m9s12xg.c b/bfd/cpu-m9s12xg.c
index 7e9298c933..91a4822d1d 100644
--- a/bfd/cpu-m9s12xg.c
+++ b/bfd/cpu-m9s12xg.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_m9s12xg_arch =
{
- 16, /* 16 bits in a word. */
- 32, /* 16 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_m9s12xg,
- 0,
- "m9s12xg",
- "m9s12xg",
- 4, /* Section alignment power. */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_m9s12xg,
+ 0,
+ "m9s12xg",
+ "m9s12xg",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-mcore.c b/bfd/cpu-mcore.c
index f4ab528dc8..36c0b63e77 100644
--- a/bfd/cpu-mcore.c
+++ b/bfd/cpu-mcore.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_mcore_arch =
{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_mcore, /* Architecture */
- 0, /* Machine number - 0 for now */
- "MCore", /* Architecture name */
- "MCore", /* Printable name */
- 3, /* Section align power */
- TRUE, /* Is this the default architecture ? */
- bfd_default_compatible, /* Architecture comparison function */
- bfd_default_scan, /* String to architecture conversion */
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_mcore, /* Architecture number. */
+ 0, /* Machine number - 0 for now. */
+ "MCore", /* Architecture name. */
+ "MCore", /* Machine name. */
+ 3, /* Section align power. */
+ TRUE, /* Is this the default architecture ? */
+ bfd_default_compatible, /* Architecture comparison function. */
+ bfd_default_scan, /* String to architecture conversion. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list */
+ NULL, /* Next in list */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-mep.c b/bfd/cpu-mep.c
index 0e59066296..cc10c662ea 100644
--- a/bfd/cpu-mep.c
+++ b/bfd/cpu-mep.c
@@ -22,8 +22,8 @@
#include "libbfd.h"
#define MA(x, n, def, y) { 32, 32, 8, bfd_arch_mep, x, "mep", n, \
- 2, def, bfd_default_compatible, bfd_default_scan, \
- bfd_arch_default_fill, y }
+ 2, def, bfd_default_compatible, bfd_default_scan, \
+ bfd_arch_default_fill, y, 0 }
static const bfd_arch_info_type bfd_c5_arch = MA (bfd_mach_mep_c5, "c5", FALSE, NULL);
static const bfd_arch_info_type bfd_h1_arch = MA (bfd_mach_mep_h1, "h1", FALSE, & bfd_c5_arch);
diff --git a/bfd/cpu-metag.c b/bfd/cpu-metag.c
index 3ce116f58a..60805b808c 100644
--- a/bfd/cpu-metag.c
+++ b/bfd/cpu-metag.c
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_metag_arch =
bfd_default_compatible, /* Architecture comparison fn. */
bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-microblaze.c b/bfd/cpu-microblaze.c
index 9bc2eb3de9..4e05d73f01 100644
--- a/bfd/cpu-microblaze.c
+++ b/bfd/cpu-microblaze.c
@@ -25,10 +25,10 @@
const bfd_arch_info_type bfd_microblaze_arch =
{
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_microblaze, /* Architecture. */
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_microblaze, /* Architecture number. */
0, /* Machine number - 0 for now. */
"microblaze", /* Architecture name. */
"MicroBlaze", /* Printable name. */
@@ -37,5 +37,6 @@ const bfd_arch_info_type bfd_microblaze_arch =
bfd_default_compatible, /* Architecture comparison function. */
bfd_default_scan, /* String to architecture conversion. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
index b359491305..15adcd4e2c 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -43,9 +43,9 @@ mips_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
{ \
- BITS_WORD, /* bits in a word */ \
- BITS_ADDR, /* bits in an address */ \
- 8, /* 8 bits in a byte */ \
+ BITS_WORD, /* Bits in a word. */ \
+ BITS_ADDR, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_mips, \
NUMBER, \
"mips", \
@@ -56,6 +56,7 @@ mips_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
bfd_default_scan, \
bfd_arch_default_fill, \
NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
enum
@@ -150,19 +151,19 @@ static const bfd_arch_info_type arch_info_struct[] =
N (64, 64, bfd_mach_mipsisa64r5,"mips:isa64r5", FALSE, NN(I_mipsisa64r5)),
N (64, 64, bfd_mach_mipsisa64r6,"mips:isa64r6", FALSE, NN(I_mipsisa64r6)),
N (64, 64, bfd_mach_mips_sb1, "mips:sb1", FALSE, NN(I_sb1)),
- N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e", FALSE, NN(I_loongson_2e)),
- N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f", FALSE, NN(I_loongson_2f)),
+ N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e", FALSE, NN(I_loongson_2e)),
+ N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f", FALSE, NN(I_loongson_2f)),
N (64, 64, bfd_mach_mips_gs464, "mips:gs464", FALSE, NN(I_gs464)),
- N (64, 64, bfd_mach_mips_gs464e, "mips:gs464e", FALSE, NN(I_gs464e)),
- N (64, 64, bfd_mach_mips_gs264e, "mips:gs264e", FALSE, NN(I_gs264e)),
+ N (64, 64, bfd_mach_mips_gs464e, "mips:gs464e", FALSE, NN(I_gs464e)),
+ N (64, 64, bfd_mach_mips_gs264e, "mips:gs264e", FALSE, NN(I_gs264e)),
N (64, 64, bfd_mach_mips_octeon,"mips:octeon", FALSE, NN(I_mipsocteon)),
- N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)),
- N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)),
- N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)),
- N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
+ N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)),
+ N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)),
+ N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)),
+ N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", FALSE,
NN(I_interaptiv_mr2)),
- N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
+ N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NULL)
};
/* The default architecture is mips:3000, but with a machine number of
diff --git a/bfd/cpu-mmix.c b/bfd/cpu-mmix.c
index eaacf31377..8bedeb2d2f 100644
--- a/bfd/cpu-mmix.c
+++ b/bfd/cpu-mmix.c
@@ -25,19 +25,20 @@
const bfd_arch_info_type
bfd_mmix_arch =
- {
- 64, /* 64 bits in a word. */
- 64, /* 64 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_mmix, /* Architecture. */
- 0, /* Machine number - 0 for now. */
- /* Sorry, these are by custom and creeping assumption lower-case. */
- "mmix", /* Architecture name. */
- "mmix", /* Printable name. */
- 3, /* Section align power. */
- TRUE, /* This is the default architecture. */
- bfd_default_compatible, /* Architecture comparison function. */
- bfd_default_scan, /* String to architecture conversion. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+{
+ 64, /* Bits in a word. */
+ 64, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_mmix, /* Architecture number. */
+ 0, /* Machine number - 0 for now. */
+ /* Sorry, these are by custom and creeping assumption lower-case. */
+ "mmix", /* Architecture name. */
+ "mmix", /* Printable name. */
+ 3, /* Section align power. */
+ TRUE, /* This is the default architecture. */
+ bfd_default_compatible, /* Architecture comparison function. */
+ bfd_default_scan, /* String to architecture conversion. */
+ bfd_arch_default_fill, /* Default fill. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-moxie.c b/bfd/cpu-moxie.c
index a3978b6c94..e200e1a4a5 100644
--- a/bfd/cpu-moxie.c
+++ b/bfd/cpu-moxie.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_moxie_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_moxie, /* enum bfd_architecture arch. */
- bfd_mach_moxie,
- "moxie", /* Arch name. */
- "moxie", /* Printable name. */
- 2, /* Unsigned int section alignment power. */
- TRUE, /* The one and only. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_moxie, /* Architecture Number. */
+ bfd_mach_moxie, /* Machine number. */
+ "moxie", /* Arch name. */
+ "moxie", /* Printable name. */
+ 2, /* Section alignment power. */
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-msp430.c b/bfd/cpu-msp430.c
index 2c35e5f138..94d570d82c 100644
--- a/bfd/cpu-msp430.c
+++ b/bfd/cpu-msp430.c
@@ -43,9 +43,9 @@ compatible (const bfd_arch_info_type * a,
#define N(addr_bits, machine, print, default, next) \
{ \
- 16, /* 16 bits in a word. */ \
+ 16, /* Bits in a word. */ \
addr_bits, /* Bits in an address. */ \
- 8, /* 8 bits in a byte. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_msp430, \
machine, /* Machine number. */ \
"msp430", /* Architecture name. */ \
@@ -55,7 +55,8 @@ compatible (const bfd_arch_info_type * a,
compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- next \
+ next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_struct[] =
diff --git a/bfd/cpu-mt.c b/bfd/cpu-mt.c
index 614a80421c..c6a320f17c 100644
--- a/bfd/cpu-mt.c
+++ b/bfd/cpu-mt.c
@@ -22,54 +22,31 @@
#include "bfd.h"
#include "libbfd.h"
-const bfd_arch_info_type arch_info_struct[] =
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_mt, \
+ NUMBER, \
+ "mt", \
+ PRINT, \
+ 1, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
+const bfd_arch_info_type arch_info_struct[2] =
{
-{
- 32, /* Bits per word - not really true. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_mt, /* Architecture. */
- bfd_mach_mrisc2, /* Machine. */
- "mt", /* Architecture name. */
- "ms1-003", /* Printable name. */
- 1, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[1] /* Next in list. */
-},
-{
- 32, /* Bits per word - not really true. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_mt, /* Architecture. */
- bfd_mach_ms2, /* Machine. */
- "mt", /* Architecture name. */
- "ms2", /* Printable name. */
- 1, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
-},
+ N (bfd_mach_mrisc2, "ms1-003", FALSE, arch_info_struct + 1),
+ N (bfd_mach_ms2, "ms2", FALSE, NULL)
};
const bfd_arch_info_type bfd_mt_arch =
-{
- 32, /* Bits per word - not really true. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_mt, /* Architecture. */
- bfd_mach_ms1, /* Machine. */
- "mt", /* Architecture name. */
- "ms1", /* Printable name. */
- 1, /* Section align power. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[0] /* Next in list. */
-};
+ N (bfd_mach_ms1, "ms1", TRUE, arch_info_struct);
+
diff --git a/bfd/cpu-nds32.c b/bfd/cpu-nds32.c
index 71c27e4d13..cfa15a033c 100644
--- a/bfd/cpu-nds32.c
+++ b/bfd/cpu-nds32.c
@@ -26,7 +26,7 @@
#define N(number, print, default, next) \
{32, 32, 8, bfd_arch_nds32, number, "nds32", print, 4, default, \
- bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
#define NEXT &arch_info_struct[0]
#define NDS32V2_NEXT &arch_info_struct[1]
diff --git a/bfd/cpu-nfp.c b/bfd/cpu-nfp.c
index 767539350f..a242d7b74a 100644
--- a/bfd/cpu-nfp.c
+++ b/bfd/cpu-nfp.c
@@ -50,13 +50,12 @@ bfd_nfp_compatible (const bfd_arch_info_type * a,
bfd_nfp_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- next \
+ next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
-static const bfd_arch_info_type arch_info_struct[] =
-{
- N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL)
-};
+static const bfd_arch_info_type arch_info_struct =
+ N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL);
const bfd_arch_info_type bfd_nfp_arch =
- N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]);
+ N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct);
diff --git a/bfd/cpu-nios2.c b/bfd/cpu-nios2.c
index 485394501f..907d318447 100644
--- a/bfd/cpu-nios2.c
+++ b/bfd/cpu-nios2.c
@@ -44,11 +44,11 @@ nios2_compatible (const bfd_arch_info_type *a,
return a;
}
-#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
{ \
- BITS_WORD, /* bits in a word */ \
- BITS_ADDR, /* bits in an address */ \
- 8, /* 8 bits in a byte */ \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_nios2, \
NUMBER, \
"nios2", \
@@ -58,17 +58,18 @@ nios2_compatible (const bfd_arch_info_type *a,
nios2_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- NEXT \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
#define NIOS2R1_NEXT &arch_info_struct[0]
#define NIOS2R2_NEXT &arch_info_struct[1]
-static const bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[2] =
{
- N (32, 32, bfd_mach_nios2r1, "nios2:r1", FALSE, NIOS2R2_NEXT),
- N (32, 32, bfd_mach_nios2r2, "nios2:r2", FALSE, NULL),
+ N (bfd_mach_nios2r1, "nios2:r1", FALSE, NIOS2R2_NEXT),
+ N (bfd_mach_nios2r2, "nios2:r2", FALSE, NULL),
};
const bfd_arch_info_type bfd_nios2_arch =
- N (32, 32, 0, "nios2", TRUE, NIOS2R1_NEXT);
+ N (bfd_mach_nios2, "nios2", TRUE, NIOS2R1_NEXT);
diff --git a/bfd/cpu-ns32k.c b/bfd/cpu-ns32k.c
index c69d93ba6a..bc6523b748 100644
--- a/bfd/cpu-ns32k.c
+++ b/bfd/cpu-ns32k.c
@@ -26,16 +26,16 @@
#include "ns32k.h"
#define N(machine, printable, d, next) \
-{ 32, 32, 8, bfd_arch_ns32k, machine, "ns32k",printable,3,d, \
- bfd_default_compatible,bfd_default_scan,bfd_arch_default_fill,next, }
+ { 32, 32, 8, bfd_arch_ns32k, machine, "ns32k",printable,3,d, \
+ bfd_default_compatible,bfd_default_scan,bfd_arch_default_fill,next, 0 }
static const bfd_arch_info_type arch_info_struct[] =
{
- N(32532,"ns32k:32532",TRUE, 0), /* The word ns32k will match this too. */
+ N (32532, "ns32k:32532", TRUE, 0), /* The word ns32k will match this too. */
};
const bfd_arch_info_type bfd_ns32k_arch =
- N(32032,"ns32k:32032",FALSE, &arch_info_struct[0]);
+ N (32032, "ns32k:32032", FALSE, &arch_info_struct[0]);
bfd_vma
_bfd_ns32k_get_displacement (bfd_byte *buffer, int size)
diff --git a/bfd/cpu-or1k.c b/bfd/cpu-or1k.c
index e6594865ae..cd9fda376e 100644
--- a/bfd/cpu-or1k.c
+++ b/bfd/cpu-or1k.c
@@ -21,39 +21,27 @@
#include "bfd.h"
#include "libbfd.h"
-const bfd_arch_info_type bfd_or1k_arch;
-const bfd_arch_info_type bfd_or1knd_arch;
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_or1k, \
+ NUMBER, \
+ PRINT, \
+ PRINT, \
+ 4, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
-const bfd_arch_info_type bfd_or1k_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_or1k,
- bfd_mach_or1k,
- "or1k",
- "or1k",
- 4,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_or1knd_arch,
- };
const bfd_arch_info_type bfd_or1knd_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_or1k,
- bfd_mach_or1knd,
- "or1knd",
- "or1knd",
- 4,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- NULL,
- };
+ N (bfd_mach_or1knd, "or1knd", FALSE, NULL);
+
+const bfd_arch_info_type bfd_or1k_arch =
+ N (bfd_mach_or1k, "or1k", TRUE, &bfd_or1knd_arch);
diff --git a/bfd/cpu-pdp11.c b/bfd/cpu-pdp11.c
index d42f7f8670..0d6a50c266 100644
--- a/bfd/cpu-pdp11.c
+++ b/bfd/cpu-pdp11.c
@@ -23,19 +23,20 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_pdp11_arch =
- {
- 16, /* 16 bits in a word */
- 16, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_pdp11,
- 0, /* only 1 machine */
- "pdp11",
- "pdp11",
- 1, /* alignment = 16 bit */
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 16, /* Bits in a word. */
+ 16, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_pdp11,
+ 0, /* Only 1 machine. */
+ "pdp11",
+ "pdp11",
+ 1, /* Alignment = 16 bit. */
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-pj.c b/bfd/cpu-pj.c
index b0a092304a..cf5f491e3e 100644
--- a/bfd/cpu-pj.c
+++ b/bfd/cpu-pj.c
@@ -25,17 +25,18 @@
const bfd_arch_info_type bfd_pj_arch =
{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
bfd_arch_pj,
0,
- "pj", /* arch_name */
- "pj", /* printable name */
+ "pj", /* Arch_name. */
+ "pj", /* Printable name. */
1,
- TRUE, /* the default machine */
+ TRUE, /* The default machine. */
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-plugin.c b/bfd/cpu-plugin.c
index 044f74c014..53f0c23457 100644
--- a/bfd/cpu-plugin.c
+++ b/bfd/cpu-plugin.c
@@ -24,9 +24,9 @@
const bfd_arch_info_type bfd_plugin_arch =
{
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
bfd_arch_plugin,
0, /* Only 1 machine. */
"plugin",
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_plugin_arch =
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c
index bfe4868159..49594678d3 100644
--- a/bfd/cpu-powerpc.c
+++ b/bfd/cpu-powerpc.c
@@ -48,375 +48,74 @@ powerpc_compatible (const bfd_arch_info_type *a,
/*NOTREACHED*/
}
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_powerpc, \
+ NUMBER, \
+ "powerpc", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ powerpc_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_powerpc_archs[] =
{
#if BFD_DEFAULT_TARGET_SIZE == 64
- /* Default arch must come first. */
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc64,
- "powerpc",
- "powerpc:common64",
- 3,
- TRUE, /* default for 64 bit target */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[1]
- },
+ /* Default for 64 bit target. */
+ N (64, bfd_mach_ppc64, "powerpc:common64", TRUE, bfd_powerpc_archs + 1),
/* elf32-ppc:ppc_elf_object_p relies on the default 32 bit arch
being immediately after the 64 bit default. */
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc, /* for the POWER/PowerPC common architecture */
- "powerpc",
- "powerpc:common",
- 3,
- FALSE,
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[2],
- },
+ N (32, bfd_mach_ppc, "powerpc:common", FALSE, bfd_powerpc_archs + 2),
#else
/* Default arch must come first. */
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc, /* for the POWER/PowerPC common architecture */
- "powerpc",
- "powerpc:common",
- 3,
- TRUE, /* default for 32 bit target */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[1],
- },
+ N (32, bfd_mach_ppc, "powerpc:common", TRUE, bfd_powerpc_archs + 1),
/* elf64-ppc:ppc64_elf_object_p relies on the default 64 bit arch
being immediately after the 32 bit default. */
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc64,
- "powerpc",
- "powerpc:common64",
- 3,
- FALSE,
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[2]
- },
+ N (64, bfd_mach_ppc64, "powerpc:common64", FALSE, bfd_powerpc_archs + 2),
#endif
+ N (32, bfd_mach_ppc_603, "powerpc:603", FALSE, bfd_powerpc_archs + 3),
+ N (32, bfd_mach_ppc_ec603e, "powerpc:EC603e", FALSE, bfd_powerpc_archs + 4),
+ N (32, bfd_mach_ppc_604, "powerpc:604", FALSE, bfd_powerpc_archs + 5),
+ N (32, bfd_mach_ppc_403, "powerpc:403", FALSE, bfd_powerpc_archs + 6),
+ N (32, bfd_mach_ppc_601, "powerpc:601", FALSE, bfd_powerpc_archs + 7),
+ N (64, bfd_mach_ppc_620, "powerpc:620", FALSE, bfd_powerpc_archs + 8),
+ N (64, bfd_mach_ppc_630, "powerpc:630", FALSE, bfd_powerpc_archs + 9),
+ N (64, bfd_mach_ppc_a35, "powerpc:a35", FALSE, bfd_powerpc_archs + 10),
+ N (64, bfd_mach_ppc_rs64ii, "powerpc:rs64ii", FALSE, bfd_powerpc_archs + 11),
+ N (64, bfd_mach_ppc_rs64iii, "powerpc:rs64iii", FALSE, bfd_powerpc_archs + 12),
+ N (32, bfd_mach_ppc_7400, "powerpc:7400", FALSE, bfd_powerpc_archs + 13),
+ N (32, bfd_mach_ppc_e500, "powerpc:e500", FALSE, bfd_powerpc_archs + 14),
+ N (32, bfd_mach_ppc_e500mc, "powerpc:e500mc", FALSE, bfd_powerpc_archs + 15),
+ N (64, bfd_mach_ppc_e500mc64, "powerpc:e500mc64",FALSE, bfd_powerpc_archs + 16),
+ N (32, bfd_mach_ppc_860, "powerpc:MPC8XX", FALSE, bfd_powerpc_archs + 17),
+ N (32, bfd_mach_ppc_750, "powerpc:750", FALSE, bfd_powerpc_archs + 18),
+ N (32, bfd_mach_ppc_titan, "powerpc:titan", FALSE, bfd_powerpc_archs + 19),
+
{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_603,
- "powerpc",
- "powerpc:603",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[3]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_ec603e,
- "powerpc",
- "powerpc:EC603e",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[4]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_604,
- "powerpc",
- "powerpc:604",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[5]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_403,
- "powerpc",
- "powerpc:403",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[6]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_601,
- "powerpc",
- "powerpc:601",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[7]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_620,
- "powerpc",
- "powerpc:620",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[8]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_630,
- "powerpc",
- "powerpc:630",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[9]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_a35,
- "powerpc",
- "powerpc:a35",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[10]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_rs64ii,
- "powerpc",
- "powerpc:rs64ii",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[11]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_rs64iii,
- "powerpc",
- "powerpc:rs64iii",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[12]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_7400,
- "powerpc",
- "powerpc:7400",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[13]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_e500,
- "powerpc",
- "powerpc:e500",
- 3,
- FALSE,
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[14]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_e500mc,
- "powerpc",
- "powerpc:e500mc",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[15]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_e500mc64,
- "powerpc",
- "powerpc:e500mc64",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[16]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_860,
- "powerpc",
- "powerpc:MPC8XX",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[17]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_750,
- "powerpc",
- "powerpc:750",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[18]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_titan,
- "powerpc",
- "powerpc:titan",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[19]
- },
- {
- 16, /* 16 or 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
+ 16, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
bfd_arch_powerpc,
bfd_mach_ppc_vle,
"powerpc",
"powerpc:vle",
3,
- FALSE, /* not the default */
+ FALSE, /* Not the default. */
powerpc_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- &bfd_powerpc_archs[20]
+ bfd_powerpc_archs + 20,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
},
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_e5500,
- "powerpc",
- "powerpc:e5500",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_powerpc_archs[21]
- },
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_powerpc,
- bfd_mach_ppc_e6500,
- "powerpc",
- "powerpc:e6500",
- 3,
- FALSE, /* not the default */
- powerpc_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0
- }
+
+ N (64, bfd_mach_ppc_e5500, "powerpc:e5500", FALSE, bfd_powerpc_archs + 21),
+ N (64, bfd_mach_ppc_e6500, "powerpc:e6500", FALSE, NULL)
};
diff --git a/bfd/cpu-pru.c b/bfd/cpu-pru.c
index b0feb9d6d9..99be27eca5 100644
--- a/bfd/cpu-pru.c
+++ b/bfd/cpu-pru.c
@@ -37,7 +37,8 @@
bfd_default_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- NEXT \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
const bfd_arch_info_type bfd_pru_arch = N (32, 32, 0, "pru", TRUE, NULL);
diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c
index 153a84e883..aca7ade0af 100644
--- a/bfd/cpu-riscv.c
+++ b/bfd/cpu-riscv.c
@@ -39,11 +39,11 @@ riscv_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
return a;
}
-#define N(BITS_WORD, BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
{ \
- BITS_WORD, /* bits in a word */ \
- BITS_ADDR, /* bits in an address */ \
- 8, /* 8 bits in a byte */ \
+ BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_riscv, \
NUMBER, \
"riscv", \
@@ -54,6 +54,7 @@ riscv_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
bfd_default_scan, \
bfd_arch_default_fill, \
NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */\
}
/* This enum must be kept in the same order as arch_info_struct. */
@@ -69,11 +70,11 @@ enum
and each entry except the last should end with NN (my enum value). */
static const bfd_arch_info_type arch_info_struct[] =
{
- N (64, 64, bfd_mach_riscv64, "riscv:rv64", FALSE, NN (I_riscv64)),
- N (32, 32, bfd_mach_riscv32, "riscv:rv32", FALSE, 0)
+ N (64, bfd_mach_riscv64, "riscv:rv64", FALSE, NN (I_riscv64)),
+ N (32, bfd_mach_riscv32, "riscv:rv32", FALSE, NULL)
};
/* The default architecture is riscv:rv64. */
const bfd_arch_info_type bfd_riscv_arch =
- N (64, 64, 0, "riscv", TRUE, &arch_info_struct[0]);
+ N (64, 0, "riscv", TRUE, &arch_info_struct[0]);
diff --git a/bfd/cpu-rl78.c b/bfd/cpu-rl78.c
index 5d4c770c08..acc4ab91c6 100644
--- a/bfd/cpu-rl78.c
+++ b/bfd/cpu-rl78.c
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_rl78_arch =
bfd_default_compatible, /* Architecture comparison fn. */
bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-rs6000.c b/bfd/cpu-rs6000.c
index d798d0eaaa..46ecca9247 100644
--- a/bfd/cpu-rs6000.c
+++ b/bfd/cpu-rs6000.c
@@ -46,68 +46,30 @@ rs6000_compatible (const bfd_arch_info_type *a,
/*NOTREACHED*/
}
-static const bfd_arch_info_type arch_info_struct[] =
-{
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_rs6000,
- bfd_mach_rs6k_rs1,
- "rs6000",
- "rs6000:rs1",
- 3,
- FALSE, /* not the default */
- rs6000_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[1]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_rs6000,
- bfd_mach_rs6k_rsc,
- "rs6000",
- "rs6000:rsc",
- 3,
- FALSE, /* not the default */
- rs6000_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[2]
- },
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_rs6000,
- bfd_mach_rs6k_rs2,
- "rs6000",
- "rs6000:rs2",
- 3,
- FALSE, /* not the default */
- rs6000_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_rs6000, \
+ NUMBER, \
+ "rs6000", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ rs6000_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
+
+static const bfd_arch_info_type arch_info_struct[3] =
+{
+ N (bfd_mach_rs6k_rs1, "rs6000:rs1", FALSE, arch_info_struct + 1),
+ N (bfd_mach_rs6k_rsc, "rs6000:rsc", FALSE, arch_info_struct + 2),
+ N (bfd_mach_rs6k_rs2, "rs6000:rs2", FALSE, NULL)
};
const bfd_arch_info_type bfd_rs6000_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_rs6000,
- bfd_mach_rs6k, /* POWER common architecture */
- "rs6000",
- "rs6000:6000",
- 3,
- TRUE, /* the default */
- rs6000_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[0]
- };
+ N (bfd_mach_rs6k, "rs6000:6000", TRUE, arch_info_struct + 0);
diff --git a/bfd/cpu-rx.c b/bfd/cpu-rx.c
index 821edeb590..ecdb98ff59 100644
--- a/bfd/cpu-rx.c
+++ b/bfd/cpu-rx.c
@@ -22,68 +22,18 @@
#include "bfd.h"
#include "libbfd.h"
-static const bfd_arch_info_type arch_info_struct[] =
+#define N(mach, name, align, def, next) \
+ { 32, 32, 8, bfd_arch_rx, mach, "rx", name, align, def, \
+ bfd_default_compatible, bfd_default_scan, \
+ bfd_arch_default_fill, next, 0 }
+
+static const bfd_arch_info_type arch_info_struct[3] =
{
- {
- 32, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_rx, /* Architecture. */
- bfd_mach_rx, /* Machine. */
- "rx", /* Architecture name. */
- "rx", /* Printable name. */
- 3, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[1] /* Next in list. */
- },
- {
- 32, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_rx, /* Architecture. */
- bfd_mach_rx_v2, /* Machine. */
- "rx:v2", /* Architecture name. */
- "rx:v2", /* Printable name. */
- 3, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- &arch_info_struct[2] /* Next in list. */
- },
- {
- 32, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_rx, /* Architecture. */
- bfd_mach_rx_v3, /* Machine. */
- "rx:v3", /* Architecture name. */
- "rx:v3", /* Printable name. */
- 3, /* Section align power. */
- FALSE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
- },
+ N (bfd_mach_rx, "rx", 3, FALSE, arch_info_struct + 1),
+ N (bfd_mach_rx_v2, "rx:v2", 3, FALSE, arch_info_struct + 2),
+ N (bfd_mach_rx_v3, "rx:v3", 3, FALSE, NULL)
};
const bfd_arch_info_type bfd_rx_arch =
-{
- 32, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_rx, /* Architecture. */
- bfd_mach_rx, /* Machine. */
- "rx", /* Architecture name. */
- "rx", /* Printable name. */
- 4, /* Section align power. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- & arch_info_struct[0], /* Next in list. */
-};
+ N (bfd_mach_rx, "rx", 4, TRUE, arch_info_struct + 0);
+
diff --git a/bfd/cpu-s12z.c b/bfd/cpu-s12z.c
index 1326359858..4ad2eafbb1 100644
--- a/bfd/cpu-s12z.c
+++ b/bfd/cpu-s12z.c
@@ -24,18 +24,19 @@
const bfd_arch_info_type bfd_s12z_arch =
{
- 16, /* 16 bits in a word. */
- 24, /* 24 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_s12z,
- 0,
- "s12z",
- "s12z",
- 4, /* Section alignment power. */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 16, /* Bits in a word. */
+ 24, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_s12z,
+ 0,
+ "s12z",
+ "s12z",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-s390.c b/bfd/cpu-s390.c
index 8e379364c7..f906472435 100644
--- a/bfd/cpu-s390.c
+++ b/bfd/cpu-s390.c
@@ -25,19 +25,20 @@
#define N(bits, number, print, is_default, next) \
{ \
- bits, /* bits in a word */ \
- bits, /* bits in an address */ \
- 8, /* bits in a byte */ \
+ bits, /* Bits in a word. */ \
+ bits, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_s390, \
number, \
"s390", \
print, \
- 3, /* section alignment power */ \
+ 3, /* Section alignment power */ \
is_default, \
bfd_default_compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- next \
+ next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
#if BFD_DEFAULT_TARGET_SIZE == 64
diff --git a/bfd/cpu-score.c b/bfd/cpu-score.c
index 576e9adbda..5bf9c6bdf2 100644
--- a/bfd/cpu-score.c
+++ b/bfd/cpu-score.c
@@ -43,11 +43,11 @@ compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
return a;
}
-#define N(addr_bits, machine, print, default, next) \
+#define N(machine, print, default, next) \
{ \
- 32, /* 16 bits in a word. */ \
+ 32, /* Bits in a word. */ \
32, /* Bits in an address. */ \
- 8, /* 8 bits in a byte. */ \
+ 8, /* Bits in a byte. */ \
bfd_arch_score, \
machine, /* Machine number. */ \
"score", /* Architecture name. */ \
@@ -57,13 +57,14 @@ compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
compatible, \
bfd_default_scan, \
bfd_arch_default_fill, \
- next \
+ next, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
}
static const bfd_arch_info_type arch_info_struct[] =
{
- N (16, bfd_mach_score3, "score3", FALSE, NULL),
+ N (bfd_mach_score3, "score3", FALSE, NULL),
};
const bfd_arch_info_type bfd_score_arch =
- N (16, bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
+ N (bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
diff --git a/bfd/cpu-sh.c b/bfd/cpu-sh.c
index 2bfaad7e63..37edace29b 100644
--- a/bfd/cpu-sh.c
+++ b/bfd/cpu-sh.c
@@ -24,333 +24,50 @@
#include "libbfd.h"
#include "../opcodes/sh-opc.h"
-#define SH_NEXT arch_info_struct + 0
-#define SH2_NEXT arch_info_struct + 1
-#define SH2E_NEXT arch_info_struct + 2
-#define SH_DSP_NEXT arch_info_struct + 3
-#define SH3_NEXT arch_info_struct + 4
-#define SH3_NOMMU_NEXT arch_info_struct + 5
-#define SH3_DSP_NEXT arch_info_struct + 6
-#define SH3E_NEXT arch_info_struct + 7
-#define SH4_NEXT arch_info_struct + 8
-#define SH4A_NEXT arch_info_struct + 9
-#define SH4AL_DSP_NEXT arch_info_struct + 10
-#define SH4_NOFPU_NEXT arch_info_struct + 11
-#define SH4_NOMMU_NOFPU_NEXT arch_info_struct + 12
-#define SH4A_NOFPU_NEXT arch_info_struct + 13
-#define SH2A_NEXT arch_info_struct + 14
-#define SH2A_NOFPU_NEXT arch_info_struct + 15
-#define SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT arch_info_struct + 16
-#define SH2A_NOFPU_OR_SH3_NOMMU_NEXT arch_info_struct + 17
-#define SH2A_OR_SH4_NEXT arch_info_struct + 18
-#define SH2A_OR_SH3E_NEXT NULL
+
+#define N(NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_sh, \
+ NUMBER, \
+ "sh", \
+ PRINT, \
+ 1, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
static const bfd_arch_info_type arch_info_struct[] =
{
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2,
- "sh", /* Architecture name. */
- "sh2", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2e,
- "sh", /* Architecture name. */
- "sh2e", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2E_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh_dsp,
- "sh", /* Architecture name. */
- "sh-dsp", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH_DSP_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh3,
- "sh", /* Architecture name. */
- "sh3", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH3_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh3_nommu,
- "sh", /* Architecture name. */
- "sh3-nommu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH3_NOMMU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh3_dsp,
- "sh", /* Architecture name. */
- "sh3-dsp", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH3_DSP_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh3e,
- "sh", /* Architecture name. */
- "sh3e", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH3E_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4,
- "sh", /* Architecture name. */
- "sh4", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4a,
- "sh", /* Architecture name. */
- "sh4a", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4A_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4al_dsp,
- "sh", /* Architecture name. */
- "sh4al-dsp", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4AL_DSP_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4_nofpu,
- "sh", /* Architecture name. */
- "sh4-nofpu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4_NOFPU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4_nommu_nofpu,
- "sh", /* Architecture name. */
- "sh4-nommu-nofpu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4_NOMMU_NOFPU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh4a_nofpu,
- "sh", /* Architecture name. */
- "sh4a-nofpu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH4A_NOFPU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a,
- "sh", /* Architecture name. */
- "sh2a", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a_nofpu,
- "sh", /* Architecture name. */
- "sh2a-nofpu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_NOFPU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu,
- "sh", /* Architecture name. */
- "sh2a-nofpu-or-sh4-nommu-nofpu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a_nofpu_or_sh3_nommu,
- "sh", /* Architecture name. . */
- "sh2a-nofpu-or-sh3-nommu", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_NOFPU_OR_SH3_NOMMU_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a_or_sh4,
- "sh", /* Architecture name. */
- "sh2a-or-sh4", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_OR_SH4_NEXT
- },
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh2a_or_sh3e,
- "sh", /* Architecture name. */
- "sh2a-or-sh3e", /* Machine name. */
- 1,
- FALSE, /* Not the default. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH2A_OR_SH3E_NEXT
- },
+ N (bfd_mach_sh2, "sh2", FALSE, arch_info_struct + 1),
+ N (bfd_mach_sh2e, "sh2e", FALSE, arch_info_struct + 2),
+ N (bfd_mach_sh_dsp, "sh-dsp", FALSE, arch_info_struct + 3),
+ N (bfd_mach_sh3, "sh3", FALSE, arch_info_struct + 4),
+ N (bfd_mach_sh3_nommu, "sh3-nommu", FALSE, arch_info_struct + 5),
+ N (bfd_mach_sh3_dsp, "sh3-dsp", FALSE, arch_info_struct + 6),
+ N (bfd_mach_sh3e, "sh3e", FALSE, arch_info_struct + 7),
+ N (bfd_mach_sh4, "sh4", FALSE, arch_info_struct + 8),
+ N (bfd_mach_sh4a, "sh4a", FALSE, arch_info_struct + 9),
+ N (bfd_mach_sh4al_dsp, "sh4al-dsp", FALSE, arch_info_struct + 10),
+ N (bfd_mach_sh4_nofpu, "sh4-nofpu", FALSE, arch_info_struct + 11),
+ N (bfd_mach_sh4_nommu_nofpu, "sh4-nommu-nofpu", FALSE, arch_info_struct + 12),
+ N (bfd_mach_sh4a_nofpu, "sh4a-nofpu", FALSE, arch_info_struct + 13),
+ N (bfd_mach_sh2a, "sh2a", FALSE, arch_info_struct + 14),
+ N (bfd_mach_sh2a_nofpu, "sh2a-nofpu", FALSE, arch_info_struct + 15),
+ N (bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, "sh2a-nofpu-or-sh4-nommu-nofpu", FALSE, arch_info_struct + 16),
+ N (bfd_mach_sh2a_nofpu_or_sh3_nommu, "sh2a-nofpu-or-sh3-nommu", FALSE, arch_info_struct + 17),
+ N (bfd_mach_sh2a_or_sh4, "sh2a-or-sh4", FALSE, arch_info_struct + 18),
+ N (bfd_mach_sh2a_or_sh3e, "sh2a-or-sh3e", FALSE, NULL)
};
const bfd_arch_info_type bfd_sh_arch =
-{
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_sh,
- bfd_mach_sh,
- "sh", /* Architecture name. */
- "sh", /* Machine name. */
- 1,
- TRUE, /* The default machine. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- SH_NEXT
-};
-
+ N (bfd_mach_sh, "sh", TRUE, arch_info_struct + 0);
/* This table defines the mappings from the BFD internal numbering
system to the opcodes internal flags system.
diff --git a/bfd/cpu-sparc.c b/bfd/cpu-sparc.c
index a1eb4c227d..e7f30fb342 100644
--- a/bfd/cpu-sparc.c
+++ b/bfd/cpu-sparc.c
@@ -22,338 +22,48 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_sparc, \
+ NUMBER, \
+ "sparc", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
static const bfd_arch_info_type arch_info_struct[] =
{
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_sparclet,
- "sparc",
- "sparc:sparclet",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[1],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_sparclite,
- "sparc",
- "sparc:sparclite",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[2],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plus,
- "sparc",
- "sparc:v8plus",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[3],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusa,
- "sparc",
- "sparc:v8plusa",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[4],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_sparclite_le,
- "sparc",
- "sparc:sparclite_le",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[5],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9,
- "sparc",
- "sparc:v9",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[6],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9a,
- "sparc",
- "sparc:v9a",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[7],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusb,
- "sparc",
- "sparc:v8plusb",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[8],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9b,
- "sparc",
- "sparc:v9b",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[9],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusc,
- "sparc",
- "sparc:v8plusc",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[10],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9c,
- "sparc",
- "sparc:v9c",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[11],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusd,
- "sparc",
- "sparc:v8plusd",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[12],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9d,
- "sparc",
- "sparc:v9d",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[13],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8pluse,
- "sparc",
- "sparc:v8pluse",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[14],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9e,
- "sparc",
- "sparc:v9e",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[15],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusv,
- "sparc",
- "sparc:v8plusv",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[16],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9v,
- "sparc",
- "sparc:v9v",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[17],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusm,
- "sparc",
- "sparc:v8plusm",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[18],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9m,
- "sparc",
- "sparc:v9m",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[19],
- },
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v8plusm8,
- "sparc",
- "sparc:v8plusm8",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[20],
- },
- {
- 64, /* bits in a word */
- 64, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc_v9m8,
- "sparc",
- "sparc:v9m8",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- }
+ N (32, bfd_mach_sparc_sparclet, "sparc:sparclet", FALSE, arch_info_struct + 1),
+ N (32, bfd_mach_sparc_sparclite, "sparc:sparclite", FALSE, arch_info_struct + 2),
+ N (32, bfd_mach_sparc_v8plus, "sparc:v8plus", FALSE, arch_info_struct + 3),
+ N (32, bfd_mach_sparc_v8plusa, "sparc:v8plusa", FALSE, arch_info_struct + 4),
+ N (32, bfd_mach_sparc_sparclite_le, "sparc:sparclite_le", FALSE, arch_info_struct + 5),
+ N (64, bfd_mach_sparc_v9, "sparc:v9", FALSE, arch_info_struct + 6),
+ N (64, bfd_mach_sparc_v9a, "sparc:v9a", FALSE, arch_info_struct + 7),
+ N (32, bfd_mach_sparc_v8plusb, "sparc:v8plusb", FALSE, arch_info_struct + 8),
+ N (64, bfd_mach_sparc_v9b, "sparc:v9b", FALSE, arch_info_struct + 9),
+ N (32, bfd_mach_sparc_v8plusc, "sparc:v8plusc", FALSE, arch_info_struct + 10),
+ N (64, bfd_mach_sparc_v9c, "sparc:v9c", FALSE, arch_info_struct + 11),
+ N (32, bfd_mach_sparc_v8plusd, "sparc:v8plusd", FALSE, arch_info_struct + 12),
+ N (64, bfd_mach_sparc_v9d, "sparc:v9d", FALSE, arch_info_struct + 13),
+ N (32, bfd_mach_sparc_v8pluse, "sparc:v8pluse", FALSE, arch_info_struct + 14),
+ N (64, bfd_mach_sparc_v9e, "sparc:v9e", FALSE, arch_info_struct + 15),
+ N (32, bfd_mach_sparc_v8plusv, "sparc:v8plusv", FALSE, arch_info_struct + 16),
+ N (64, bfd_mach_sparc_v9v, "sparc:v9v", FALSE, arch_info_struct + 17),
+ N (32, bfd_mach_sparc_v8plusm, "sparc:v8plusm", FALSE, arch_info_struct + 18),
+ N (64, bfd_mach_sparc_v9m, "sparc:v9m", FALSE, arch_info_struct + 19),
+ N (32, bfd_mach_sparc_v8plusm8, "sparc:v8plusm8", FALSE, arch_info_struct + 20),
+ N (64, bfd_mach_sparc_v9m8, "sparc:v9m8", FALSE, NULL)
};
const bfd_arch_info_type bfd_sparc_arch =
- {
- 32, /* bits in a word */
- 32, /* bits in an address */
- 8, /* bits in a byte */
- bfd_arch_sparc,
- bfd_mach_sparc,
- "sparc",
- "sparc",
- 3,
- TRUE, /* the default */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &arch_info_struct[0],
- };
+ N (32, bfd_mach_sparc, "sparc", TRUE, arch_info_struct);
diff --git a/bfd/cpu-spu.c b/bfd/cpu-spu.c
index 8f9e755be8..af66045319 100644
--- a/bfd/cpu-spu.c
+++ b/bfd/cpu-spu.c
@@ -20,7 +20,6 @@
#include "bfd.h"
#include "libbfd.h"
-
static const bfd_arch_info_type *
spu_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
{
@@ -35,21 +34,20 @@ spu_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
/*NOTREACHED*/
}
-const bfd_arch_info_type bfd_spu_arch[] =
+const bfd_arch_info_type bfd_spu_arch =
{
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_spu, /* architecture */
- bfd_mach_spu, /* machine */
- "spu", /* architecture name */
- "spu:256K", /* printable name */
- 3, /* aligned power */
- TRUE, /* the default machine for the architecture */
- spu_compatible, /* the spu is only compatible with itself, see above */
- bfd_default_scan,
- bfd_arch_default_fill,
- 0, /* next -- there are none! */
- }
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_spu, /* Architecture number. */
+ bfd_mach_spu, /* Machine number. */
+ "spu", /* Architecture name. */
+ "spu:256K", /* Printable name. */
+ 3, /* Section alignment power. */
+ TRUE, /* Default machine. */
+ spu_compatible, /* The spu is only compatible with itself, see above. */
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL, /* Next -- there are none! */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-tic30.c b/bfd/cpu-tic30.c
index 3296daf2ae..606d66353b 100644
--- a/bfd/cpu-tic30.c
+++ b/bfd/cpu-tic30.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_tic30_arch =
{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
bfd_arch_tic30,
- 0, /* only 1 machine */
+ 0, /* Only 1 machine. */
"tic30",
"tms320c30",
2,
- TRUE, /* the one and only */
+ TRUE, /* The one and only. */
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-tic4x.c b/bfd/cpu-tic4x.c
index f8dbf98065..cf87bfedf5 100644
--- a/bfd/cpu-tic4x.c
+++ b/bfd/cpu-tic4x.c
@@ -45,39 +45,26 @@ tic4x_scan (const struct bfd_arch_info *info,
return FALSE;
}
+#define N(NUMBER, NAME, PRINT, DEFAULT, NEXT) \
+ { \
+ 32, /* Bits in a word. */ \
+ 32, /* Bits in an address. */ \
+ 32, /* Bits in a byte. */ \
+ bfd_arch_tic4x, \
+ NUMBER, \
+ NAME, \
+ PRINT, \
+ 0, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ tic4x_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
const bfd_arch_info_type bfd_tic3x_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 32, /* 32 bits in a byte. */
- bfd_arch_tic4x,
- bfd_mach_tic3x, /* Machine number. */
- "tic3x", /* Architecture name. */
- "tms320c3x", /* Printable name. */
- 0, /* Alignment power. */
- FALSE, /* Not the default architecture. */
- bfd_default_compatible,
- tic4x_scan,
- bfd_arch_default_fill,
- 0
- };
+ N (bfd_mach_tic3x, "tic3x", "tms320c3x", FALSE, NULL);
const bfd_arch_info_type bfd_tic4x_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 32, /* 32 bits in a byte. */
- bfd_arch_tic4x,
- bfd_mach_tic4x, /* Machine number. */
- "tic4x", /* Architecture name. */
- "tms320c4x", /* Printable name. */
- 0, /* Alignment power. */
- TRUE, /* The default architecture. */
- bfd_default_compatible,
- tic4x_scan,
- bfd_arch_default_fill,
- &bfd_tic3x_arch,
- };
-
-
+ N (bfd_mach_tic4x, "tic4x", "tms320c4x", TRUE, &bfd_tic3x_arch);
diff --git a/bfd/cpu-tic54x.c b/bfd/cpu-tic54x.c
index 7c9505dc8b..67e6e6ca80 100644
--- a/bfd/cpu-tic54x.c
+++ b/bfd/cpu-tic54x.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_tic54x_arch =
{
- 16, /* 16 bits in a word */
- 16, /* 16 bits in an address (except '548) */
- 16, /* 16 bits in a byte */
+ 16, /* Bits in a word. */
+ 16, /* Bits in an address (except '548). */
+ 16, /* Bits in a byte. */
bfd_arch_tic54x,
- 0, /* only 1 machine */
+ 0, /* Only 1 machine. */
"tic54x",
"tms320c54x",
1,
- TRUE, /* the one and only */
+ TRUE, /* The one and only. */
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
- 0,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-tic6x.c b/bfd/cpu-tic6x.c
index bb9439480e..286927ba63 100644
--- a/bfd/cpu-tic6x.c
+++ b/bfd/cpu-tic6x.c
@@ -23,18 +23,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_tic6x_arch =
- {
- 32, /* 32 bits in a word. */
- 32, /* 32 bits in an address. */
- 8, /* 8 bits in a byte. */
- bfd_arch_tic6x, /* Architecture. */
- 0, /* No BFD machine numbers needed. */
- "tic6x", /* Architecture name. */
- "tic6x", /* Printable name. */
- 2, /* Section alignment power. */
- TRUE, /* Default machine for this architecture. */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_tic6x, /* Architecture. */
+ 0, /* No BFD machine numbers needed. */
+ "tic6x", /* Architecture name. */
+ "tic6x", /* Printable name. */
+ 2, /* Section alignment power. */
+ TRUE, /* Default machine for this architecture. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-tic80.c b/bfd/cpu-tic80.c
index 24261f438e..2fcbd9ddc4 100644
--- a/bfd/cpu-tic80.c
+++ b/bfd/cpu-tic80.c
@@ -24,18 +24,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_tic80_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_tic80, /* bfd_architecture enum */
- 0, /* only 1 machine */
- "tic80", /* architecture name */
- "tic80", /* printable name */
- 2, /* section alignment power */
- TRUE, /* default machine for architecture */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- NULL, /* Pointer to next in chain */
- };
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_tic80, /* Architecture number. */
+ 0, /* Only 1 machine. */
+ "tic80", /* Architecture name. */
+ "tic80", /* Printable name. */
+ 2, /* Section alignment power. */
+ TRUE, /* Default machine. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL, /* Pointer to next in chain. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-tilegx.c b/bfd/cpu-tilegx.c
index cfe08b3f9a..633dde8d97 100644
--- a/bfd/cpu-tilegx.c
+++ b/bfd/cpu-tilegx.c
@@ -22,36 +22,27 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_tilegx, \
+ NUMBER, \
+ "tilegx", \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type bfd_tilegx32_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_tilegx,
- bfd_mach_tilegx32,
- "tilegx32",
- "tilegx32",
- 3,
- FALSE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+ N (32, bfd_mach_tilegx32, "tilegx32", FALSE, NULL);
const bfd_arch_info_type bfd_tilegx_arch =
- {
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_tilegx,
- bfd_mach_tilegx,
- "tilegx",
- "tilegx",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- &bfd_tilegx32_arch,
- };
+ N (64, bfd_mach_tilegx, "tilegx", TRUE, &bfd_tilegx32_arch);
+
diff --git a/bfd/cpu-tilepro.c b/bfd/cpu-tilepro.c
index bdd6aee9d2..82ad8d2d04 100644
--- a/bfd/cpu-tilepro.c
+++ b/bfd/cpu-tilepro.c
@@ -23,18 +23,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_tilepro_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_tilepro,
- bfd_mach_tilepro,
- "tilepro",
- "tilepro",
- 3,
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_tilepro,
+ bfd_mach_tilepro,
+ "tilepro",
+ "tilepro",
+ 3,
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-v850.c b/bfd/cpu-v850.c
index d4c86938fe..0daea285ef 100644
--- a/bfd/cpu-v850.c
+++ b/bfd/cpu-v850.c
@@ -24,23 +24,18 @@
#include "safe-ctype.h"
#define N(number, print, default, next) \
-{ 32, 32, 8, bfd_arch_v850, number, "v850", print ":old-gcc-abi", 2, default, \
- bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_v850, number, "v850", print ":old-gcc-abi", 2, default, \
+ bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
-#define NEXT NULL
-
-static const bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[6] =
{
- N (bfd_mach_v850e3v5, "v850e3v5", FALSE, & arch_info_struct[1]),
- N (bfd_mach_v850e3v5, "v850e2v4", FALSE, & arch_info_struct[2]),
- N (bfd_mach_v850e2v3, "v850e2v3", FALSE, & arch_info_struct[3]),
- N (bfd_mach_v850e2, "v850e2", FALSE, & arch_info_struct[4]),
- N (bfd_mach_v850e1, "v850e1", FALSE, & arch_info_struct[5]),
- N (bfd_mach_v850e, "v850e", FALSE, NULL)
+ N (bfd_mach_v850e3v5, "v850e3v5", FALSE, arch_info_struct + 1),
+ N (bfd_mach_v850e3v5, "v850e2v4", FALSE, arch_info_struct + 2),
+ N (bfd_mach_v850e2v3, "v850e2v3", FALSE, arch_info_struct + 3),
+ N (bfd_mach_v850e2, "v850e2", FALSE, arch_info_struct + 4),
+ N (bfd_mach_v850e1, "v850e1", FALSE, arch_info_struct + 5),
+ N (bfd_mach_v850e, "v850e", FALSE, NULL)
};
-#undef NEXT
-#define NEXT & arch_info_struct[0]
-
const bfd_arch_info_type bfd_v850_arch =
- N (bfd_mach_v850, "v850", TRUE, NEXT);
+ N (bfd_mach_v850, "v850", TRUE, arch_info_struct + 0);
diff --git a/bfd/cpu-v850_rh850.c b/bfd/cpu-v850_rh850.c
index f7cd9207bd..4c84226f23 100644
--- a/bfd/cpu-v850_rh850.c
+++ b/bfd/cpu-v850_rh850.c
@@ -24,8 +24,8 @@
#include "safe-ctype.h"
#define R(number, print, default, next) \
-{ 32, 32, 8, bfd_arch_v850_rh850, number, "v850", print, 2, default, \
- bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_v850_rh850, number, "v850", print, 2, default, \
+ bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
static const bfd_arch_info_type arch_info_struct[] =
{
diff --git a/bfd/cpu-vax.c b/bfd/cpu-vax.c
index c4c9f08078..3e9a4024a7 100644
--- a/bfd/cpu-vax.c
+++ b/bfd/cpu-vax.c
@@ -24,18 +24,19 @@
#include "libbfd.h"
const bfd_arch_info_type bfd_vax_arch =
- {
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_vax,
- 0, /* only 1 machine */
- "vax",
- "vax",
- 3,
- TRUE, /* the one and only */
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
- };
+{
+ 32, /* Bits in a word. */
+ 32, /* Bits in an address. */
+ 8, /* Bits in a byte. */
+ bfd_arch_vax,
+ 0, /* Only 1 machine. */
+ "vax",
+ "vax",
+ 3,
+ TRUE, /* The one and only. */
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
+};
diff --git a/bfd/cpu-visium.c b/bfd/cpu-visium.c
index 0543839c66..a1204de991 100644
--- a/bfd/cpu-visium.c
+++ b/bfd/cpu-visium.c
@@ -25,17 +25,18 @@
const bfd_arch_info_type bfd_visium_arch =
{
- 32, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_visium, /* architecture */
- bfd_mach_visium, /* machine */
- "visium", /* architecture name */
- "visium", /* printable name */
- 2, /* section align power */
- TRUE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- bfd_default_scan, /* string to architecture convert fn */
- bfd_arch_default_fill, /* default fill */
- NULL /* next in list */
+ 32, /* Bits per word. */
+ 32, /* Bits per address. */
+ 8, /* Bits per byte. */
+ bfd_arch_visium, /* Architecture number. */
+ bfd_mach_visium, /* Machine number. */
+ "visium", /* Architecture name. */
+ "visium", /* Machine name. */
+ 2, /* Section align power. */
+ TRUE, /* The default ? */
+ bfd_default_compatible, /* Architecture comparison fn. */
+ bfd_default_scan, /* String to architecture convert fn. */
+ bfd_arch_default_fill, /* Default fill. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-wasm32.c b/bfd/cpu-wasm32.c
index 7f2f5629c9..142e3c2853 100644
--- a/bfd/cpu-wasm32.c
+++ b/bfd/cpu-wasm32.c
@@ -24,8 +24,8 @@
#include "libiberty.h"
#define N(number, print, default, next) \
-{ 32, 32, 8, bfd_arch_wasm32, number, "wasm32", "wasm32", 4, default, bfd_default_compatible, \
- bfd_default_scan, bfd_arch_default_fill, next }
+ { 32, 32, 8, bfd_arch_wasm32, number, "wasm32", "wasm32", 4, default, bfd_default_compatible, \
+ bfd_default_scan, bfd_arch_default_fill, next, 0 }
static const bfd_arch_info_type arch_info_struct[] =
{
diff --git a/bfd/cpu-xc16x.c b/bfd/cpu-xc16x.c
index 5a3f78b723..3605c3c34b 100644
--- a/bfd/cpu-xc16x.c
+++ b/bfd/cpu-xc16x.c
@@ -24,53 +24,30 @@
#include "bfd.h"
#include "libbfd.h"
+#define N(BITS_ADDR, NUMBER, PRINT, DEFAULT, NEXT) \
+ { \
+ 16, /* Bits in a word. */ \
+ BITS_ADDR, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_xc16x, \
+ NUMBER, \
+ "xc16x", \
+ PRINT, \
+ 1, /* Section alignment power. */ \
+ DEFAULT, \
+ bfd_default_compatible, \
+ bfd_default_scan, \
+ bfd_arch_default_fill, \
+ NEXT, \
+ 0 /* Maximum offset of a reloc from the start of an insn. */ \
+ }
+
const bfd_arch_info_type xc16xs_info_struct =
-{
- 16, /* Bits per word. */
- 16, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_xc16x, /* Architecture. */
- bfd_mach_xc16xs, /* Machine. */
- "xc16x", /* Architecture name. */
- "xc16xs", /* Printable name. */
- 1, /* Section alignment - 16 bit. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
-};
+ N (16, bfd_mach_xc16xs, "xc16xs", FALSE, NULL);
const bfd_arch_info_type xc16xl_info_struct =
-{
- 16, /* Bits per word. */
- 32, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_xc16x, /* Architecture. */
- bfd_mach_xc16xl, /* Machine. */
- "xc16x", /* Architecture name. */
- "xc16xl", /* Printable name. */
- 1, /* Section alignment - 16 bit. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- & xc16xs_info_struct /* Next in list. */
-};
+ N (32, bfd_mach_xc16xl, "xc16xl", FALSE, & xc16xs_info_struct);
const bfd_arch_info_type bfd_xc16x_arch =
-{
- 16, /* Bits per word. */
- 16, /* Bits per address. */
- 8, /* Bits per byte. */
- bfd_arch_xc16x, /* Architecture. */
- bfd_mach_xc16x, /* Machine. */
- "xc16x", /* Architecture name. */
- "xc16x", /* Printable name. */
- 1, /* Section alignment - 16 bit. */
- TRUE, /* The default ? */
- bfd_default_compatible, /* Architecture comparison fn. */
- bfd_default_scan, /* String to architecture convert fn. */
- bfd_arch_default_fill, /* Default fill. */
- & xc16xl_info_struct /* Next in list. */
-};
+ N (16, bfd_mach_xc16x, "xc16x", TRUE, & xc16xl_info_struct);
+
diff --git a/bfd/cpu-xgate.c b/bfd/cpu-xgate.c
index 85f1861946..720a7382a5 100644
--- a/bfd/cpu-xgate.c
+++ b/bfd/cpu-xgate.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_xgate_arch =
{
- 16, /* 16 bits in a word. */
- 32, /* 32 bits used as 16 bit address and PPAGE value. */
- 8, /* 8 bits in a byte. */
- bfd_arch_xgate,
- bfd_mach_xgate,
- "xgate",
- "xgate",
- 4, /* Section alignment power. */
- TRUE,
- bfd_default_compatible,
- bfd_default_scan,
- bfd_arch_default_fill,
- 0,
+ 16, /* Bits in a word. */
+ 32, /* Bits used as 16 bit address and PPAGE value. */
+ 8, /* Bits in a byte. */
+ bfd_arch_xgate,
+ bfd_mach_xgate,
+ "xgate",
+ "xgate",
+ 4, /* Section alignment power. */
+ TRUE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ NULL,
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-xstormy16.c b/bfd/cpu-xstormy16.c
index f6e461dbe7..84aa391a9c 100644
--- a/bfd/cpu-xstormy16.c
+++ b/bfd/cpu-xstormy16.c
@@ -24,17 +24,18 @@
const bfd_arch_info_type bfd_xstormy16_arch =
{
- 16, /* bits per word */
- 32, /* bits per address */
- 8, /* bits per byte */
- bfd_arch_xstormy16, /* architecture */
- bfd_mach_xstormy16, /* machine */
- "xstormy16", /* architecture name */
- "xstormy16", /* printable name */
- 2, /* section align power */
- TRUE, /* the default ? */
- bfd_default_compatible, /* architecture comparison fn */
- bfd_default_scan, /* string to architecture convert fn */
+ 16, /* Bits per word. */
+ 32, /* Bits per address. */
+ 8, /* Bits per byte. */
+ bfd_arch_xstormy16, /* Architecture. */
+ bfd_mach_xstormy16, /* Machine. */
+ "xstormy16", /* Architecture name. */
+ "xstormy16", /* Printable name. */
+ 2, /* Section align power. */
+ TRUE, /* The default ? */
+ bfd_default_compatible, /* Architecture comparison fn. */
+ bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* next in list */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-xtensa.c b/bfd/cpu-xtensa.c
index 24e25a31a1..47668d6e2a 100644
--- a/bfd/cpu-xtensa.c
+++ b/bfd/cpu-xtensa.c
@@ -36,5 +36,6 @@ const bfd_arch_info_type bfd_xtensa_arch =
bfd_default_compatible, /* Architecture comparison fn. */
bfd_default_scan, /* String to architecture convert fn. */
bfd_arch_default_fill, /* Default fill. */
- NULL /* Next in list. */
+ NULL, /* Next in list. */
+ 0 /* Maximum offset of a reloc from the start of an insn. */
};
diff --git a/bfd/cpu-z80.c b/bfd/cpu-z80.c
index 145aa4f7a9..7d3b8649e3 100644
--- a/bfd/cpu-z80.c
+++ b/bfd/cpu-z80.c
@@ -41,8 +41,8 @@ compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
}
#define N(name,print,default,next) \
-{ 16, 16, 8, bfd_arch_z80, name, "z80", print, 0, default, \
- compatible, bfd_default_scan, bfd_arch_default_fill, next }
+ { 16, 16, 8, bfd_arch_z80, name, "z80", print, 0, default, \
+ compatible, bfd_default_scan, bfd_arch_default_fill, next, 0 }
#define M(n) &arch_info_struct[n]
diff --git a/bfd/cpu-z8k.c b/bfd/cpu-z8k.c
index 48c17debb2..56ee56aac0 100644
--- a/bfd/cpu-z8k.c
+++ b/bfd/cpu-z8k.c
@@ -37,12 +37,12 @@ compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
static const bfd_arch_info_type arch_info_struct[] =
{
{ 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, FALSE,
- compatible, bfd_default_scan, bfd_arch_default_fill, 0 }
+ compatible, bfd_default_scan, bfd_arch_default_fill, NULL, 0 }
};
const bfd_arch_info_type bfd_z8k_arch =
{
32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, TRUE,
compatible, bfd_default_scan, bfd_arch_default_fill,
- &arch_info_struct[0]
+ &arch_info_struct[0], 0
};
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 5e8e03d604..7ccf842955 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-10 Nick Clifton <nickc@redhat.com>
+
+ PR 24907
+ * objdump.c (null_print): New function.
+ (disassemble_bytes): Delete previous_octets local and replace with
+ a test of the max_reloc_offset_into_insn field of the
+ bfd_arch_info structure. If a reloc is a potential match for the
+ next insn, then perform a dummy disassembly in order to calculate
+ its real length.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 33d5d72d3d..2303fe4abf 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -1836,6 +1836,12 @@ objdump_sprintf (SFILE *f, const char *format, ...)
#define DEFAULT_SKIP_ZEROES_AT_END 3
+static int
+null_print (const void * stream ATTRIBUTE_UNUSED, const char * format ATTRIBUTE_UNUSED, ...)
+{
+ return 1;
+}
+
/* Disassemble some data in memory between given values. */
static void
@@ -1903,10 +1909,7 @@ disassemble_bytes (struct disassemble_info * inf,
{
bfd_vma z;
bfd_boolean need_nl = FALSE;
- int previous_octets;
- /* Remember the length of the previous instruction. */
- previous_octets = octets;
octets = 0;
/* Make sure we don't use relocs from previous instructions. */
@@ -1990,26 +1993,43 @@ disassemble_bytes (struct disassemble_info * inf,
&& *relppp < relppend)
{
bfd_signed_vma distance_to_rel;
+ int insn_size = 0;
distance_to_rel = (**relppp)->address
- (rel_offset + addr_offset);
+ if (distance_to_rel > 0
+ && aux->abfd->arch_info->max_reloc_offset_into_insn <= distance_to_rel)
+ {
+ /* This reloc *might* apply to the current insn,
+ starting somewhere inside it. Discover the length
+ of the current insn so that the check below will
+ work. */
+ if (insn_width)
+ insn_size = insn_width;
+ else
+ {
+ /* We find the length by calling the dissassembler
+ function with a dummy print handler. This should
+ work unless the disassembler is not expecting to
+ be called multiple times for the same address.
+
+ This does mean disassembling the instruction
+ twice, but we only do this when there is a high
+ probability that there is a reloc that will
+ affect the instruction. */
+ inf->fprintf_func = (fprintf_ftype) null_print;
+ insn_size = disassemble_fn (section->vma
+ + addr_offset, inf);
+ inf->fprintf_func = (fprintf_ftype) objdump_sprintf;
+ }
+ }
+
/* Check to see if the current reloc is associated with
the instruction that we are about to disassemble. */
if (distance_to_rel == 0
- /* FIXME: This is wrong. We are trying to catch
- relocs that are addressed part way through the
- current instruction, as might happen with a packed
- VLIW instruction. Unfortunately we do not know the
- length of the current instruction since we have not
- disassembled it yet. Instead we take a guess based
- upon the length of the previous instruction. The
- proper solution is to have a new target-specific
- disassembler function which just returns the length
- of an instruction at a given address without trying
- to display its disassembly. */
|| (distance_to_rel > 0
- && distance_to_rel < (bfd_signed_vma) (previous_octets/ opb)))
+ && distance_to_rel < (bfd_signed_vma) (insn_size / opb)))
{
inf->flags |= INSN_HAS_RELOC;
aux->reloc = **relppp;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9c484d3bc6..444bd16987 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-10 Nick Clifton <nickc@redhat.com>
+
+ PR 24907
+ * testsuite/gas/arm/pr24907.s: New test.
+ * testsuite/gas/arm/pr24907.d: Expected disassembly.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/gas/testsuite/gas/arm/pr24907.d b/gas/testsuite/gas/arm/pr24907.d
new file mode 100644
index 0000000000..8268d4bdc1
--- /dev/null
+++ b/gas/testsuite/gas/arm/pr24907.d
@@ -0,0 +1,19 @@
+# name: Disassembling variable width insns with relocs (PR 24907)
+# as:
+# objdump: -d
+# This test is only valid on ELF based ports.
+#notarget: *-*-pe *-*-wince *-*-vxworks
+
+.*: +file format .*arm.*
+
+Disassembly of section \.text:
+
+0+000 <foo>:
+ 0: 46c0 nop ; .*
+ 2: f7ff fffe bl 0 <log_func>
+ 6: e002 b\.n e <func\+0x2>
+ 8: f7ff fffe bl c <func>
+
+0+000c <func>:
+ c: 46c0 nop ; .*
+ e: 46c0 nop ; .*
diff --git a/gas/testsuite/gas/arm/pr24907.s b/gas/testsuite/gas/arm/pr24907.s
new file mode 100644
index 0000000000..ee8114e574
--- /dev/null
+++ b/gas/testsuite/gas/arm/pr24907.s
@@ -0,0 +1,16 @@
+ .syntax unified
+ .text
+ .thumb
+
+.global foo
+foo:
+ nop
+ bl log_func
+ b.n .L1
+ bl func
+
+.global func
+func:
+ nop
+.L1:
+ nop
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change map_matching_symbols to take a symbol_found_callback_ftype
@ 2019-09-10 15:28 gdb-buildbot
2019-09-10 15:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 199b4314efbd419d6957e366e13a14cd87cea5e4 ***
commit 199b4314efbd419d6957e366e13a14cd87cea5e4
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 10:45:34 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Change map_matching_symbols to take a symbol_found_callback_ftype
This changes map_matching_symbols to take a
symbol_found_callback_ftype, rather than separate callback and data
parameters. This enables a future patch to clean up some existing
code so that it can more readily be shared.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (aux_add_nonlocal_symbols): Change type.
(add_nonlocal_symbols): Update.
* dwarf2read.c (dw2_map_matching_symbols): Change type.
* psymtab.c (map_block, psym_map_matching_symbols): Change type.
* symfile-debug.c (debug_qf_map_matching_symbols): Change type.
* symfile.h (struct quick_symbol_functions) <map_matching_symbols>:
Change type of "callback". Remove "data".
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9ad7227e0b..1865eeddbb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * ada-lang.c (aux_add_nonlocal_symbols): Change type.
+ (add_nonlocal_symbols): Update.
+ * dwarf2read.c (dw2_map_matching_symbols): Change type.
+ * psymtab.c (map_block, psym_map_matching_symbols): Change type.
+ * symfile-debug.c (debug_qf_map_matching_symbols): Change type.
+ * symfile.h (struct quick_symbol_functions) <map_matching_symbols>:
+ Change type of "callback". Remove "data".
+
2019-09-09 Ali Tamur <tamur@google.com>
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 347c67f95c..d677acdb60 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5331,8 +5331,8 @@ struct match_data
int found_sym;
};
-/* A callback for add_nonlocal_symbols that adds SYM, found in BLOCK,
- to a list of symbols. DATA0 is a pointer to a struct match_data *
+/* A callback for add_nonlocal_symbols that adds symbol, found in BSYM,
+ to a list of symbols. DATA is a pointer to a struct match_data *
containing the obstack that collects the symbol list, the file that SYM
must come from, a flag indicating whether a non-argument symbol has
been found in the current block, and the last argument symbol
@@ -5340,12 +5340,13 @@ struct match_data
marking the end of a block, the argument symbol is added if no
other has been found. */
-static int
-aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
- void *data0)
+static bool
+aux_add_nonlocal_symbols (struct block_symbol *bsym,
+ struct match_data *data)
{
- struct match_data *data = (struct match_data *) data0;
-
+ const struct block *block = bsym->block;
+ struct symbol *sym = bsym->symbol;
+
if (sym == NULL)
{
if (!data->found_sym && data->arg_sym != NULL)
@@ -5358,7 +5359,7 @@ aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
else
{
if (SYMBOL_CLASS (sym) == LOC_UNRESOLVED)
- return 0;
+ return true;
else if (SYMBOL_IS_ARGUMENT (sym))
data->arg_sym = sym;
else
@@ -5369,7 +5370,7 @@ aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
block);
}
}
- return 0;
+ return true;
}
/* Helper for add_nonlocal_symbols. Find symbols in DOMAIN which are
@@ -5540,20 +5541,23 @@ add_nonlocal_symbols (struct obstack *obstackp,
bool is_wild_match = lookup_name.ada ().wild_match_p ();
+ auto callback = [&] (struct block_symbol *bsym)
+ {
+ return aux_add_nonlocal_symbols (bsym, &data);
+ };
+
for (objfile *objfile : current_program_space->objfiles ())
{
data.objfile = objfile;
if (is_wild_match)
objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
- domain, global,
- aux_add_nonlocal_symbols, &data,
+ domain, global, callback,
symbol_name_match_type::WILD,
NULL);
else
objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
- domain, global,
- aux_add_nonlocal_symbols, &data,
+ domain, global, callback,
symbol_name_match_type::FULL,
compare_names);
@@ -5577,9 +5581,7 @@ add_nonlocal_symbols (struct obstack *obstackp,
{
data.objfile = objfile;
objfile->sf->qf->map_matching_symbols (objfile, name1.c_str (),
- domain, global,
- aux_add_nonlocal_symbols,
- &data,
+ domain, global, callback,
symbol_name_match_type::FULL,
compare_names);
}
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a75941867a..cccc493b29 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4184,13 +4184,13 @@ dw2_expand_symtabs_with_fullname (struct objfile *objfile,
}
static void
-dw2_map_matching_symbols (struct objfile *objfile,
- const char * name, domain_enum domain,
- int global,
- int (*callback) (const struct block *,
- struct symbol *, void *),
- void *data, symbol_name_match_type match,
- symbol_compare_ftype *ordered_compare)
+dw2_map_matching_symbols
+ (struct objfile *objfile,
+ const char * name, domain_enum domain,
+ int global,
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_name_match_type match,
+ symbol_compare_ftype *ordered_compare)
{
/* Currently unimplemented; used for Ada. The function can be called if the
current language is Ada for a non-Ada objfile using GNU index. As Ada
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 70d04f8605..cd577bc4c5 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1170,14 +1170,14 @@ psymtab_to_fullname (struct partial_symtab *ps)
/* For all symbols, s, in BLOCK that are in DOMAIN and match NAME
according to the function MATCH, call CALLBACK(BLOCK, s, DATA).
- BLOCK is assumed to come from OBJFILE. Returns 1 iff CALLBACK
- ever returns non-zero, and otherwise returns 0. */
+ BLOCK is assumed to come from OBJFILE. Returns false iff CALLBACK
+ ever returns false, and otherwise returns true. */
-static int
+static bool
map_block (const char *name, domain_enum domain, struct objfile *objfile,
const struct block *block,
- int (*callback) (const struct block *, struct symbol *, void *),
- void *data, symbol_name_match_type match)
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_name_match_type match)
{
struct block_iterator iter;
struct symbol *sym;
@@ -1191,26 +1191,26 @@ map_block (const char *name, domain_enum domain, struct objfile *objfile,
if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
SYMBOL_DOMAIN (sym), domain))
{
- if (callback (block, sym, data))
- return 1;
+ struct block_symbol block_sym = {sym, block};
+ if (!callback (&block_sym))
+ return false;
}
}
- return 0;
+ return true;
}
/* Psymtab version of map_matching_symbols. See its definition in
the definition of quick_symbol_functions in symfile.h. */
static void
-psym_map_matching_symbols (struct objfile *objfile,
- const char *name, domain_enum domain,
- int global,
- int (*callback) (const struct block *,
- struct symbol *, void *),
- void *data,
- symbol_name_match_type match,
- symbol_compare_ftype *ordered_compare)
+psym_map_matching_symbols
+ (struct objfile *objfile,
+ const char *name, domain_enum domain,
+ int global,
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_name_match_type match,
+ symbol_compare_ftype *ordered_compare)
{
const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
@@ -1227,10 +1227,10 @@ psym_map_matching_symbols (struct objfile *objfile,
if (cust == NULL)
continue;
block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
- if (map_block (name, domain, objfile, block,
- callback, data, match))
+ if (!map_block (name, domain, objfile, block, callback, match))
return;
- if (callback (block, NULL, data))
+ struct block_symbol block_sym = {nullptr, block};
+ if (!callback (&block_sym))
return;
}
}
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index c5b565fc51..d36c192ccc 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -228,30 +228,27 @@ debug_qf_expand_symtabs_with_fullname (struct objfile *objfile,
}
static void
-debug_qf_map_matching_symbols (struct objfile *objfile,
- const char *name, domain_enum domain,
- int global,
- int (*callback) (const struct block *,
- struct symbol *, void *),
- void *data,
- symbol_name_match_type match,
- symbol_compare_ftype *ordered_compare)
+debug_qf_map_matching_symbols
+ (struct objfile *objfile,
+ const char *name, domain_enum domain,
+ int global,
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_name_match_type match,
+ symbol_compare_ftype *ordered_compare)
{
const struct debug_sym_fns_data *debug_data
= symfile_debug_objfile_data_key.get (objfile);
fprintf_filtered (gdb_stdlog,
- "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s, %s, %s)\n",
+ "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s)\n",
objfile_debug_name (objfile), name,
domain_name (domain), global,
- host_address_to_string (callback),
- host_address_to_string (data),
plongest ((LONGEST) match),
host_address_to_string (ordered_compare));
debug_data->real_sf->qf->map_matching_symbols (objfile, name,
domain, global,
- callback, data,
+ callback,
match,
ordered_compare);
}
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 5e4d2f5b53..cf9488881a 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -212,7 +212,7 @@ struct quick_symbol_functions
and for which MATCH (symbol name, NAME) == 0, passing each to
CALLBACK, reading in partial symbol tables as needed. Look
through global symbols if GLOBAL and otherwise static symbols.
- Passes NAME, NAMESPACE, and DATA to CALLBACK with each symbol
+ Passes NAME and NAMESPACE to CALLBACK with each symbol
found. After each block is processed, passes NULL to CALLBACK.
MATCH must be weaker than strcmp_iw_ordered in the sense that
strcmp_iw_ordered(x,y) == 0 --> MATCH(x,y) == 0. ORDERED_COMPARE,
@@ -222,17 +222,16 @@ struct quick_symbol_functions
and
strcmp_iw_ordered(x,y) <= 0 --> ORDERED_COMPARE(x,y) <= 0
(allowing strcmp_iw_ordered(x,y) < 0 while ORDERED_COMPARE(x, y) == 0).
- CALLBACK returns 0 to indicate that the scan should continue, or
- non-zero to indicate that the scan should be terminated. */
-
- void (*map_matching_symbols) (struct objfile *,
- const char *name, domain_enum domain,
- int global,
- int (*callback) (const struct block *,
- struct symbol *, void *),
- void *data,
- symbol_name_match_type match,
- symbol_compare_ftype *ordered_compare);
+ CALLBACK returns true to indicate that the scan should continue, or
+ false to indicate that the scan should be terminated. */
+
+ void (*map_matching_symbols)
+ (struct objfile *,
+ const char *name, domain_enum domain,
+ int global,
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_name_match_type match,
+ symbol_compare_ftype *ordered_compare);
/* Expand all symbol tables in OBJFILE matching some criteria.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-10 15:28 [binutils-gdb] Change map_matching_symbols to take a symbol_found_callback_ftype gdb-buildbot
@ 2019-09-10 15:33 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:33 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/31
Author:
Tom Tromey <tromey@adacore.com>
Commit tested:
199b4314efbd419d6957e366e13a14cd87cea5e4
Subject of commit:
Change map_matching_symbols to take a symbol_found_callback_ftype
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/19/199b4314efbd419d6957e366e13a14cd87cea5e4/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.tui/resize.exp: source box after resize
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/19/199b4314efbd419d6957e366e13a14cd87cea5e4//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/19/199b4314efbd419d6957e366e13a14cd87cea5e4//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change iterate_over_symbols to return bool
@ 2019-09-10 15:39 gdb-buildbot
2019-09-10 15:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6969f124b987494df069b032e2e0f36485d3d8bb ***
commit 6969f124b987494df069b032e2e0f36485d3d8bb
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 10:47:21 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Change iterate_over_symbols to return bool
This changes iterate_over_symbols to return a bool. This allows it to
be reused in another context in a subsequent patch.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_iterate_over_symbols): Return bool.
* language.h (struct language_defn) <la_iterate_over_symbols>:
Return bool.
* symtab.c (iterate_over_symbols): Return bool.
* symtab.h (iterate_over_symbols): Return bool.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1865eeddbb..e2ebafe714 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * ada-lang.c (ada_iterate_over_symbols): Return bool.
+ * language.h (struct language_defn) <la_iterate_over_symbols>:
+ Return bool.
+ * symtab.c (iterate_over_symbols): Return bool.
+ * symtab.h (iterate_over_symbols): Return bool.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (aux_add_nonlocal_symbols): Change type.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index d677acdb60..21d40c7aad 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5740,7 +5740,7 @@ ada_lookup_symbol_list (const char *name, const struct block *block,
/* Implementation of the la_iterate_over_symbols method. */
-static void
+static bool
ada_iterate_over_symbols
(const struct block *block, const lookup_name_info &name,
domain_enum domain,
@@ -5754,8 +5754,10 @@ ada_iterate_over_symbols
for (i = 0; i < ndefs; ++i)
{
if (!callback (&results[i]))
- break;
+ return false;
}
+
+ return true;
}
/* The result is as for ada_lookup_symbol_list with FULL_SEARCH set
diff --git a/gdb/language.h b/gdb/language.h
index 2a100b0491..0088e5de2d 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -407,7 +407,7 @@ struct language_defn
This field may not be NULL. If the language does not need any
special processing here, 'iterate_over_symbols' should be
used as the definition. */
- void (*la_iterate_over_symbols)
+ bool (*la_iterate_over_symbols)
(const struct block *block, const lookup_name_info &name,
domain_enum domain,
gdb::function_view<symbol_found_callback_ftype> callback);
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 88e34de05b..5f184454bd 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2822,15 +2822,9 @@ basic_lookup_transparent_type (const char *name)
return (struct type *) 0;
}
-/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
-
- For each symbol that matches, CALLBACK is called. The symbol is
- passed to the callback.
-
- If CALLBACK returns false, the iteration ends. Otherwise, the
- search continues. */
+/* See symtab.h. */
-void
+bool
iterate_over_symbols (const struct block *block,
const lookup_name_info &name,
const domain_enum domain,
@@ -2847,9 +2841,10 @@ iterate_over_symbols (const struct block *block,
struct block_symbol block_sym = {sym, block};
if (!callback (&block_sym))
- return;
+ return false;
}
}
+ return true;
}
/* Find the compunit symtab associated with PC and SECTION.
diff --git a/gdb/symtab.h b/gdb/symtab.h
index f38e544cdb..49feea62e2 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2092,7 +2092,16 @@ std::vector<CORE_ADDR> find_pcs_for_symtab_line
typedef bool (symbol_found_callback_ftype) (struct block_symbol *bsym);
-void iterate_over_symbols (const struct block *block,
+/* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
+
+ For each symbol that matches, CALLBACK is called. The symbol is
+ passed to the callback.
+
+ If CALLBACK returns false, the iteration ends and this function
+ returns false. Otherwise, the search continues, and the function
+ eventually returns true. */
+
+bool iterate_over_symbols (const struct block *block,
const lookup_name_info &name,
const domain_enum domain,
gdb::function_view<symbol_found_callback_ftype> callback);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify psym_map_matching_symbols
@ 2019-09-10 15:52 gdb-buildbot
2019-09-10 15:52 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d ***
commit 6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 11:00:39 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Simplify psym_map_matching_symbols
This introduces a new helper function,
iterate_over_symbols_terminated, and changes psym_map_matching_symbols
to use it. A subsequent patch will introduce a new user of this
function in the DWARF reader.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* psymtab.c (map_block): Remove.
(psym_map_matching_symbols): Use iterate_over_symbols_terminated.
* symtab.c (iterate_over_symbols_terminated): New function.
* symtab.c (iterate_over_symbols_terminated): Declare.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e2ebafe714..129aaad7d2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * psymtab.c (map_block): Remove.
+ (psym_map_matching_symbols): Use iterate_over_symbols_terminated.
+ * symtab.c (iterate_over_symbols_terminated): New function.
+ * symtab.c (iterate_over_symbols_terminated): Declare.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_iterate_over_symbols): Return bool.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index cd577bc4c5..81138bbe90 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1168,38 +1168,6 @@ psymtab_to_fullname (struct partial_symtab *ps)
return ps->fullname;
}
-/* For all symbols, s, in BLOCK that are in DOMAIN and match NAME
- according to the function MATCH, call CALLBACK(BLOCK, s, DATA).
- BLOCK is assumed to come from OBJFILE. Returns false iff CALLBACK
- ever returns false, and otherwise returns true. */
-
-static bool
-map_block (const char *name, domain_enum domain, struct objfile *objfile,
- const struct block *block,
- gdb::function_view<symbol_found_callback_ftype> callback,
- symbol_name_match_type match)
-{
- struct block_iterator iter;
- struct symbol *sym;
-
- lookup_name_info lookup_name (name, match);
-
- for (sym = block_iter_match_first (block, lookup_name, &iter);
- sym != NULL;
- sym = block_iter_match_next (lookup_name, &iter))
- {
- if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
- SYMBOL_DOMAIN (sym), domain))
- {
- struct block_symbol block_sym = {sym, block};
- if (!callback (&block_sym))
- return false;
- }
- }
-
- return true;
-}
-
/* Psymtab version of map_matching_symbols. See its definition in
the definition of quick_symbol_functions in symfile.h. */
@@ -1214,6 +1182,8 @@ psym_map_matching_symbols
{
const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
+ lookup_name_info lookup_name (name, match);
+
for (partial_symtab *ps : require_partial_symbols (objfile, 1))
{
QUIT;
@@ -1227,10 +1197,8 @@ psym_map_matching_symbols
if (cust == NULL)
continue;
block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
- if (!map_block (name, domain, objfile, block, callback, match))
- return;
- struct block_symbol block_sym = {nullptr, block};
- if (!callback (&block_sym))
+ if (!iterate_over_symbols_terminated (block, lookup_name,
+ domain, callback))
return;
}
}
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 5f184454bd..e1bf3692a5 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2847,6 +2847,21 @@ iterate_over_symbols (const struct block *block,
return true;
}
+/* See symtab.h. */
+
+bool
+iterate_over_symbols_terminated
+ (const struct block *block,
+ const lookup_name_info &name,
+ const domain_enum domain,
+ gdb::function_view<symbol_found_callback_ftype> callback)
+{
+ if (!iterate_over_symbols (block, name, domain, callback))
+ return false;
+ struct block_symbol block_sym = {nullptr, block};
+ return callback (&block_sym);
+}
+
/* Find the compunit symtab associated with PC and SECTION.
This will read in debug info as necessary. */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 49feea62e2..4fb00cba9f 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2106,6 +2106,16 @@ bool iterate_over_symbols (const struct block *block,
const domain_enum domain,
gdb::function_view<symbol_found_callback_ftype> callback);
+/* Like iterate_over_symbols, but if all calls to CALLBACK return
+ true, then calls CALLBACK one additional time with a block_symbol
+ that has a valid block but a NULL symbol. */
+
+bool iterate_over_symbols_terminated
+ (const struct block *block,
+ const lookup_name_info &name,
+ const domain_enum domain,
+ gdb::function_view<symbol_found_callback_ftype> callback);
+
/* Storage type used by demangle_for_lookup. demangle_for_lookup
either returns a const char * pointer that points to either of the
fields of this type, or a pointer to the input NAME. This is done
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-10 15:52 [binutils-gdb] Simplify psym_map_matching_symbols gdb-buildbot
@ 2019-09-10 15:52 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 15:52 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/33
Author:
Tom Tromey <tromey@adacore.com>
Commit tested:
6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d
Subject of commit:
Simplify psym_map_matching_symbols
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/6a/6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/6a/6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/6a/6a3dbf1bc620ae068c84074b2f72e11c24dc1e6d//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change map_matching_symbols to take a lookup_name_info
@ 2019-09-10 16:09 gdb-buildbot
2019-09-10 16:11 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b054970d54e141e5d2c824223772685742af2c2a ***
commit b054970d54e141e5d2c824223772685742af2c2a
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Jul 12 13:34:52 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Change map_matching_symbols to take a lookup_name_info
This patch further simplifies the map_matching_symbols callback, by
having it take a lookup_name_info rather than a plain string.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (add_nonlocal_symbols): Combine calls to
map_matching_symbols. Update.
* dwarf2read.c (dw2_map_matching_symbols): Update.
* psymtab.c (match_partial_symbol): Change type; update.
(psym_map_matching_symbols): Likewise.
* symfile-debug.c (debug_qf_map_matching_symbols): Change
type; update.
* symfile.h (struct quick_symbol_functions)
<map_matching_symbols>: Change "name" to be a lookup_name_info.
Remove "match".
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 129aaad7d2..e54629c994 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * ada-lang.c (add_nonlocal_symbols): Combine calls to
+ map_matching_symbols. Update.
+ * dwarf2read.c (dw2_map_matching_symbols): Update.
+ * psymtab.c (match_partial_symbol): Change type; update.
+ (psym_map_matching_symbols): Likewise.
+ * symfile-debug.c (debug_qf_map_matching_symbols): Change
+ type; update.
+ * symfile.h (struct quick_symbol_functions)
+ <map_matching_symbols>: Change "name" to be a lookup_name_info.
+ Remove "match".
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* psymtab.c (map_block): Remove.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 21d40c7aad..8cdb62bde0 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5550,16 +5550,10 @@ add_nonlocal_symbols (struct obstack *obstackp,
{
data.objfile = objfile;
- if (is_wild_match)
- objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
- domain, global, callback,
- symbol_name_match_type::WILD,
- NULL);
- else
- objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
- domain, global, callback,
- symbol_name_match_type::FULL,
- compare_names);
+ objfile->sf->qf->map_matching_symbols (objfile, lookup_name,
+ domain, global, callback,
+ (is_wild_match
+ ? NULL : compare_names));
for (compunit_symtab *cu : objfile->compunits ())
{
@@ -5575,14 +5569,14 @@ add_nonlocal_symbols (struct obstack *obstackp,
if (num_defns_collected (obstackp) == 0 && global && !is_wild_match)
{
const char *name = ada_lookup_name (lookup_name);
- std::string name1 = std::string ("<_ada_") + name + '>';
+ lookup_name_info name1 (std::string ("<_ada_") + name + '>',
+ symbol_name_match_type::FULL);
for (objfile *objfile : current_program_space->objfiles ())
{
data.objfile = objfile;
- objfile->sf->qf->map_matching_symbols (objfile, name1.c_str (),
+ objfile->sf->qf->map_matching_symbols (objfile, name1,
domain, global, callback,
- symbol_name_match_type::FULL,
compare_names);
}
}
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index cccc493b29..d57684be90 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4186,10 +4186,9 @@ dw2_expand_symtabs_with_fullname (struct objfile *objfile,
static void
dw2_map_matching_symbols
(struct objfile *objfile,
- const char * name, domain_enum domain,
+ const lookup_name_info &name, domain_enum domain,
int global,
gdb::function_view<symbol_found_callback_ftype> callback,
- symbol_name_match_type match,
symbol_compare_ftype *ordered_compare)
{
/* Currently unimplemented; used for Ada. The function can be called if the
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 81138bbe90..1f5f492d39 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -37,13 +37,6 @@
#include <algorithm>
#include <set>
-static struct partial_symbol *match_partial_symbol (struct objfile *,
- struct partial_symtab *,
- int,
- const char *, domain_enum,
- symbol_name_match_type,
- symbol_compare_ftype *);
-
static struct partial_symbol *lookup_partial_symbol (struct objfile *,
struct partial_symtab *,
const char *, int,
@@ -545,8 +538,7 @@ psymbol_name_matches (partial_symbol *psym,
static struct partial_symbol *
match_partial_symbol (struct objfile *objfile,
struct partial_symtab *pst, int global,
- const char *name, domain_enum domain,
- symbol_name_match_type match_type,
+ const lookup_name_info &name, domain_enum domain,
symbol_compare_ftype *ordered_compare)
{
struct partial_symbol **start, **psym;
@@ -557,8 +549,6 @@ match_partial_symbol (struct objfile *objfile,
if (length == 0)
return NULL;
- lookup_name_info lookup_name (name, match_type);
-
start = (global ?
&objfile->partial_symtabs->global_psymbols[pst->globals_offset] :
&objfile->partial_symtabs->static_psymbols[pst->statics_offset]);
@@ -583,7 +573,7 @@ match_partial_symbol (struct objfile *objfile,
enum language lang = (*center)->ginfo.language;
const char *lang_ln
- = lookup_name.language_lookup_name (lang).c_str ();
+ = name.language_lookup_name (lang).c_str ();
if (ordered_compare (symbol_search_name (&(*center)->ginfo),
lang_ln) >= 0)
@@ -594,7 +584,7 @@ match_partial_symbol (struct objfile *objfile,
gdb_assert (top == bottom);
while (top <= real_top
- && psymbol_name_matches (*top, lookup_name))
+ && psymbol_name_matches (*top, name))
{
if (symbol_matches_domain ((*top)->ginfo.language,
(*top)->domain, domain))
@@ -612,7 +602,7 @@ match_partial_symbol (struct objfile *objfile,
{
if (symbol_matches_domain ((*psym)->ginfo.language,
(*psym)->domain, domain)
- && psymbol_name_matches (*psym, lookup_name))
+ && psymbol_name_matches (*psym, name))
return *psym;
}
}
@@ -1174,21 +1164,18 @@ psymtab_to_fullname (struct partial_symtab *ps)
static void
psym_map_matching_symbols
(struct objfile *objfile,
- const char *name, domain_enum domain,
+ const lookup_name_info &name, domain_enum domain,
int global,
gdb::function_view<symbol_found_callback_ftype> callback,
- symbol_name_match_type match,
symbol_compare_ftype *ordered_compare)
{
const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
- lookup_name_info lookup_name (name, match);
-
for (partial_symtab *ps : require_partial_symbols (objfile, 1))
{
QUIT;
if (ps->readin
- || match_partial_symbol (objfile, ps, global, name, domain, match,
+ || match_partial_symbol (objfile, ps, global, name, domain,
ordered_compare))
{
struct compunit_symtab *cust = psymtab_to_symtab (objfile, ps);
@@ -1197,7 +1184,7 @@ psym_map_matching_symbols
if (cust == NULL)
continue;
block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
- if (!iterate_over_symbols_terminated (block, lookup_name,
+ if (!iterate_over_symbols_terminated (block, name,
domain, callback))
return;
}
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index d36c192ccc..9a5d0fa0a6 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -230,26 +230,23 @@ debug_qf_expand_symtabs_with_fullname (struct objfile *objfile,
static void
debug_qf_map_matching_symbols
(struct objfile *objfile,
- const char *name, domain_enum domain,
+ const lookup_name_info &name, domain_enum domain,
int global,
gdb::function_view<symbol_found_callback_ftype> callback,
- symbol_name_match_type match,
symbol_compare_ftype *ordered_compare)
{
const struct debug_sym_fns_data *debug_data
= symfile_debug_objfile_data_key.get (objfile);
fprintf_filtered (gdb_stdlog,
- "qf->map_matching_symbols (%s, \"%s\", %s, %d, %s, %s)\n",
- objfile_debug_name (objfile), name,
+ "qf->map_matching_symbols (%s, %s, %d, %s)\n",
+ objfile_debug_name (objfile),
domain_name (domain), global,
- plongest ((LONGEST) match),
host_address_to_string (ordered_compare));
debug_data->real_sf->qf->map_matching_symbols (objfile, name,
domain, global,
callback,
- match,
ordered_compare);
}
diff --git a/gdb/symfile.h b/gdb/symfile.h
index cf9488881a..6fa6db4750 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -227,10 +227,10 @@ struct quick_symbol_functions
void (*map_matching_symbols)
(struct objfile *,
- const char *name, domain_enum domain,
+ const lookup_name_info &lookup_name,
+ domain_enum domain,
int global,
gdb::function_view<symbol_found_callback_ftype> callback,
- symbol_name_match_type match,
symbol_compare_ftype *ordered_compare);
/* Expand all symbol tables in OBJFILE matching some criteria.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix latent bug in .debug_names file-name handling
@ 2019-09-10 16:18 gdb-buildbot
2019-09-10 16:24 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aa3916548076c159ae00a922690694094a37fcd0 ***
commit aa3916548076c159ae00a922690694094a37fcd0
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Thu Jul 18 12:27:16 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Fix latent bug in .debug_names file-name handling
An internal Ada test case showed that the .debug_names code does not
compute the same list of file names as the partial symbol reader. In
particular, the partial symbol reader uses the DW_AT_name of the CU:
/* Allocate a new partial symbol table structure. */
filename = dwarf2_string_attr (comp_unit_die, DW_AT_name, cu);
if (filename == NULL)
filename = "";
pst = create_partial_symtab (per_cu, filename);
This patch changes the .debug_names reader to follow.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (dw2_get_file_names_reader): Add the
CU's file name to the results.
gdb/testsuite/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* gdb.ada/dgopt.exp: New file.
* gdb.ada/dgopt/x.adb: New file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e54629c994..4db1572bc3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * dwarf2read.c (dw2_get_file_names_reader): Add the
+ CU's file name to the results.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* ada-lang.c (add_nonlocal_symbols): Combine calls to
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index d57684be90..2379c9c273 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3692,11 +3692,17 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
file_and_directory fnd = find_file_and_directory (comp_unit_die, cu);
- qfn->num_file_names = lh->file_names.size ();
+ int offset = 0;
+ if (strcmp (fnd.name, "<unknown>") != 0)
+ ++offset;
+
+ qfn->num_file_names = offset + lh->file_names.size ();
qfn->file_names =
- XOBNEWVEC (&objfile->objfile_obstack, const char *, lh->file_names.size ());
+ XOBNEWVEC (&objfile->objfile_obstack, const char *, qfn->num_file_names);
+ if (offset != 0)
+ qfn->file_names[0] = xstrdup (fnd.name);
for (i = 0; i < lh->file_names.size (); ++i)
- qfn->file_names[i] = file_full_name (i + 1, lh.get (), fnd.comp_dir);
+ qfn->file_names[i + offset] = file_full_name (i + 1, lh.get (), fnd.comp_dir);
qfn->real_names = NULL;
lh_cu->v.quick->file_names = qfn;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6cee4787e0..9df3563c47 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * gdb.ada/dgopt.exp: New file.
+ * gdb.ada/dgopt/x.adb: New file.
+
2019-09-08 Tom Tromey <tom@tromey.com>
* gdb.tui/resize.exp: Remove setup_xfail.
diff --git a/gdb/testsuite/gdb.ada/dgopt.exp b/gdb/testsuite/gdb.ada/dgopt.exp
new file mode 100644
index 0000000000..db69121b40
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dgopt.exp
@@ -0,0 +1,34 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test case using the -gnatDG option.
+
+load_lib "ada.exp"
+
+standard_ada_testfile x
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
+ {debug additional_flags=-gnatDG}] != "" } {
+ return -1
+}
+
+clean_restart ${testfile}
+
+# The bug occurs with .debug_names, but here we don't check whether
+# the appropriate target board is in use. The problem was that the
+# .adb file did not end up in the file table, but did show up in the
+# DWARF, which the psymtab reader handled, but which the .debug_names
+# reader did not.
+gdb_test "list x.adb:16, 16" "16.*procedure X is"
diff --git a/gdb/testsuite/gdb.ada/dgopt/x.adb b/gdb/testsuite/gdb.ada/dgopt/x.adb
new file mode 100644
index 0000000000..039e99d393
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dgopt/x.adb
@@ -0,0 +1,19 @@
+-- Copyright 2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+procedure X is
+begin
+ null;
+end X;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add Ada support for .debug_names
@ 2019-09-10 16:33 gdb-buildbot
2019-09-10 16:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3b00ef10a2a4750a86a04bb66eda3bf33d298be1 ***
commit 3b00ef10a2a4750a86a04bb66eda3bf33d298be1
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Mon Jul 8 06:23:16 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Add Ada support for .debug_names
This patch adds support for Ada to .debug_names. I opted to leave
.gdb_index alone, because in my view it is a defunct format.
gdb/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* dwarf-index-write.c (write_psymbols): Extend error message.
(debug_names::insert): Add Ada code.
(debug_names::write_psymbols): Remove Ada check.
(debug_names) <m_string_obstack>: New member.
* dwarf2read.c (gdb_index_symbol_name_matcher): Remove.
(gdb_index_symbol_name_matcher::matches): Remove.
(mapped_index_base::find_name_components_bounds): Add "lang"
parameter.
(mapped_index_base::build_name_components): Also split names
according to Ada syntax.
(dw2_expand_symtabs_matching_symbol): Loop over languages. Change
type of "match_callback".
(check_match, check_find_bounds_finds)
(dw2_expand_symtabs_matching): Update.
(dw2_debug_names_iterator): Add new constructor.
(dw2_debug_names_map_matching_symbols): New function.
(dw2_debug_names_expand_symtabs_matching): Update.
(dwarf2_debug_names_functions): Use
dw2_debug_names_map_matching_symbols.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4db1572bc3..dace64e6be 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,25 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * dwarf-index-write.c (write_psymbols): Extend error message.
+ (debug_names::insert): Add Ada code.
+ (debug_names::write_psymbols): Remove Ada check.
+ (debug_names) <m_string_obstack>: New member.
+ * dwarf2read.c (gdb_index_symbol_name_matcher): Remove.
+ (gdb_index_symbol_name_matcher::matches): Remove.
+ (mapped_index_base::find_name_components_bounds): Add "lang"
+ parameter.
+ (mapped_index_base::build_name_components): Also split names
+ according to Ada syntax.
+ (dw2_expand_symtabs_matching_symbol): Loop over languages. Change
+ type of "match_callback".
+ (check_match, check_find_bounds_finds)
+ (dw2_expand_symtabs_matching): Update.
+ (dw2_debug_names_iterator): Add new constructor.
+ (dw2_debug_names_map_matching_symbols): New function.
+ (dw2_debug_names_expand_symtabs_matching): Update.
+ (dwarf2_debug_names_functions): Use
+ dw2_debug_names_map_matching_symbols.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (dw2_get_file_names_reader): Add the
diff --git a/gdb/dwarf-index-write.c b/gdb/dwarf-index-write.c
index 7d59a1ba16..153c6792f0 100644
--- a/gdb/dwarf-index-write.c
+++ b/gdb/dwarf-index-write.c
@@ -34,6 +34,7 @@
#include "gdbcmd.h"
#include "objfiles.h"
#include "psympriv.h"
+#include "ada-lang.h"
#include <algorithm>
#include <cmath>
@@ -541,7 +542,8 @@ write_psymbols (struct mapped_symtab *symtab,
struct partial_symbol *psym = *psymp;
if (psym->ginfo.language == language_ada)
- error (_("Ada is not currently supported by the index"));
+ error (_("Ada is not currently supported by the index; "
+ "use the DWARF 5 index instead"));
/* Only add a given psymbol once. */
if (psyms_seen.insert (psym).second)
@@ -684,7 +686,43 @@ public:
const int dwarf_tag = psymbol_tag (psym);
if (dwarf_tag == 0)
return;
- const char *const name = symbol_search_name (&psym->ginfo);
+ const char *name = symbol_search_name (&psym->ginfo);
+
+ if (psym->ginfo.language == language_ada)
+ {
+ /* We want to ensure that the Ada main function's name appears
+ verbatim in the index. However, this name will be of the
+ form "_ada_mumble", and will be rewritten by ada_decode.
+ So, recognize it specially here and add it to the index by
+ hand. */
+ if (strcmp (main_name (), name) == 0)
+ {
+ const auto insertpair
+ = m_name_to_value_set.emplace (c_str_view (name),
+ std::set<symbol_value> ());
+ std::set<symbol_value> &value_set = insertpair.first->second;
+ value_set.emplace (symbol_value (dwarf_tag, cu_index, is_static,
+ kind));
+ }
+
+ /* In order for the index to work when read back into gdb, it
+ has to supply a funny form of the name: it should be the
+ encoded name, with any suffixes stripped. Using the
+ ordinary encoded name will not work properly with the
+ searching logic in find_name_components_bounds; nor will
+ using the decoded name. Furthermore, an Ada "verbatim"
+ name (of the form "<MumBle>") must be entered without the
+ angle brackets. Note that the current index is unusual,
+ see PR symtab/24820 for details. */
+ const char *decoded = ada_decode (name);
+ if (decoded[0] == '<')
+ name = (char *) obstack_copy0 (&m_string_obstack,
+ decoded + 1,
+ strlen (decoded + 1) - 1);
+ else
+ name = obstack_strdup (&m_string_obstack, ada_encode (decoded));
+ }
+
const auto insertpair
= m_name_to_value_set.emplace (c_str_view (name),
std::set<symbol_value> ());
@@ -1181,9 +1219,6 @@ private:
{
struct partial_symbol *psym = *psymp;
- if (psym->ginfo.language == language_ada)
- error (_("Ada is not currently supported by the index"));
-
/* Only add a given psymbol once. */
if (psyms_seen.insert (psym).second)
insert (psym, cu_index, is_static, kind);
@@ -1244,6 +1279,9 @@ private:
/* .debug_names entry pool. */
data_buf m_entry_pool;
+
+ /* Temporary storage for Ada names. */
+ auto_obstack m_string_obstack;
};
/* Return iff any of the needed offsets does not fit into 32-bit
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 2379c9c273..c94fc245fd 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -179,7 +179,8 @@ struct mapped_index_base
vector. */
std::pair<std::vector<name_component>::const_iterator,
std::vector<name_component>::const_iterator>
- find_name_components_bounds (const lookup_name_info &ln_no_params) const;
+ find_name_components_bounds (const lookup_name_info &ln_no_params,
+ enum language lang) const;
/* Prevent deleting/destroying via a base class pointer. */
protected:
@@ -4202,93 +4203,6 @@ dw2_map_matching_symbols
does not look for non-Ada symbols this function should just return. */
}
-/* Symbol name matcher for .gdb_index names.
-
- Symbol names in .gdb_index have a few particularities:
-
- - There's no indication of which is the language of each symbol.
-
- Since each language has its own symbol name matching algorithm,
- and we don't know which language is the right one, we must match
- each symbol against all languages. This would be a potential
- performance problem if it were not mitigated by the
- mapped_index::name_components lookup table, which significantly
- reduces the number of times we need to call into this matcher,
- making it a non-issue.
-
- - Symbol names in the index have no overload (parameter)
- information. I.e., in C++, "foo(int)" and "foo(long)" both
- appear as "foo" in the index, for example.
-
- This means that the lookup names passed to the symbol name
- matcher functions must have no parameter information either
- because (e.g.) symbol search name "foo" does not match
- lookup-name "foo(int)" [while swapping search name for lookup
- name would match].
-*/
-class gdb_index_symbol_name_matcher
-{
-public:
- /* Prepares the vector of comparison functions for LOOKUP_NAME. */
- gdb_index_symbol_name_matcher (const lookup_name_info &lookup_name);
-
- /* Walk all the matcher routines and match SYMBOL_NAME against them.
- Returns true if any matcher matches. */
- bool matches (const char *symbol_name);
-
-private:
- /* A reference to the lookup name we're matching against. */
- const lookup_name_info &m_lookup_name;
-
- /* A vector holding all the different symbol name matchers, for all
- languages. */
- std::vector<symbol_name_matcher_ftype *> m_symbol_name_matcher_funcs;
-};
-
-gdb_index_symbol_name_matcher::gdb_index_symbol_name_matcher
- (const lookup_name_info &lookup_name)
- : m_lookup_name (lookup_name)
-{
- /* Prepare the vector of comparison functions upfront, to avoid
- doing the same work for each symbol. Care is taken to avoid
- matching with the same matcher more than once if/when multiple
- languages use the same matcher function. */
- auto &matchers = m_symbol_name_matcher_funcs;
- matchers.reserve (nr_languages);
-
- matchers.push_back (default_symbol_name_matcher);
-
- for (int i = 0; i < nr_languages; i++)
- {
- const language_defn *lang = language_def ((enum language) i);
- symbol_name_matcher_ftype *name_matcher
- = get_symbol_name_matcher (lang, m_lookup_name);
-
- /* Don't insert the same comparison routine more than once.
- Note that we do this linear walk instead of a seemingly
- cheaper sorted insert, or use a std::set or something like
- that, because relative order of function addresses is not
- stable. This is not a problem in practice because the number
- of supported languages is low, and the cost here is tiny
- compared to the number of searches we'll do afterwards using
- this object. */
- if (name_matcher != default_symbol_name_matcher
- && (std::find (matchers.begin (), matchers.end (), name_matcher)
- == matchers.end ()))
- matchers.push_back (name_matcher);
- }
-}
-
-bool
-gdb_index_symbol_name_matcher::matches (const char *symbol_name)
-{
- for (auto matches_name : m_symbol_name_matcher_funcs)
- if (matches_name (symbol_name, m_lookup_name, NULL))
- return true;
-
- return false;
-}
-
/* Starting from a search name, return the string that finds the upper
bound of all strings that start with SEARCH_NAME in a sorted name
list. Returns the empty string to indicate that the upper bound is
@@ -4367,13 +4281,13 @@ make_sort_after_prefix_name (const char *search_name)
std::pair<std::vector<name_component>::const_iterator,
std::vector<name_component>::const_iterator>
mapped_index_base::find_name_components_bounds
- (const lookup_name_info &lookup_name_without_params) const
+ (const lookup_name_info &lookup_name_without_params, language lang) const
{
auto *name_cmp
= this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
- const char *cplus
- = lookup_name_without_params.cplus ().lookup_name ().c_str ();
+ const char *lang_name
+ = lookup_name_without_params.language_lookup_name (lang).c_str ();
/* Comparison function object for lower_bound that matches against a
given symbol name. */
@@ -4401,10 +4315,10 @@ mapped_index_base::find_name_components_bounds
/* Find the lower bound. */
auto lower = [&] ()
{
- if (lookup_name_without_params.completion_mode () && cplus[0] == '\0')
+ if (lookup_name_without_params.completion_mode () && lang_name[0] == '\0')
return begin;
else
- return std::lower_bound (begin, end, cplus, lookup_compare_lower);
+ return std::lower_bound (begin, end, lang_name, lookup_compare_lower);
} ();
/* Find the upper bound. */
@@ -4423,14 +4337,14 @@ mapped_index_base::find_name_components_bounds
We find the upper bound by looking for the insertion
point of "func"-with-last-character-incremented,
i.e. "fund". */
- std::string after = make_sort_after_prefix_name (cplus);
+ std::string after = make_sort_after_prefix_name (lang_name);
if (after.empty ())
return end;
return std::lower_bound (lower, end, after.c_str (),
lookup_compare_lower);
}
else
- return std::upper_bound (lower, end, cplus, lookup_compare_upper);
+ return std::upper_bound (lower, end, lang_name, lookup_compare_upper);
} ();
return {lower, upper};
@@ -4450,11 +4364,7 @@ mapped_index_base::build_name_components ()
/* The code below only knows how to break apart components of C++
symbol names (and other languages that use '::' as
- namespace/module separator). If we add support for wild matching
- to some language that uses some other operator (E.g., Ada, Go and
- D use '.'), then we'll need to try splitting the symbol name
- according to that language too. Note that Ada does support wild
- matching, but doesn't currently support .gdb_index. */
+ namespace/module separator) and Ada symbol names. */
auto count = this->symbol_name_count ();
for (offset_type idx = 0; idx < count; idx++)
{
@@ -4465,16 +4375,33 @@ mapped_index_base::build_name_components ()
/* Add each name component to the name component table. */
unsigned int previous_len = 0;
- for (unsigned int current_len = cp_find_first_component (name);
- name[current_len] != '\0';
- current_len += cp_find_first_component (name + current_len))
+
+ if (strstr (name, "::") != nullptr)
+ {
+ for (unsigned int current_len = cp_find_first_component (name);
+ name[current_len] != '\0';
+ current_len += cp_find_first_component (name + current_len))
+ {
+ gdb_assert (name[current_len] == ':');
+ this->name_components.push_back ({previous_len, idx});
+ /* Skip the '::'. */
+ current_len += 2;
+ previous_len = current_len;
+ }
+ }
+ else
{
- gdb_assert (name[current_len] == ':');
- this->name_components.push_back ({previous_len, idx});
- /* Skip the '::'. */
- current_len += 2;
- previous_len = current_len;
+ /* Handle the Ada encoded (aka mangled) form here. */
+ for (const char *iter = strstr (name, "__");
+ iter != nullptr;
+ iter = strstr (iter, "__"))
+ {
+ this->name_components.push_back ({previous_len, idx});
+ iter += 2;
+ previous_len = iter - name;
+ }
}
+
this->name_components.push_back ({previous_len, idx});
}
@@ -4509,22 +4436,15 @@ dw2_expand_symtabs_matching_symbol
const lookup_name_info &lookup_name_in,
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
enum search_domain kind,
- gdb::function_view<void (offset_type)> match_callback)
+ gdb::function_view<bool (offset_type)> match_callback)
{
lookup_name_info lookup_name_without_params
= lookup_name_in.make_ignore_params ();
- gdb_index_symbol_name_matcher lookup_name_matcher
- (lookup_name_without_params);
/* Build the symbol name component sorted vector, if we haven't
yet. */
index.build_name_components ();
- auto bounds = index.find_name_components_bounds (lookup_name_without_params);
-
- /* Now for each symbol name in range, check to see if we have a name
- match, and if so, call the MATCH_CALLBACK callback. */
-
/* The same symbol may appear more than once in the range though.
E.g., if we're looking for symbols that complete "w", and we have
a symbol named "w1::w2", we'll find the two name components for
@@ -4533,17 +4453,61 @@ dw2_expand_symtabs_matching_symbol
indexes that matched in a temporary vector and ignore
duplicates. */
std::vector<offset_type> matches;
- matches.reserve (std::distance (bounds.first, bounds.second));
- for (; bounds.first != bounds.second; ++bounds.first)
+ struct name_and_matcher
+ {
+ symbol_name_matcher_ftype *matcher;
+ const std::string &name;
+
+ bool operator== (const name_and_matcher &other) const
{
- const char *qualified = index.symbol_name_at (bounds.first->idx);
+ return matcher == other.matcher && name == other.name;
+ }
+ };
+
+ /* A vector holding all the different symbol name matchers, for all
+ languages. */
+ std::vector<name_and_matcher> matchers;
+
+ for (int i = 0; i < nr_languages; i++)
+ {
+ enum language lang_e = (enum language) i;
+
+ const language_defn *lang = language_def (lang_e);
+ symbol_name_matcher_ftype *name_matcher
+ = get_symbol_name_matcher (lang, lookup_name_without_params);
+
+ name_and_matcher key {
+ name_matcher,
+ lookup_name_without_params.language_lookup_name (lang_e)
+ };
- if (!lookup_name_matcher.matches (qualified)
- || (symbol_matcher != NULL && !symbol_matcher (qualified)))
+ /* Don't insert the same comparison routine more than once.
+ Note that we do this linear walk. This is not a problem in
+ practice because the number of supported languages is
+ low. */
+ if (std::find (matchers.begin (), matchers.end (), key)
+ != matchers.end ())
continue;
+ matchers.push_back (std::move (key));
+
+ auto bounds
+ = index.find_name_components_bounds (lookup_name_without_params,
+ lang_e);
+
+ /* Now for each symbol name in range, check to see if we have a name
+ match, and if so, call the MATCH_CALLBACK callback. */
+
+ for (; bounds.first != bounds.second; ++bounds.first)
+ {
+ const char *qualified = index.symbol_name_at (bounds.first->idx);
- matches.push_back (bounds.first->idx);
+ if (!name_matcher (qualified, lookup_name_without_params, NULL)
+ || (symbol_matcher != NULL && !symbol_matcher (qualified)))
+ continue;
+
+ matches.push_back (bounds.first->idx);
+ }
}
std::sort (matches.begin (), matches.end ());
@@ -4554,7 +4518,8 @@ dw2_expand_symtabs_matching_symbol
{
if (prev != idx)
{
- match_callback (idx);
+ if (!match_callback (idx))
+ break;
prev = idx;
}
}
@@ -4649,6 +4614,7 @@ check_match (const char *file, int line,
if (expected_str == NULL || strcmp (expected_str, matched_name) != 0)
mismatch (expected_str, matched_name);
+ return true;
});
const char *expected_str
@@ -4715,7 +4681,8 @@ check_find_bounds_finds (mapped_index_base &index,
lookup_name_info lookup_name (search_name,
symbol_name_match_type::FULL, true);
- auto bounds = index.find_name_components_bounds (lookup_name);
+ auto bounds = index.find_name_components_bounds (lookup_name,
+ language_cplus);
size_t distance = std::distance (bounds.first, bounds.second);
if (distance != expected_syms.size ())
@@ -5200,6 +5167,7 @@ dw2_expand_symtabs_matching
{
dw2_expand_marked_cus (dwarf2_per_objfile, idx, file_matcher,
expansion_notify, kind);
+ return true;
});
}
@@ -5684,6 +5652,13 @@ public:
m_addr (find_vec_in_debug_names (map, namei))
{}
+ dw2_debug_names_iterator (const mapped_debug_names &map,
+ block_enum block_index, domain_enum domain,
+ uint32_t namei)
+ : m_map (map), m_block_index (block_index), m_domain (domain),
+ m_addr (find_vec_in_debug_names (map, namei))
+ {}
+
/* Return the next matching CU or NULL if there are no more. */
dwarf2_per_cu_data *next ();
@@ -6101,6 +6076,63 @@ dw2_debug_names_expand_symtabs_for_function (struct objfile *objfile,
}
}
+static void
+dw2_debug_names_map_matching_symbols
+ (struct objfile *objfile,
+ const lookup_name_info &name, domain_enum domain,
+ int global,
+ gdb::function_view<symbol_found_callback_ftype> callback,
+ symbol_compare_ftype *ordered_compare)
+{
+ struct dwarf2_per_objfile *dwarf2_per_objfile
+ = get_dwarf2_per_objfile (objfile);
+
+ /* debug_names_table is NULL if OBJF_READNOW. */
+ if (!dwarf2_per_objfile->debug_names_table)
+ return;
+
+ mapped_debug_names &map = *dwarf2_per_objfile->debug_names_table;
+ const block_enum block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
+
+ const char *match_name = name.ada ().lookup_name ().c_str ();
+ auto matcher = [&] (const char *symname)
+ {
+ if (ordered_compare == nullptr)
+ return true;
+ return ordered_compare (symname, match_name) == 0;
+ };
+
+ dw2_expand_symtabs_matching_symbol (map, name, matcher, ALL_DOMAIN,
+ [&] (offset_type namei)
+ {
+ /* The name was matched, now expand corresponding CUs that were
+ marked. */
+ dw2_debug_names_iterator iter (map, block_kind, domain, namei);
+
+ struct dwarf2_per_cu_data *per_cu;
+ while ((per_cu = iter.next ()) != NULL)
+ dw2_expand_symtabs_matching_one (per_cu, nullptr, nullptr);
+ return true;
+ });
+
+ /* It's a shame we couldn't do this inside the
+ dw2_expand_symtabs_matching_symbol callback, but that skips CUs
+ that have already been expanded. Instead, this loop matches what
+ the psymtab code does. */
+ for (dwarf2_per_cu_data *per_cu : dwarf2_per_objfile->all_comp_units)
+ {
+ struct compunit_symtab *cust = per_cu->v.quick->compunit_symtab;
+ if (cust != nullptr)
+ {
+ const struct block *block
+ = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), block_kind);
+ if (!iterate_over_symbols_terminated (block, name,
+ domain, callback))
+ break;
+ }
+ }
+}
+
static void
dw2_debug_names_expand_symtabs_matching
(struct objfile *objfile,
@@ -6133,6 +6165,7 @@ dw2_debug_names_expand_symtabs_matching
while ((per_cu = iter.next ()) != NULL)
dw2_expand_symtabs_matching_one (per_cu, file_matcher,
expansion_notify);
+ return true;
});
}
@@ -6148,7 +6181,7 @@ const struct quick_symbol_functions dwarf2_debug_names_functions =
dw2_debug_names_expand_symtabs_for_function,
dw2_expand_all_symtabs,
dw2_expand_symtabs_with_fullname,
- dw2_map_matching_symbols,
+ dw2_debug_names_map_matching_symbols,
dw2_debug_names_expand_symtabs_matching,
dw2_find_pc_sect_compunit_symtab,
NULL,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add Ada support to cc-with-tweaks.exp
@ 2019-09-10 16:50 gdb-buildbot
2019-09-10 16:52 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8a51616424828e6204a20436a719f98436f5d5ea ***
commit 8a51616424828e6204a20436a719f98436f5d5ea
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Tue Jul 9 13:51:26 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Tue Sep 10 08:30:45 2019 -0600
Add Ada support to cc-with-tweaks.exp
This adds Ada support to the cc-with-tweaks.exp board file, so that we
can test Ada this way. The cc-with-tweaks.sh script already works
reasonably well as a wrapper for gnatmake.
gdb/testsuite/ChangeLog
2019-09-10 Tom Tromey <tromey@adacore.com>
* boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9df3563c47..a51d22ce22 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-10 Tom Tromey <tromey@adacore.com>
+
+ * boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* gdb.ada/dgopt.exp: New file.
diff --git a/gdb/testsuite/boards/cc-with-tweaks.exp b/gdb/testsuite/boards/cc-with-tweaks.exp
index c50a0065c2..371481477a 100644
--- a/gdb/testsuite/boards/cc-with-tweaks.exp
+++ b/gdb/testsuite/boards/cc-with-tweaks.exp
@@ -42,6 +42,7 @@ load_generic_config "unix"
process_multilib_options ""
set found_gcc [find_gcc]
set found_gxx [find_g++]
+set found_gnatmake [find_gnatmake]
set_board_info compiler "$found_gcc"
set contrib_dir [file normalize $srcdir/../contrib]
@@ -53,6 +54,10 @@ if ![info exists CXX_FOR_TARGET] {
set CXX_FOR_TARGET "$found_gxx"
}
set CXX_FOR_TARGET "$contrib_dir/cc-with-tweaks.sh $CC_WITH_TWEAKS_FLAGS $CXX_FOR_TARGET"
+if ![info exists GNATMAKE_FOR_TARGET] {
+ set GNATMAKE_FOR_TARGET "$found_gnatmake"
+}
+set GNATMAKE_FOR_TARGET "$contrib_dir/cc-with-tweaks.sh $CC_WITH_TWEAKS_FLAGS $GNATMAKE_FOR_TARGET"
set pwd [exec pwd -P]
exec echo $GDB $INTERNAL_GDBFLAGS $GDBFLAGS \"\$@\" > $pwd/gdb.sh
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-10 16:50 [binutils-gdb] Add Ada support to cc-with-tweaks.exp gdb-buildbot
@ 2019-09-10 16:52 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:52 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/37
Author:
Tom Tromey <tromey@adacore.com>
Commit tested:
8a51616424828e6204a20436a719f98436f5d5ea
Subject of commit:
Add Ada support to cc-with-tweaks.exp
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a51616424828e6204a20436a719f98436f5d5ea/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 1 on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 2 on extra console
PASS -> FAIL: gdb.base/new-ui-pending-input.exp: print 3 on extra console
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a51616424828e6204a20436a719f98436f5d5ea//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a51616424828e6204a20436a719f98436f5d5ea//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use the correct alias for the M68K tdiv instruction.
@ 2019-09-10 17:05 gdb-buildbot
2019-09-10 16:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 17:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8063ab7e37c1a2abfa272d10e8d2c7ae192b1787 ***
commit 8063ab7e37c1a2abfa272d10e8d2c7ae192b1787
Author: Miod Vallat <miod@online.fr>
AuthorDate: Tue Sep 10 17:17:01 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 10 17:17:01 2019 +0100
Use the correct alias for the M68K tdiv instruction.
PR 24982
* m68k-opc.c: Correct aliases for tdivsl and tdivul.
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 67bc754be5..392fcacfb6 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-10 Miod Vallat <miod@online.fr>
+
+ PR 24982
+ * m68k-opc.c: Correct aliases for tdivsl and tdivul.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c
index d99bf90fca..c93c675981 100644
--- a/opcodes/m68k-opc.c
+++ b/opcodes/m68k-opc.c
@@ -2325,7 +2325,7 @@ const struct m68k_opcode_alias m68k_opcode_aliases[] =
{ "dbhsw", "dbcc", },
{ "dbra", "dbf", },
{ "dbraw", "dbf", },
- { "tdivsl", "divsl", },
+ { "tdivsl", "divsll", },
{ "divs", "divsw", },
{ "divu", "divuw", },
{ "ext", "extw", },
@@ -2435,7 +2435,7 @@ const struct m68k_opcode_alias m68k_opcode_aliases[] =
{ "movsw", "movesw", },
{ "mov3q", "mov3ql", },
- { "tdivul", "divul", }, /* For m68k-svr4. */
+ { "tdivul", "divull", }, /* For m68k-svr4. */
{ "fmovb", "fmoveb", },
{ "fsmovb", "fsmoveb", },
{ "fdmovb", "fdmoveb", },
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-10 17:05 [binutils-gdb] Use the correct alias for the M68K tdiv instruction gdb-buildbot
@ 2019-09-10 16:59 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-10 16:59 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/38
Author:
Miod Vallat <miod@online.fr>
Commit tested:
8063ab7e37c1a2abfa272d10e8d2c7ae192b1787
Subject of commit:
Use the correct alias for the M68K tdiv instruction.
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/8063ab7e37c1a2abfa272d10e8d2c7ae192b1787/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.threads/gcore-stale-thread.exp: save a corefile
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/8063ab7e37c1a2abfa272d10e8d2c7ae192b1787//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/8063ab7e37c1a2abfa272d10e8d2c7ae192b1787//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Tidy ld/ldmisc.c
@ 2019-09-11 7:07 gdb-buildbot
2019-09-11 5:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 7:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cb7f4b298e5e0a3ab4fb6b13aa89e970478597bc ***
commit cb7f4b298e5e0a3ab4fb6b13aa89e970478597bc
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 9 15:23:27 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 11 13:43:29 2019 +0930
Tidy ld/ldmisc.c
The idea here is to not use elf-bfd.h and coff-bfd.h in generic linker
code.
bfd/
* targets.c (struct bfd_target): Add _bfd_group_name.
(BFD_JUMP_TABLE): Likewise.
* coffgen.c (bfd_coff_group_name): New function.
* elf.c (bfd_elf_group_name): New function.
* linker.c (_bfd_nolink_bfd_group_name): New function.
* section.c (bfd_generic_group_name): New function.
* elf-bfd.h (bfd_elf_group_name): Declare.
* libbfd-in.h (_bfd_nolink_bfd_group_name): Declare.
* libcoff-in.h (bfd_coff_group_name): Declare.
* aout-target.h (MY_bfd_group_name): Define.
* aout-tic30.c (MY_bfd_group_name): Define.
* bfd.c (bfd_group_name): Define.
* binary.c (binary_bfd_group_name): Define.
* coff-alpha.c (_bfd_ecoff_bfd_group_name): Define.
* coff-mips.c (_bfd_ecoff_bfd_group_name): Define.
* coff-rs6000.c (_bfd_xcoff_bfd_group_name): Define.
* coffcode.h (coff_bfd_group_name): Define.
* elfxx-target.h (bfd_elfNN_bfd_group_name): Define.
* i386msdos.c (msdos_bfd_group_name): Define.
* ihex.c (ihex_bfd_group_name): Define.
* mach-o-target.c (bfd_mach_o_bfd_group_name): Define.
* mmo.c (mmo_bfd_group_name): Define.
* pef.c (bfd_pef_bfd_group_name): Define.
* plugin.c (bfd_plugin_bfd_group_name): Define.
* ppcboot.c (ppcboot_bfd_group_name): Define.
* som.c (som_bfd_group_name): Define.
* srec.c (srec_bfd_group_name): Define.
* tekhex.c (tekhex_bfd_group_name): Define.
* verilog.c (verilog_bfd_group_name): Define.
* vms-alpha.c (vms_bfd_group_name, alpha_vms_bfd_group_name): Define.
* xsym.c (bfd_sym_bfd_group_name): Define.
* coff64-rs6000.c (rs6000_xcoff64_vec): Init new field.
(rs6000_xcoff64_aix_vec): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
ld/
* ldmisc.c: Don't #include elf-bfd.h or coff-bfd.h.
(vfinfo): Use bfd_group_name.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8b6b843a6f..f498a91b88 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,42 @@
+2019-09-11 Alan Modra <amodra@gmail.com>
+
+ * targets.c (struct bfd_target): Add _bfd_group_name.
+ (BFD_JUMP_TABLE): Likewise.
+ * coffgen.c (bfd_coff_group_name): New function.
+ * elf.c (bfd_elf_group_name): New function.
+ * linker.c (_bfd_nolink_bfd_group_name): New function.
+ * section.c (bfd_generic_group_name): New function.
+ * elf-bfd.h (bfd_elf_group_name): Declare.
+ * libbfd-in.h (_bfd_nolink_bfd_group_name): Declare.
+ * libcoff-in.h (bfd_coff_group_name): Declare.
+ * aout-target.h (MY_bfd_group_name): Define.
+ * aout-tic30.c (MY_bfd_group_name): Define.
+ * bfd.c (bfd_group_name): Define.
+ * binary.c (binary_bfd_group_name): Define.
+ * coff-alpha.c (_bfd_ecoff_bfd_group_name): Define.
+ * coff-mips.c (_bfd_ecoff_bfd_group_name): Define.
+ * coff-rs6000.c (_bfd_xcoff_bfd_group_name): Define.
+ * coffcode.h (coff_bfd_group_name): Define.
+ * elfxx-target.h (bfd_elfNN_bfd_group_name): Define.
+ * i386msdos.c (msdos_bfd_group_name): Define.
+ * ihex.c (ihex_bfd_group_name): Define.
+ * mach-o-target.c (bfd_mach_o_bfd_group_name): Define.
+ * mmo.c (mmo_bfd_group_name): Define.
+ * pef.c (bfd_pef_bfd_group_name): Define.
+ * plugin.c (bfd_plugin_bfd_group_name): Define.
+ * ppcboot.c (ppcboot_bfd_group_name): Define.
+ * som.c (som_bfd_group_name): Define.
+ * srec.c (srec_bfd_group_name): Define.
+ * tekhex.c (tekhex_bfd_group_name): Define.
+ * verilog.c (verilog_bfd_group_name): Define.
+ * vms-alpha.c (vms_bfd_group_name, alpha_vms_bfd_group_name): Define.
+ * xsym.c (bfd_sym_bfd_group_name): Define.
+ * coff64-rs6000.c (rs6000_xcoff64_vec): Init new field.
+ (rs6000_xcoff64_aix_vec): Likewise.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * libcoff.h: Regenerate.
+
2019-09-10 Nick Clifton <nickc@redhat.com>
PR 24907
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 99a82bb57a..58de28faba 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -502,6 +502,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
#ifndef MY_bfd_is_group_section
#define MY_bfd_is_group_section bfd_generic_is_group_section
#endif
+#ifndef MY_bfd_group_name
+#define MY_bfd_group_name bfd_generic_group_name
+#endif
#ifndef MY_bfd_discard_group
#define MY_bfd_discard_group bfd_generic_discard_group
#endif
diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c
index 49463181f0..7cc6ba5f6c 100644
--- a/bfd/aout-tic30.c
+++ b/bfd/aout-tic30.c
@@ -991,6 +991,9 @@ tic30_aout_set_arch_mach (bfd *abfd,
#ifndef MY_bfd_is_group_section
#define MY_bfd_is_group_section bfd_generic_is_group_section
#endif
+#ifndef MY_bfd_group_name
+#define MY_bfd_group_name bfd_generic_group_name
+#endif
#ifndef MY_bfd_discard_group
#define MY_bfd_discard_group bfd_generic_discard_group
#endif
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 690ba9a6fd..dc9b5daf94 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2002,6 +2002,8 @@ bfd_boolean bfd_copy_private_section_data
(ibfd, isection, obfd, osection))
bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+const char *bfd_generic_group_name (bfd *, const asection *sec);
+
bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
/* Extracted from archures.c. */
@@ -7477,6 +7479,9 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
#define bfd_is_group_section(abfd, sec) \
BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
+#define bfd_group_name(abfd, sec) \
+ BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
+
#define bfd_discard_group(abfd, sec) \
BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
@@ -7908,6 +7913,7 @@ typedef struct bfd_target
NAME##_bfd_lookup_section_flags, \
NAME##_bfd_merge_sections, \
NAME##_bfd_is_group_section, \
+ NAME##_bfd_group_name, \
NAME##_bfd_discard_group, \
NAME##_section_already_linked, \
NAME##_bfd_define_common_symbol, \
@@ -7966,6 +7972,9 @@ typedef struct bfd_target
/* Is this section a member of a group? */
bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+ /* The group name, if section is a member of a group. */
+ const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
+
/* Discard members of a group. */
bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
diff --git a/bfd/bfd.c b/bfd/bfd.c
index f56a8d342f..f14ec253fb 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1862,6 +1862,9 @@ DESCRIPTION
.#define bfd_is_group_section(abfd, sec) \
. BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
.
+.#define bfd_group_name(abfd, sec) \
+. BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
+.
.#define bfd_discard_group(abfd, sec) \
. BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
.
diff --git a/bfd/binary.c b/bfd/binary.c
index 37f5f9f736..eb87d11b6e 100644
--- a/bfd/binary.c
+++ b/bfd/binary.c
@@ -307,6 +307,7 @@ binary_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
#define binary_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define binary_bfd_merge_sections bfd_generic_merge_sections
#define binary_bfd_is_group_section bfd_generic_is_group_section
+#define binary_bfd_group_name bfd_generic_group_name
#define binary_bfd_discard_group bfd_generic_discard_group
#define binary_section_already_linked _bfd_generic_section_already_linked
#define binary_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 726d20bfbb..ee4a3eeded 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -2390,6 +2390,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
#define _bfd_ecoff_bfd_gc_sections bfd_generic_gc_sections
#define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
#define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_ecoff_bfd_group_name bfd_generic_group_name
#define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
#define _bfd_ecoff_section_already_linked \
_bfd_coff_section_already_linked
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index 3ada9ceb0f..a2dd9e1c4f 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1416,6 +1416,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
#define _bfd_ecoff_bfd_merge_sections bfd_generic_merge_sections
#define _bfd_ecoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_ecoff_bfd_group_name bfd_generic_group_name
#define _bfd_ecoff_bfd_discard_group bfd_generic_discard_group
#define _bfd_ecoff_section_already_linked \
_bfd_coff_section_already_linked
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 85e90a0254..4620254aae 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -4057,6 +4057,7 @@ const struct xcoff_dwsect_name xcoff_dwsect_names[] = {
#define _bfd_xcoff_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define _bfd_xcoff_bfd_merge_sections bfd_generic_merge_sections
#define _bfd_xcoff_bfd_is_group_section bfd_generic_is_group_section
+#define _bfd_xcoff_bfd_group_name bfd_generic_group_name
#define _bfd_xcoff_bfd_discard_group bfd_generic_discard_group
#define _bfd_xcoff_section_already_linked _bfd_generic_section_already_linked
#define _bfd_xcoff_bfd_define_common_symbol _bfd_xcoff_define_common_symbol
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 6f0e358f4a..b6b189fd2d 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -2778,6 +2778,7 @@ const bfd_target rs6000_xcoff64_vec =
bfd_generic_lookup_section_flags,
bfd_generic_merge_sections,
bfd_generic_is_group_section,
+ bfd_generic_group_name,
bfd_generic_discard_group,
_bfd_generic_section_already_linked,
_bfd_xcoff_define_common_symbol,
@@ -3040,6 +3041,7 @@ const bfd_target rs6000_xcoff64_aix_vec =
bfd_generic_lookup_section_flags,
bfd_generic_merge_sections,
bfd_generic_is_group_section,
+ bfd_generic_group_name,
bfd_generic_discard_group,
_bfd_generic_section_already_linked,
_bfd_xcoff_define_common_symbol,
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index c3f13300a4..054e45c960 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -5751,6 +5751,10 @@ static bfd_coff_backend_data bigobj_swap_table =
#define coff_bfd_is_group_section bfd_generic_is_group_section
#endif
+#ifndef coff_bfd_group_name
+#define coff_bfd_group_name bfd_coff_group_name
+#endif
+
#ifndef coff_bfd_discard_group
#define coff_bfd_discard_group bfd_generic_discard_group
#endif
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 5d61f39c8c..209b01d5d0 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -3155,3 +3155,14 @@ bfd_coff_gc_sections (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
/* ... and mark SEC_EXCLUDE for those that go. */
return coff_gc_sweep (abfd, info);
}
+
+/* Return name used to identify a comdat group. */
+
+const char *
+bfd_coff_group_name (bfd *abfd, const asection *sec)
+{
+ struct coff_comdat_info *ci = bfd_coff_get_comdat_section (abfd, sec);
+ if (ci != NULL)
+ return ci->name;
+ return NULL;
+}
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 521d35debb..4458ff7b2a 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2111,6 +2111,8 @@ extern bfd_boolean _bfd_elf_match_sections_by_type
(bfd *, const asection *, bfd *, const asection *);
extern bfd_boolean bfd_elf_is_group_section
(bfd *, const struct bfd_section *);
+extern const char *bfd_elf_group_name
+ (bfd *, const struct bfd_section *);
extern bfd_boolean _bfd_elf_section_already_linked
(bfd *, asection *, struct bfd_link_info *);
extern void bfd_elf_set_group_contents
diff --git a/bfd/elf.c b/bfd/elf.c
index 5a061c9110..ec4c643d59 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -974,6 +974,14 @@ bfd_elf_is_group_section (bfd *abfd ATTRIBUTE_UNUSED, const asection *sec)
return elf_next_in_group (sec) != NULL;
}
+const char *
+bfd_elf_group_name (bfd *abfd ATTRIBUTE_UNUSED, const asection *sec)
+{
+ if (elf_sec_group (sec) != NULL)
+ return elf_group_name (sec);
+ return NULL;
+}
+
static char *
convert_debug_to_zdebug (bfd *abfd, const char *name)
{
diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
index 0b737a4ffa..78a1f6314d 100644
--- a/bfd/elfxx-target.h
+++ b/bfd/elfxx-target.h
@@ -192,6 +192,10 @@
#define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section
#endif
+#ifndef bfd_elfNN_bfd_group_name
+#define bfd_elfNN_bfd_group_name bfd_elf_group_name
+#endif
+
#ifndef bfd_elfNN_bfd_discard_group
#define bfd_elfNN_bfd_discard_group bfd_generic_discard_group
#endif
diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c
index f70a6f364d..9c4ab4cece 100644
--- a/bfd/i386msdos.c
+++ b/bfd/i386msdos.c
@@ -226,6 +226,7 @@ msdos_set_section_contents (bfd *abfd,
#define msdos_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define msdos_bfd_merge_sections bfd_generic_merge_sections
#define msdos_bfd_is_group_section bfd_generic_is_group_section
+#define msdos_bfd_group_name bfd_generic_group_name
#define msdos_bfd_discard_group bfd_generic_discard_group
#define msdos_section_already_linked \
_bfd_generic_section_already_linked
diff --git a/bfd/ihex.c b/bfd/ihex.c
index 101e0a7615..09149089be 100644
--- a/bfd/ihex.c
+++ b/bfd/ihex.c
@@ -962,6 +962,7 @@ ihex_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
#define ihex_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define ihex_bfd_merge_sections bfd_generic_merge_sections
#define ihex_bfd_is_group_section bfd_generic_is_group_section
+#define ihex_bfd_group_name bfd_generic_group_name
#define ihex_bfd_discard_group bfd_generic_discard_group
#define ihex_section_already_linked _bfd_generic_section_already_linked
#define ihex_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index cac4d3b022..f498ffd5e7 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -523,6 +523,8 @@ extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags
#define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error
extern bfd_boolean _bfd_nolink_bfd_is_group_section
(bfd *, const asection *) ATTRIBUTE_HIDDEN;
+extern const char *_bfd_nolink_bfd_group_name
+ (bfd *, const asection *) ATTRIBUTE_HIDDEN;
extern bfd_boolean _bfd_nolink_bfd_discard_group
(bfd *, asection *) ATTRIBUTE_HIDDEN;
extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index aabe247068..2ea167ecb6 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -528,6 +528,8 @@ extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags
#define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error
extern bfd_boolean _bfd_nolink_bfd_is_group_section
(bfd *, const asection *) ATTRIBUTE_HIDDEN;
+extern const char *_bfd_nolink_bfd_group_name
+ (bfd *, const asection *) ATTRIBUTE_HIDDEN;
extern bfd_boolean _bfd_nolink_bfd_discard_group
(bfd *, asection *) ATTRIBUTE_HIDDEN;
extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create
diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h
index c75c9ac595..783d54a88a 100644
--- a/bfd/libcoff-in.h
+++ b/bfd/libcoff-in.h
@@ -577,7 +577,8 @@ extern bfd_boolean _bfd_coff_reloc_link_order
struct bfd_link_order *);
extern bfd_boolean bfd_coff_gc_sections
(bfd *, struct bfd_link_info *);
-
+extern const char *bfd_coff_group_name
+ (bfd *, const asection *);
#define coff_get_section_contents_in_window \
_bfd_generic_get_section_contents_in_window
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index d0e3d0dd90..f2613c2e77 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -581,7 +581,8 @@ extern bfd_boolean _bfd_coff_reloc_link_order
struct bfd_link_order *);
extern bfd_boolean bfd_coff_gc_sections
(bfd *, struct bfd_link_info *);
-
+extern const char *bfd_coff_group_name
+ (bfd *, const asection *);
#define coff_get_section_contents_in_window \
_bfd_generic_get_section_contents_in_window
diff --git a/bfd/linker.c b/bfd/linker.c
index 1b71fcf8f0..f6eef93259 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -3461,6 +3461,13 @@ _bfd_nolink_bfd_is_group_section (bfd *abfd,
return _bfd_bool_bfd_false_error (abfd);
}
+const char *
+_bfd_nolink_bfd_group_name (bfd *abfd,
+ const asection *sec ATTRIBUTE_UNUSED)
+{
+ return _bfd_ptr_bfd_null_error (abfd);
+}
+
bfd_boolean
_bfd_nolink_bfd_discard_group (bfd *abfd, asection *sec ATTRIBUTE_UNUSED)
{
diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c
index e02dd79018..e15e88f353 100644
--- a/bfd/mach-o-target.c
+++ b/bfd/mach-o-target.c
@@ -52,6 +52,7 @@
#define bfd_mach_o_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define bfd_mach_o_bfd_merge_sections bfd_generic_merge_sections
#define bfd_mach_o_bfd_is_group_section bfd_generic_is_group_section
+#define bfd_mach_o_bfd_group_name bfd_generic_group_name
#define bfd_mach_o_bfd_discard_group bfd_generic_discard_group
#define bfd_mach_o_section_already_linked _bfd_generic_section_already_linked
#define bfd_mach_o_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/mmo.c b/bfd/mmo.c
index bd4303c531..f48f9868fe 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -3311,6 +3311,7 @@ mmo_write_object_contents (bfd *abfd)
#define mmo_bfd_relax_section bfd_generic_relax_section
#define mmo_bfd_merge_sections bfd_generic_merge_sections
#define mmo_bfd_is_group_section bfd_generic_is_group_section
+#define mmo_bfd_group_name bfd_generic_group_name
#define mmo_bfd_discard_group bfd_generic_discard_group
#define mmo_section_already_linked \
_bfd_generic_section_already_linked
diff --git a/bfd/pef.c b/bfd/pef.c
index 8c66ca477d..effa076405 100644
--- a/bfd/pef.c
+++ b/bfd/pef.c
@@ -56,6 +56,7 @@
#define bfd_pef_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define bfd_pef_bfd_merge_sections bfd_generic_merge_sections
#define bfd_pef_bfd_is_group_section bfd_generic_is_group_section
+#define bfd_pef_bfd_group_name bfd_generic_group_name
#define bfd_pef_bfd_discard_group bfd_generic_discard_group
#define bfd_pef_section_already_linked _bfd_generic_section_already_linked
#define bfd_pef_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 5f760e9c42..ca26005055 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -102,6 +102,7 @@ dlerror (void)
#define bfd_plugin_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define bfd_plugin_bfd_merge_sections bfd_generic_merge_sections
#define bfd_plugin_bfd_is_group_section bfd_generic_is_group_section
+#define bfd_plugin_bfd_group_name bfd_generic_group_name
#define bfd_plugin_bfd_discard_group bfd_generic_discard_group
#define bfd_plugin_section_already_linked _bfd_generic_section_already_linked
#define bfd_plugin_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c
index 99db8234d1..02132e7801 100644
--- a/bfd/ppcboot.c
+++ b/bfd/ppcboot.c
@@ -456,6 +456,7 @@ ppcboot_bfd_print_private_bfd_data (bfd *abfd, void * farg)
#define ppcboot_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define ppcboot_bfd_merge_sections bfd_generic_merge_sections
#define ppcboot_bfd_is_group_section bfd_generic_is_group_section
+#define ppcboot_bfd_group_name bfd_generic_group_name
#define ppcboot_bfd_discard_group bfd_generic_discard_group
#define ppcboot_section_already_linked \
_bfd_generic_section_already_linked
diff --git a/bfd/section.c b/bfd/section.c
index 64636334ac..74feb73be9 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -1662,6 +1662,24 @@ bfd_generic_is_group_section (bfd *abfd ATTRIBUTE_UNUSED,
return FALSE;
}
+/*
+FUNCTION
+ bfd_generic_group_name
+
+SYNOPSIS
+ const char *bfd_generic_group_name (bfd *, const asection *sec);
+
+DESCRIPTION
+ Returns group name if @var{sec} is a member of a group.
+*/
+
+const char *
+bfd_generic_group_name (bfd *abfd ATTRIBUTE_UNUSED,
+ const asection *sec ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+
/*
FUNCTION
bfd_generic_discard_group
diff --git a/bfd/som.c b/bfd/som.c
index 0d17b3278a..02a99a3360 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -6756,6 +6756,7 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
#define som_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define som_bfd_merge_sections bfd_generic_merge_sections
#define som_bfd_is_group_section bfd_generic_is_group_section
+#define som_bfd_group_name bfd_generic_group_name
#define som_bfd_discard_group bfd_generic_discard_group
#define som_section_already_linked _bfd_generic_section_already_linked
#define som_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/srec.c b/bfd/srec.c
index 77eaecd111..218276837c 100644
--- a/bfd/srec.c
+++ b/bfd/srec.c
@@ -1275,6 +1275,7 @@ srec_print_symbol (bfd *abfd,
#define srec_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define srec_bfd_merge_sections bfd_generic_merge_sections
#define srec_bfd_is_group_section bfd_generic_is_group_section
+#define srec_bfd_group_name bfd_generic_group_name
#define srec_bfd_discard_group bfd_generic_discard_group
#define srec_section_already_linked _bfd_generic_section_already_linked
#define srec_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/targets.c b/bfd/targets.c
index 6b85c62798..09956994ec 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -462,6 +462,7 @@ BFD_JUMP_TABLE macros.
. NAME##_bfd_lookup_section_flags, \
. NAME##_bfd_merge_sections, \
. NAME##_bfd_is_group_section, \
+. NAME##_bfd_group_name, \
. NAME##_bfd_discard_group, \
. NAME##_section_already_linked, \
. NAME##_bfd_define_common_symbol, \
@@ -520,6 +521,9 @@ BFD_JUMP_TABLE macros.
. {* Is this section a member of a group? *}
. bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
.
+. {* The group name, if section is a member of a group. *}
+. const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
+.
. {* Discard members of a group. *}
. bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
.
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index 386e33b24e..fb03629182 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -978,6 +978,7 @@ tekhex_print_symbol (bfd *abfd,
#define tekhex_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define tekhex_bfd_merge_sections bfd_generic_merge_sections
#define tekhex_bfd_is_group_section bfd_generic_is_group_section
+#define tekhex_bfd_group_name bfd_generic_group_name
#define tekhex_bfd_discard_group bfd_generic_discard_group
#define tekhex_section_already_linked _bfd_generic_section_already_linked
#define tekhex_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/bfd/verilog.c b/bfd/verilog.c
index 252e240277..a785e50a00 100644
--- a/bfd/verilog.c
+++ b/bfd/verilog.c
@@ -368,6 +368,7 @@ verilog_mkobject (bfd *abfd)
#define verilog_bfd_gc_sections bfd_generic_gc_sections
#define verilog_bfd_merge_sections bfd_generic_merge_sections
#define verilog_bfd_is_group_section bfd_generic_is_group_section
+#define verilog_bfd_group_name bfd_generic_group_name
#define verilog_bfd_discard_group bfd_generic_discard_group
#define verilog_section_already_linked _bfd_generic_section_already_linked
#define verilog_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 4e6f9c1c42..69822a2ce6 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -9504,6 +9504,7 @@ bfd_vms_get_data (bfd *abfd)
#define vms_bfd_copy_link_hash_symbol_type \
_bfd_generic_copy_link_hash_symbol_type
#define vms_bfd_is_group_section bfd_generic_is_group_section
+#define vms_bfd_group_name bfd_generic_group_name
#define vms_bfd_discard_group bfd_generic_discard_group
#define vms_section_already_linked _bfd_generic_section_already_linked
#define vms_bfd_define_common_symbol bfd_generic_define_common_symbol
@@ -9550,6 +9551,7 @@ bfd_vms_get_data (bfd *abfd)
#define alpha_vms_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define alpha_vms_bfd_merge_sections bfd_generic_merge_sections
#define alpha_vms_bfd_is_group_section bfd_generic_is_group_section
+#define alpha_vms_bfd_group_name bfd_generic_group_name
#define alpha_vms_bfd_discard_group bfd_generic_discard_group
#define alpha_vms_section_already_linked \
_bfd_generic_section_already_linked
diff --git a/bfd/xsym.c b/bfd/xsym.c
index 67d91cb077..cf4a67167a 100644
--- a/bfd/xsym.c
+++ b/bfd/xsym.c
@@ -48,6 +48,7 @@
#define bfd_sym_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define bfd_sym_bfd_merge_sections bfd_generic_merge_sections
#define bfd_sym_bfd_is_group_section bfd_generic_is_group_section
+#define bfd_sym_bfd_group_name bfd_generic_group_name
#define bfd_sym_bfd_discard_group bfd_generic_discard_group
#define bfd_sym_section_already_linked _bfd_generic_section_already_linked
#define bfd_sym_bfd_define_common_symbol bfd_generic_define_common_symbol
diff --git a/ld/ChangeLog b/ld/ChangeLog
index d24973e0fa..955d460d40 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11 Alan Modra <amodra@gmail.com>
+
+ * ldmisc.c: Don't #include elf-bfd.h or coff-bfd.h.
+ (vfinfo): Use bfd_group_name.
+
2019-09-11 Alan Modra <amodra@gmail.com>
* plugin.c (asymbol_from_plugin_symbol): Move code handling
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index f7ab7b5d99..319f247e3b 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -35,8 +35,6 @@
#include "ldlex.h"
#include "ldmain.h"
#include "ldfile.h"
-#include "elf-bfd.h"
-#include "coff-bfd.h"
/*
%% literal %
@@ -431,26 +429,18 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
/* section name from a section */
asection *sec;
bfd *abfd;
- const char *group = NULL;
- struct coff_comdat_info *ci;
fmt++;
sec = (asection *) args[arg_no].p;
++arg_count;
- abfd = sec->owner;
fprintf (fp, "%s", sec->name);
- if (abfd != NULL
- && bfd_get_flavour (abfd) == bfd_target_elf_flavour
- && elf_next_in_group (sec) != NULL
- && (sec->flags & SEC_GROUP) == 0)
- group = elf_group_name (sec);
- else if (abfd != NULL
- && bfd_get_flavour (abfd) == bfd_target_coff_flavour
- && (ci = bfd_coff_get_comdat_section (sec->owner,
- sec)) != NULL)
- group = ci->name;
- if (group != NULL)
- fprintf (fp, "[%s]", group);
+ abfd = sec->owner;
+ if (abfd != NULL)
+ {
+ const char *group = bfd_group_name (abfd, sec);
+ if (group != NULL)
+ fprintf (fp, "[%s]", group);
+ }
}
else if (*fmt == 'B')
{
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Introduce bfd_set_filename
@ 2019-09-11 18:15 gdb-buildbot
2019-09-11 18:08 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 18:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 64b2d4a0a4e4f80d2aa2e52c6eec3186e76fc397 ***
commit 64b2d4a0a4e4f80d2aa2e52c6eec3186e76fc397
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 8 11:38:24 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 11 07:02:46 2019 -0600
Introduce bfd_set_filename
This introduces a new bfd_set_filename function, which is then used in
various spots in gdb. This allows for the removal of some casts.
bfd/ChangeLog
2019-09-11 Tom Tromey <tom@tromey.com>
* opncls.c (bfd_set_filename): New function.
* bfd-in2.h: Regenerate.
gdb/ChangeLog
2019-09-11 Tom Tromey <tom@tromey.com>
* symfile-mem.c (symbol_file_add_from_memory): Use
bfd_set_filename.
* solib-darwin.c (darwin_bfd_open): Use bfd_set_filename.
* solib-aix.c (solib_aix_bfd_open): Use bfd_set_filename.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f498a91b88..ea0f06041b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11 Tom Tromey <tom@tromey.com>
+
+ * opncls.c (bfd_set_filename): New function.
+ * bfd-in2.h: Regenerate.
+
2019-09-11 Alan Modra <amodra@gmail.com>
* targets.c (struct bfd_target): Add _bfd_group_name.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index dc9b5daf94..13445a1de7 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1193,6 +1193,8 @@ bfd_boolean bfd_fill_in_gnu_debuglink_section
char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
+void bfd_set_filename (bfd *abfd, char *filename);
+
/* Extracted from libbfd.c. */
/* Byte swapping macros for user section data. */
diff --git a/bfd/opncls.c b/bfd/opncls.c
index 07f89b9a4c..d14dfe9320 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -2089,3 +2089,23 @@ bfd_follow_build_id_debuglink (bfd *abfd, const char *dir)
get_build_id_name,
check_build_id_file, &build_id);
}
+
+/*
+FUNCTION
+ bfd_set_filename
+
+SYNOPSIS
+ void bfd_set_filename (bfd *abfd, char *filename);
+
+DESCRIPTION
+ Set the filename of @var{abfd}. The old filename, if any, is freed.
+ @var{filename} must be allocated using @code{xmalloc}. After
+ this call, it is owned @var{abfd}.
+*/
+
+void
+bfd_set_filename (bfd *abfd, char *filename)
+{
+ free ((char *) abfd->filename);
+ abfd->filename = filename;
+}
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dace64e6be..e4b18fa1de 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-11 Tom Tromey <tom@tromey.com>
+
+ * symfile-mem.c (symbol_file_add_from_memory): Use
+ bfd_set_filename.
+ * solib-darwin.c (darwin_bfd_open): Use bfd_set_filename.
+ * solib-aix.c (solib_aix_bfd_open): Use bfd_set_filename.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* dwarf-index-write.c (write_psymbols): Extend error message.
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 2b5444293e..0c8a18267c 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -643,10 +643,10 @@ solib_aix_bfd_open (const char *pathname)
along with appended parenthesized member name in order to allow commands
listing all shared libraries to display. Otherwise, we would only be
displaying the name of the archive member object. */
- xfree ((char *) bfd_get_filename (object_bfd.get ()));
- object_bfd->filename = xstrprintf ("%s%s",
- bfd_get_filename (archive_bfd.get ()),
- sep);
+ bfd_set_filename (object_bfd.get (),
+ xstrprintf ("%s%s",
+ bfd_get_filename (archive_bfd.get ()),
+ sep));
return object_bfd;
}
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 3dd30d2aa3..778c6d9f61 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -670,8 +670,7 @@ darwin_bfd_open (const char *pathname)
/* The current filename for fat-binary BFDs is a name generated
by BFD, usually a string containing the name of the architecture.
Reset its value to the actual filename. */
- xfree ((char *) bfd_get_filename (res.get ()));
- res->filename = xstrdup (pathname);
+ bfd_set_filename (res.get (), xstrdup (pathname));
return res;
}
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 6d1deae1e0..05542c1391 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -101,11 +101,9 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
/* Manage the new reference for the duration of this function. */
gdb_bfd_ref_ptr nbfd_holder = gdb_bfd_ref_ptr::new_reference (nbfd);
- xfree ((char *) bfd_get_filename (nbfd));
if (name == NULL)
- nbfd->filename = xstrdup ("shared object read from target memory");
- else
- nbfd->filename = name;
+ name = xstrdup ("shared object read from target memory");
+ bfd_set_filename (nbfd, name);
if (!bfd_check_format (nbfd, bfd_object))
error (_("Got object file from memory but can't read symbols: %s."),
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change the type of copy_names from int to bool
@ 2019-09-11 18:32 gdb-buildbot
2019-09-11 18:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 18:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 67547d896b0593b0fa62e23ac68c483a7e8566e2 ***
commit 67547d896b0593b0fa62e23ac68c483a7e8566e2
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Sep 10 15:37:50 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 12:43:45 2019 -0500
Change the type of copy_names from int to bool
This parameter is really a boolean, so change the type accordingly
and update the callers.
This is for symbol_set_names, add_psymbol_to_bcache, and
add_psymbol_to_list.
minimal_symbol_reader::record_full was already passing a bool
to symbol_set_names.
gdb/ChangeLog:
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* dbxread.c (read_dbx_symtab): Update.
* dwarf2read.c (load_partial_dies): Update.
* mdebugread.c (parse_partial_symbols): Update.
(handle_psymbol_enumerators): Update.
* psympriv.h (add_psymbol_to_list): Change type of copy_names to bool.
* psymtab.c (add_psymbol_to_bcache): Likewise.
(add_psymbol_to_list): Likewise.
* symtab.c (symbol_set_names): Likewise.
* symtab.h (symbol_set_names): Likewise.
* xcoffread.c (scan_xcoff_symtab): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e4b18fa1de..3b28884267 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-11 Christian Biesinger <cbiesinger@google.com>
+
+ * dbxread.c (read_dbx_symtab): Update.
+ * dwarf2read.c (load_partial_dies): Update.
+ * mdebugread.c (parse_partial_symbols): Update.
+ (handle_psymbol_enumerators): Update.
+ * psympriv.h (add_psymbol_to_list): Change type of copy_names to bool.
+ * psymtab.c (add_psymbol_to_bcache): Likewise.
+ (add_psymbol_to_list): Likewise.
+ * symtab.c (symbol_set_names): Likewise.
+ * symtab.h (symbol_set_names): Likewise.
+ * xcoffread.c (scan_xcoff_symtab): Update.
+
2019-09-11 Tom Tromey <tom@tromey.com>
* symfile-mem.c (symbol_file_add_from_memory): Use
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index df3ae5828a..dc0b2c727b 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1464,7 +1464,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
if (gdbarch_static_transform_name_p (gdbarch))
gdbarch_static_transform_name (gdbarch, namestring);
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_STATIC,
data_sect_index,
psymbol_placement::STATIC,
@@ -1474,7 +1474,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
case 'G':
/* The addresses in these entries are reported to be
wrong. See the code that reads 'G's for symtabs. */
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_STATIC,
data_sect_index,
psymbol_placement::GLOBAL,
@@ -1492,14 +1492,14 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
|| (p == namestring + 1
&& namestring[0] != ' '))
{
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
if (p[2] == 't')
{
/* Also a typedef with the same name. */
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -1511,7 +1511,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
case 't':
if (p != namestring) /* a name is there, not just :T... */
{
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -1572,7 +1572,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
;
/* Note that the value doesn't matter for
enum constants in psymtabs, just in symtabs. */
- add_psymbol_to_list (p, q - p, 1,
+ add_psymbol_to_list (p, q - p, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC, 0,
psymtab_language, objfile);
@@ -1590,7 +1590,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
case 'c':
/* Constant, e.g. from "const" in Pascal. */
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC, 0,
psymtab_language, objfile);
@@ -1645,7 +1645,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
pst->set_text_low (nlist.n_value);
textlow_not_set = 0;
}
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::STATIC,
@@ -1704,7 +1704,7 @@ read_dbx_symtab (minimal_symbol_reader &reader, struct objfile *objfile)
pst->set_text_low (nlist.n_value);
textlow_not_set = 0;
}
- add_psymbol_to_list (sym_name, sym_len, 1,
+ add_psymbol_to_list (sym_name, sym_len, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::GLOBAL,
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index c94fc245fd..a2b80ebbc1 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -18533,7 +18533,7 @@ load_partial_dies (const struct die_reader_specs *reader,
|| pdi.tag == DW_TAG_subrange_type))
{
if (building_psymtab && pdi.name != NULL)
- add_psymbol_to_list (pdi.name, strlen (pdi.name), 0,
+ add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
VAR_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, cu->language, objfile);
@@ -18567,7 +18567,7 @@ load_partial_dies (const struct die_reader_specs *reader,
if (pdi.name == NULL)
complaint (_("malformed enumerator DIE ignored"));
else if (building_psymtab)
- add_psymbol_to_list (pdi.name, strlen (pdi.name), 0,
+ add_psymbol_to_list (pdi.name, strlen (pdi.name), false,
VAR_DOMAIN, LOC_CONST, -1,
cu->language == language_cplus
? psymbol_placement::GLOBAL
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 18c1d1f7c9..dffef8fd1a 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3048,7 +3048,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
namestring = gdbarch_static_transform_name
(gdbarch, namestring);
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_STATIC,
SECT_OFF_DATA (objfile),
psymbol_placement::STATIC,
@@ -3059,7 +3059,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
/* The addresses in these entries are reported
to be wrong. See the code that reads 'G's
for symtabs. */
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_STATIC,
SECT_OFF_DATA (objfile),
psymbol_placement::GLOBAL,
@@ -3078,7 +3078,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|| (p == namestring + 1
&& namestring[0] != ' '))
{
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
STRUCT_DOMAIN, LOC_TYPEDEF,
-1,
psymbol_placement::STATIC,
@@ -3087,7 +3087,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
{
/* Also a typedef with the same name. */
add_psymbol_to_list (namestring,
- p - namestring, 1,
+ p - namestring, true,
VAR_DOMAIN, LOC_TYPEDEF,
-1,
psymbol_placement::STATIC,
@@ -3101,8 +3101,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
if (p != namestring) /* a name is there, not
just :T... */
{
- add_psymbol_to_list (namestring, p - namestring, 1,
- VAR_DOMAIN, LOC_TYPEDEF,
+ add_psymbol_to_list (namestring, p - namestring,
+ true, VAR_DOMAIN, LOC_TYPEDEF,
-1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -3166,7 +3166,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
/* Note that the value doesn't matter for
enum constants in psymtabs, just in
symtabs. */
- add_psymbol_to_list (p, q - p, 1,
+ add_psymbol_to_list (p, q - p, true,
VAR_DOMAIN, LOC_CONST,
-1,
psymbol_placement::STATIC,
@@ -3185,7 +3185,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
continue;
case 'c':
/* Constant, e.g. from "const" in Pascal. */
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -3198,7 +3198,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
function_outside_compilation_unit_complaint
(copy.c_str ());
}
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::STATIC,
@@ -3217,7 +3217,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
function_outside_compilation_unit_complaint
(copy.c_str ());
}
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::GLOBAL,
@@ -3452,13 +3452,13 @@ parse_partial_symbols (minimal_symbol_reader &reader,
symbol table, and the MAIN__ symbol via the minimal
symbol table. */
if (sh.st == stProc)
- add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+ add_psymbol_to_list (sym_name, strlen (sym_name), true,
VAR_DOMAIN, LOC_BLOCK,
section,
psymbol_placement::GLOBAL,
sh.value, psymtab_language, objfile);
else
- add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+ add_psymbol_to_list (sym_name, strlen (sym_name), true,
VAR_DOMAIN, LOC_BLOCK,
section,
psymbol_placement::STATIC,
@@ -3525,7 +3525,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
&& sh.iss != 0
&& sh.index != cur_sdx + 2)
{
- add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+ add_psymbol_to_list (sym_name, strlen (sym_name), true,
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -3565,7 +3565,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
continue;
}
/* Use this gdb symbol. */
- add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+ add_psymbol_to_list (sym_name, strlen (sym_name), true,
VAR_DOMAIN, theclass, section,
psymbol_placement::STATIC,
sh.value, psymtab_language, objfile);
@@ -3644,7 +3644,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
break;
}
char *sym_name = debug_info->ssext + psh->iss;
- add_psymbol_to_list (sym_name, strlen (sym_name), 1,
+ add_psymbol_to_list (sym_name, strlen (sym_name), true,
VAR_DOMAIN, theclass,
section,
psymbol_placement::GLOBAL,
@@ -3807,7 +3807,7 @@ handle_psymbol_enumerators (struct objfile *objfile, FDR *fh, int stype,
/* Note that the value doesn't matter for enum constants
in psymtabs, just in symtabs. */
- add_psymbol_to_list (name, strlen (name), 1,
+ add_psymbol_to_list (name, strlen (name), true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC, 0,
psymtab_language, objfile);
diff --git a/gdb/psympriv.h b/gdb/psympriv.h
index 61d73a316b..9d22f5c9ac 100644
--- a/gdb/psympriv.h
+++ b/gdb/psympriv.h
@@ -289,7 +289,7 @@ enum class psymbol_placement
/* Add any kind of symbol to a partial_symbol vector. */
extern void add_psymbol_to_list (const char *, int,
- int, domain_enum,
+ bool, domain_enum,
enum address_class,
short /* section */,
enum psymbol_placement,
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 1f5f492d39..e9cc8c3bc6 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1558,7 +1558,7 @@ psymbol_compare (const void *addr1, const void *addr2, int length)
different domain (or address) is possible and correct. */
static struct partial_symbol *
-add_psymbol_to_bcache (const char *name, int namelength, int copy_name,
+add_psymbol_to_bcache (const char *name, int namelength, bool copy_name,
domain_enum domain,
enum address_class theclass,
short section,
@@ -1602,7 +1602,7 @@ append_psymbol_to_list (std::vector<partial_symbol *> *list,
Return the partial symbol that has been added. */
void
-add_psymbol_to_list (const char *name, int namelength, int copy_name,
+add_psymbol_to_list (const char *name, int namelength, bool copy_name,
domain_enum domain,
enum address_class theclass,
short section,
diff --git a/gdb/symtab.c b/gdb/symtab.c
index e1bf3692a5..4b528b4270 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -811,7 +811,7 @@ symbol_find_demangled_name (struct general_symbol_info *gsymbol,
void
symbol_set_names (struct general_symbol_info *gsymbol,
- const char *linkage_name, int len, int copy_name,
+ const char *linkage_name, int len, bool copy_name,
struct objfile_per_bfd_storage *per_bfd)
{
struct demangled_name_entry **slot;
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 4fb00cba9f..c54b8ee4b7 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -497,7 +497,7 @@ extern void symbol_set_language (struct general_symbol_info *symbol,
symbol_set_names (&(symbol)->ginfo, linkage_name, len, copy_name, \
(objfile)->per_bfd)
extern void symbol_set_names (struct general_symbol_info *symbol,
- const char *linkage_name, int len, int copy_name,
+ const char *linkage_name, int len, bool copy_name,
struct objfile_per_bfd_storage *per_bfd);
/* Now come lots of name accessor macros. Short version as to when to
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 0dacea44d1..a17031a110 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2644,7 +2644,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
namestring = gdbarch_static_transform_name
(gdbarch, namestring);
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_STATIC,
SECT_OFF_DATA (objfile),
psymbol_placement::STATIC,
@@ -2655,7 +2655,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
case 'G':
/* The addresses in these entries are reported to be
wrong. See the code that reads 'G's for symtabs. */
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_STATIC,
SECT_OFF_DATA (objfile),
psymbol_placement::GLOBAL,
@@ -2674,14 +2674,14 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
|| (p == namestring + 1
&& namestring[0] != ' '))
{
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
STRUCT_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
if (p[2] == 't')
{
/* Also a typedef with the same name. */
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -2693,7 +2693,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
case 't':
if (p != namestring) /* a name is there, not just :T... */
{
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_TYPEDEF, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -2755,7 +2755,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
;
/* Note that the value doesn't matter for
enum constants in psymtabs, just in symtabs. */
- add_psymbol_to_list (p, q - p, 1,
+ add_psymbol_to_list (p, q - p, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -2773,7 +2773,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
case 'c':
/* Constant, e.g. from "const" in Pascal. */
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC,
0, psymtab_language, objfile);
@@ -2790,7 +2790,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
function_outside_compilation_unit_complaint (name);
xfree (name);
}
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::STATIC,
@@ -2820,7 +2820,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
if (startswith (namestring, "@FIX"))
continue;
- add_psymbol_to_list (namestring, p - namestring, 1,
+ add_psymbol_to_list (namestring, p - namestring, true,
VAR_DOMAIN, LOC_BLOCK,
SECT_OFF_TEXT (objfile),
psymbol_placement::GLOBAL,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix float to LONGEST conversion.
@ 2019-09-11 19:49 gdb-buildbot
2019-09-11 20:01 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 19:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9cab7ecda21c6499b0559f6e676fe222e26141be ***
commit 9cab7ecda21c6499b0559f6e676fe222e26141be
Author: Ali Tamur <tamur@google.com>
AuthorDate: Tue Aug 27 18:58:57 2019 -0700
Commit: Ali Tamur <tamur@google.com>
CommitDate: Wed Sep 11 12:21:50 2019 -0700
Fix float to LONGEST conversion.
The code used to have undefined behaviour when template parameter is float and
host_float is NaN, because it attempted to convert NaN value to LONGEST at the
last statement. This frequently caused crashes on tests that checked "info
all-registers" (at least when the code is compiled with clang; I didn't test
with gdb).
gdb/ChangeLog:
*target-float.c (host_float_ops<T>::to_longest): Update
implementation.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3b28884267..eccd4ef2bd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-11 Ali Tamur <tamur@google.com>
+
+ *gdb/target-float.c (host_float_ops<T>::to_longest): Update
+ implementation.
+
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* dbxread.c (read_dbx_symtab): Update.
diff --git a/gdb/target-float.c b/gdb/target-float.c
index 39abb12696..0fd71c0dc3 100644
--- a/gdb/target-float.c
+++ b/gdb/target-float.c
@@ -1007,13 +1007,18 @@ host_float_ops<T>::to_longest (const gdb_byte *addr,
{
T host_float;
from_target (type, addr, &host_float);
- /* Converting an out-of-range value is undefined behavior in C, but we
- prefer to return a defined value here. */
- if (host_float > std::numeric_limits<LONGEST>::max())
- return std::numeric_limits<LONGEST>::max();
- if (host_float < std::numeric_limits<LONGEST>::min())
+ T min_possible_range = static_cast<T>(std::numeric_limits<LONGEST>::min());
+ T max_possible_range = -min_possible_range;
+ /* host_float can be converted to an integer as long as it's in
+ the range [min_possible_range, max_possible_range). If not, it is either
+ too large, or too small, or is NaN; in this case return the maximum or
+ minimum possible value. */
+ if (host_float < max_possible_range && host_float >= min_possible_range)
+ return static_cast<LONGEST> (host_float);
+ if (host_float < min_possible_range)
return std::numeric_limits<LONGEST>::min();
- return (LONGEST) host_float;
+ /* This line will be executed if host_float is NaN. */
+ return std::numeric_limits<LONGEST>::max();
}
/* Convert signed integer VAL to a target floating-number of type TYPE
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Refactor get_init_files to use std::string
@ 2019-09-11 22:11 gdb-buildbot
2019-09-11 22:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 22:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f48cd8368bf45b40547237939af3ab6b47dc7b01 ***
commit f48cd8368bf45b40547237939af3ab6b47dc7b01
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 20 14:45:51 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:29:10 2019 -0500
Refactor get_init_files to use std::string
To avoid manual memory management.
Tested on buildbot.
gdb/ChangeLog:
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* main.c (get_init_files): Change to use std::string.
(captured_main_1): Update.
(print_gdb_help): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eccd4ef2bd..27eae1d400 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-11 Christian Biesinger <cbiesinger@google.com>
+
+ * main.c (get_init_files): Change to use std::string.
+ (captured_main_1): Update.
+ (print_gdb_help): Update.
+
2019-09-11 Ali Tamur <tamur@google.com>
*gdb/target-float.c (host_float_ops<T>::to_longest): Update
diff --git a/gdb/main.c b/gdb/main.c
index 129c57c1d1..e32ed62270 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -195,27 +195,26 @@ relocate_gdb_directory (const char *initial, bool relocatable)
return them in SYSTEM_GDBINIT, HOME_GDBINIT, LOCAL_GDBINIT. If
there is no system gdbinit (resp. home gdbinit and local gdbinit)
to be loaded, then SYSTEM_GDBINIT (resp. HOME_GDBINIT and
- LOCAL_GDBINIT) is set to NULL. */
+ LOCAL_GDBINIT) is set to the empty string. */
static void
-get_init_files (const char **system_gdbinit,
- const char **home_gdbinit,
- const char **local_gdbinit)
+get_init_files (std::string *system_gdbinit,
+ std::string *home_gdbinit,
+ std::string *local_gdbinit)
{
- static const char *sysgdbinit = NULL;
- static char *homeinit = NULL;
- static const char *localinit = NULL;
+ static std::string sysgdbinit;
+ static std::string homeinit;
+ static std::string localinit;
static int initialized = 0;
if (!initialized)
{
struct stat homebuf, cwdbuf, s;
- const char *homedir;
if (SYSTEM_GDBINIT[0])
{
- int datadir_len = strlen (GDB_DATADIR);
- int sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
- char *relocated_sysgdbinit;
+ size_t datadir_len = strlen (GDB_DATADIR);
+ size_t sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
+ std::string relocated_sysgdbinit;
/* If SYSTEM_GDBINIT lives in data-directory, and data-directory
has been provided, search for SYSTEM_GDBINIT there. */
@@ -226,28 +225,30 @@ get_init_files (const char **system_gdbinit,
{
/* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
to gdb_datadir. */
- char *tmp_sys_gdbinit = xstrdup (&SYSTEM_GDBINIT[datadir_len]);
- char *p;
- for (p = tmp_sys_gdbinit; IS_DIR_SEPARATOR (*p); ++p)
- continue;
- relocated_sysgdbinit = concat (gdb_datadir, SLASH_STRING, p,
- (char *) NULL);
- xfree (tmp_sys_gdbinit);
+ size_t start = datadir_len;
+ for (; IS_DIR_SEPARATOR (SYSTEM_GDBINIT[start]); ++start)
+ ;
+ relocated_sysgdbinit = (std::string (gdb_datadir) + SLASH_STRING
+ + &SYSTEM_GDBINIT[start]);
}
else
{
- relocated_sysgdbinit = relocate_path (gdb_program_name,
- SYSTEM_GDBINIT,
- SYSTEM_GDBINIT_RELOCATABLE);
+ char *relocated = relocate_path (gdb_program_name,
+ SYSTEM_GDBINIT,
+ SYSTEM_GDBINIT_RELOCATABLE);
+ if (relocated != nullptr)
+ {
+ relocated_sysgdbinit = relocated;
+ xfree (relocated);
+ }
}
- if (relocated_sysgdbinit && stat (relocated_sysgdbinit, &s) == 0)
+ if (!relocated_sysgdbinit.empty ()
+ && stat (relocated_sysgdbinit.c_str (), &s) == 0)
sysgdbinit = relocated_sysgdbinit;
- else
- xfree (relocated_sysgdbinit);
}
- homedir = getenv ("HOME");
+ const char *homedir = getenv ("HOME");
/* If the .gdbinit file in the current directory is the same as
the $HOME/.gdbinit file, it should not be sourced. homebuf
@@ -260,17 +261,16 @@ get_init_files (const char **system_gdbinit,
if (homedir)
{
- homeinit = xstrprintf ("%s/%s", homedir, GDBINIT);
- if (stat (homeinit, &homebuf) != 0)
+ homeinit = std::string (homedir) + SLASH_STRING + GDBINIT;
+ if (stat (homeinit.c_str (), &homebuf) != 0)
{
- xfree (homeinit);
- homeinit = NULL;
+ homeinit = "";
}
}
if (stat (GDBINIT, &cwdbuf) == 0)
{
- if (!homeinit
+ if (homeinit.empty ()
|| memcmp ((char *) &homebuf, (char *) &cwdbuf,
sizeof (struct stat)))
localinit = GDBINIT;
@@ -470,11 +470,6 @@ captured_main_1 (struct captured_main_args *context)
/* All arguments of --directory option. */
std::vector<char *> dirarg;
- /* gdb init files. */
- const char *system_gdbinit;
- const char *home_gdbinit;
- const char *local_gdbinit;
-
int i;
int save_auto_load;
int ret = 1;
@@ -908,6 +903,9 @@ captured_main_1 (struct captured_main_args *context)
/* Lookup gdbinit files. Note that the gdbinit file name may be
overriden during file initialization, so get_init_files should be
called after gdb_init. */
+ std::string system_gdbinit;
+ std::string home_gdbinit;
+ std::string local_gdbinit;
get_init_files (&system_gdbinit, &home_gdbinit, &local_gdbinit);
/* Do these (and anything which might call wrap_here or *_filtered)
@@ -984,16 +982,16 @@ captured_main_1 (struct captured_main_args *context)
This is done *before* all the command line arguments are
processed; it sets global parameters, which are independent of
what file you are debugging or what directory you are in. */
- if (system_gdbinit && !inhibit_gdbinit)
- ret = catch_command_errors (source_script, system_gdbinit, 0);
+ if (!system_gdbinit.empty () && !inhibit_gdbinit)
+ ret = catch_command_errors (source_script, system_gdbinit.c_str (), 0);
/* Read and execute $HOME/.gdbinit file, if it exists. This is done
*before* all the command line arguments are processed; it sets
global parameters, which are independent of what file you are
debugging or what directory you are in. */
- if (home_gdbinit && !inhibit_gdbinit && !inhibit_home_gdbinit)
- ret = catch_command_errors (source_script, home_gdbinit, 0);
+ if (!home_gdbinit.empty () && !inhibit_gdbinit && !inhibit_home_gdbinit)
+ ret = catch_command_errors (source_script, home_gdbinit.c_str (), 0);
/* Process '-ix' and '-iex' options early. */
for (i = 0; i < cmdarg_vec.size (); i++)
@@ -1096,20 +1094,20 @@ captured_main_1 (struct captured_main_args *context)
/* Read the .gdbinit file in the current directory, *if* it isn't
the same as the $HOME/.gdbinit file (it should exist, also). */
- if (local_gdbinit)
+ if (!local_gdbinit.empty ())
{
auto_load_local_gdbinit_pathname
- = gdb_realpath (local_gdbinit).release ();
+ = gdb_realpath (local_gdbinit.c_str ()).release ();
if (!inhibit_gdbinit && auto_load_local_gdbinit
- && file_is_auto_load_safe (local_gdbinit,
+ && file_is_auto_load_safe (local_gdbinit.c_str (),
_("auto-load: Loading .gdbinit "
"file \"%s\".\n"),
- local_gdbinit))
+ local_gdbinit.c_str ()))
{
auto_load_local_gdbinit_loaded = 1;
- ret = catch_command_errors (source_script, local_gdbinit, 0);
+ ret = catch_command_errors (source_script, local_gdbinit.c_str (), 0);
}
}
@@ -1203,9 +1201,9 @@ gdb_main (struct captured_main_args *args)
static void
print_gdb_help (struct ui_file *stream)
{
- const char *system_gdbinit;
- const char *home_gdbinit;
- const char *local_gdbinit;
+ std::string system_gdbinit;
+ std::string home_gdbinit;
+ std::string local_gdbinit;
get_init_files (&system_gdbinit, &home_gdbinit, &local_gdbinit);
@@ -1283,18 +1281,18 @@ Other options:\n\n\
fputs_unfiltered (_("\n\
At startup, GDB reads the following init files and executes their commands:\n\
"), stream);
- if (system_gdbinit)
+ if (!system_gdbinit.empty ())
fprintf_unfiltered (stream, _("\
* system-wide init file: %s\n\
-"), system_gdbinit);
- if (home_gdbinit)
+"), system_gdbinit.c_str ());
+ if (!home_gdbinit.empty ())
fprintf_unfiltered (stream, _("\
* user-specific init file: %s\n\
-"), home_gdbinit);
- if (local_gdbinit)
+"), home_gdbinit.c_str ());
+ if (!local_gdbinit.empty ())
fprintf_unfiltered (stream, _("\
* local init file (see also 'set auto-load local-gdbinit'): ./%s\n\
-"), local_gdbinit);
+"), local_gdbinit.c_str ());
fputs_unfiltered (_("\n\
For more information, type \"help\" from within GDB, or consult the\n\
GDB manual (available as on-line info or a printed manual).\n\
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-11 22:11 [binutils-gdb] Refactor get_init_files to use std::string gdb-buildbot
@ 2019-09-11 22:05 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 22:05 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/45
Author:
Christian Biesinger <cbiesinger@google.com>
Commit tested:
f48cd8368bf45b40547237939af3ab6b47dc7b01
Subject of commit:
Refactor get_init_files to use std::string
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f4/f48cd8368bf45b40547237939af3ab6b47dc7b01/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.gdb/unittest.exp: maintenance check xml-descriptions ${srcdir}/../features
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: get integer valueof "mypid"
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f4/f48cd8368bf45b40547237939af3ab6b47dc7b01//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f4/f48cd8368bf45b40547237939af3ab6b47dc7b01//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Factor out the code to do the datadir-relocation for gdbinit
@ 2019-09-11 23:24 gdb-buildbot
2019-09-11 23:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-11 23:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9224a01377868604ce4a7eb9c0d97736f7349dcd ***
commit 9224a01377868604ce4a7eb9c0d97736f7349dcd
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 20 16:38:29 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:30:00 2019 -0500
Factor out the code to do the datadir-relocation for gdbinit
This simplifies get_init_files and makes it possible to reuse
this code in an upcoming patch for SYSTEM_GDBINIT_DIR.
gdb/ChangeLog:
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
out of get_init_files.
(get_init_files): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 27eae1d400..91b860c78a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-11 Christian Biesinger <cbiesinger@google.com>
+
+ * main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
+ out of get_init_files.
+ (get_init_files): Update.
+
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* main.c (get_init_files): Change to use std::string.
diff --git a/gdb/main.c b/gdb/main.c
index e32ed62270..9e22889590 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -191,6 +191,47 @@ relocate_gdb_directory (const char *initial, bool relocatable)
return dir;
}
+/* Given a gdbinit path in FILE, adjusts it according to the gdb_datadir
+ parameter if it is in the data dir, or passes it through relocate_path
+ otherwise. */
+
+static std::string
+relocate_gdbinit_path_maybe_in_datadir (const std::string& file)
+{
+ size_t datadir_len = strlen (GDB_DATADIR);
+
+ std::string relocated_path;
+
+ /* If SYSTEM_GDBINIT lives in data-directory, and data-directory
+ has been provided, search for SYSTEM_GDBINIT there. */
+ if (gdb_datadir_provided
+ && datadir_len < file.length ()
+ && filename_ncmp (file.c_str (), GDB_DATADIR, datadir_len) == 0
+ && IS_DIR_SEPARATOR (file[datadir_len]))
+ {
+ /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
+ to gdb_datadir. */
+
+ size_t start = datadir_len;
+ for (; IS_DIR_SEPARATOR (file[start]); ++start)
+ ;
+ relocated_path = (std::string (gdb_datadir) + SLASH_STRING
+ + file.substr (start));
+ }
+ else
+ {
+ char *relocated = relocate_path (gdb_program_name,
+ file.c_str (),
+ SYSTEM_GDBINIT_RELOCATABLE);
+ if (relocated != nullptr)
+ {
+ relocated_path = relocated;
+ xfree (relocated);
+ }
+ }
+ return relocated_path;
+}
+
/* Compute the locations of init files that GDB should source and
return them in SYSTEM_GDBINIT, HOME_GDBINIT, LOCAL_GDBINIT. If
there is no system gdbinit (resp. home gdbinit and local gdbinit)
@@ -212,37 +253,8 @@ get_init_files (std::string *system_gdbinit,
if (SYSTEM_GDBINIT[0])
{
- size_t datadir_len = strlen (GDB_DATADIR);
- size_t sys_gdbinit_len = strlen (SYSTEM_GDBINIT);
- std::string relocated_sysgdbinit;
-
- /* If SYSTEM_GDBINIT lives in data-directory, and data-directory
- has been provided, search for SYSTEM_GDBINIT there. */
- if (gdb_datadir_provided
- && datadir_len < sys_gdbinit_len
- && filename_ncmp (SYSTEM_GDBINIT, GDB_DATADIR, datadir_len) == 0
- && IS_DIR_SEPARATOR (SYSTEM_GDBINIT[datadir_len]))
- {
- /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
- to gdb_datadir. */
-
- size_t start = datadir_len;
- for (; IS_DIR_SEPARATOR (SYSTEM_GDBINIT[start]); ++start)
- ;
- relocated_sysgdbinit = (std::string (gdb_datadir) + SLASH_STRING
- + &SYSTEM_GDBINIT[start]);
- }
- else
- {
- char *relocated = relocate_path (gdb_program_name,
- SYSTEM_GDBINIT,
- SYSTEM_GDBINIT_RELOCATABLE);
- if (relocated != nullptr)
- {
- relocated_sysgdbinit = relocated;
- xfree (relocated);
- }
- }
+ std::string relocated_sysgdbinit
+ = relocate_gdbinit_path_maybe_in_datadir (SYSTEM_GDBINIT);
if (!relocated_sysgdbinit.empty ()
&& stat (relocated_sysgdbinit.c_str (), &s) == 0)
sysgdbinit = relocated_sysgdbinit;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make relocate_{path,gdb_directory} return std::string
@ 2019-09-12 0:41 gdb-buildbot
2019-09-12 0:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-12 0:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f2aec7f6d149c8a534e8246b0d3a50038864fa2d ***
commit f2aec7f6d149c8a534e8246b0d3a50038864fa2d
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Mon Sep 9 12:55:39 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 11 16:31:36 2019 -0500
Make relocate_{path,gdb_directory} return std::string
This simplifies memory management. I've also changed some global variables
to std::string accordingly (which store the result of these functions),
but not all because some are used with add_setshow_optional_filename_cmd
which requires a char*.
gdb/ChangeLog:
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* auto-load.c (auto_load_expand_dir_vars): Update.
* defs.h (gdb_datadir): Change to std::string.
(python_libdir): Likewise.
(relocate_gdb_directory): Change return type to std::string.
* guile/guile.c (gdbscm_data_directory): Update.
(initialize_scheme_side): Update.
* jit.c (jit_reader_dir): Change to std::string.
(jit_reader_load_command): Update.
* main.c (gdb_datadir): Change to std::string.
(python_libdir): Likewise.
(set_gdb_data_directory): Update.
(relocate_path): Change to return std::string.
(relocate_gdb_directory): Change to return std::string.
(relocate_gdbinit_path_maybe_in_datadir): Update.
(captured_main_1): Update.
* python/python.c (do_start_initialization): Update.
* top.c (show_gdb_datadir): Update.
* xml-syscall.c (xml_init_syscalls_info): Update.
(init_syscalls_info): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 91b860c78a..4c354700c4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,25 @@
+2019-09-11 Christian Biesinger <cbiesinger@google.com>
+
+ * auto-load.c (auto_load_expand_dir_vars): Update.
+ * defs.h (gdb_datadir): Change to std::string.
+ (python_libdir): Likewise.
+ (relocate_gdb_directory): Change return type to std::string.
+ * guile/guile.c (gdbscm_data_directory): Update.
+ (initialize_scheme_side): Update.
+ * jit.c (jit_reader_dir): Change to std::string.
+ (jit_reader_load_command): Update.
+ * main.c (gdb_datadir): Change to std::string.
+ (python_libdir): Likewise.
+ (set_gdb_data_directory): Update.
+ (relocate_path): Change to return std::string.
+ (relocate_gdb_directory): Change to return std::string.
+ (relocate_gdbinit_path_maybe_in_datadir): Update.
+ (captured_main_1): Update.
+ * python/python.c (do_start_initialization): Update.
+ * top.c (show_gdb_datadir): Update.
+ * xml-syscall.c (xml_init_syscalls_info): Update.
+ (init_syscalls_info): Update.
+
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* main.c (relocate_gdbinit_path_maybe_in_datadir): Factor this code
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 616aeb6fc9..115d5c10e8 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -178,7 +178,7 @@ static std::vector<gdb::unique_xmalloc_ptr<char>>
auto_load_expand_dir_vars (const char *string)
{
char *s = xstrdup (string);
- substitute_path_component (&s, "$datadir", gdb_datadir);
+ substitute_path_component (&s, "$datadir", gdb_datadir.c_str ());
substitute_path_component (&s, "$debugdir", debug_file_directory);
if (debug_auto_load && strcmp (s, string) != 0)
diff --git a/gdb/defs.h b/gdb/defs.h
index 14e0a3e1d1..c9a38b60a6 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -115,11 +115,11 @@ extern int dbx_commands;
extern char *gdb_sysroot;
/* * GDB datadir, used to store data files. */
-extern char *gdb_datadir;
+extern std::string gdb_datadir;
-/* * If non-NULL, the possibly relocated path to python's "lib" directory
+/* * If not empty, the possibly relocated path to python's "lib" directory
specified with --with-python. */
-extern char *python_libdir;
+extern std::string python_libdir;
/* * Search path for separate debug files. */
extern char *debug_file_directory;
@@ -282,7 +282,7 @@ struct value;
/* This really belong in utils.c (path-utils.c?), but it references some
globals that are currently only available to main.c. */
-extern char *relocate_gdb_directory (const char *initial, bool relocatable);
+extern std::string relocate_gdb_directory (const char *initial, bool relocatable);
\f
/* Annotation stuff. */
diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c
index 39bec8724f..defe554f76 100644
--- a/gdb/guile/guile.c
+++ b/gdb/guile/guile.c
@@ -325,7 +325,7 @@ gdbscm_execute_gdb_command (SCM command_scm, SCM rest)
static SCM
gdbscm_data_directory (void)
{
- return gdbscm_scm_from_c_string (gdb_datadir);
+ return gdbscm_scm_from_c_string (gdb_datadir.c_str ());
}
/* (guile-data-directory) -> string */
@@ -582,7 +582,8 @@ initialize_scheme_side (void)
{
char *boot_scm_path;
- guile_datadir = concat (gdb_datadir, SLASH_STRING, "guile", (char *) NULL);
+ guile_datadir = concat (gdb_datadir.c_str (), SLASH_STRING, "guile",
+ (char *) NULL);
boot_scm_path = concat (guile_datadir, SLASH_STRING, "gdb",
SLASH_STRING, boot_scm_filename, (char *) NULL);
diff --git a/gdb/jit.c b/gdb/jit.c
index 5fef03700c..4722d6c6ce 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -42,7 +42,7 @@
#include "readline/tilde.h"
#include "completer.h"
-static const char *jit_reader_dir = NULL;
+static std::string jit_reader_dir;
static const struct objfile_data *jit_objfile_data;
@@ -216,7 +216,7 @@ jit_reader_load_command (const char *args, int from_tty)
error (_("JIT reader already loaded. Run jit-reader-unload first."));
if (!IS_ABSOLUTE_PATH (file.get ()))
- file.reset (xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING,
+ file.reset (xstrprintf ("%s%s%s", jit_reader_dir.c_str (), SLASH_STRING,
file.get ()));
loaded_jit_reader = jit_reader_load (file.get ());
diff --git a/gdb/main.c b/gdb/main.c
index 9e22889590..6b75fced23 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -61,7 +61,7 @@ int dbx_commands = 0;
char *gdb_sysroot = 0;
/* GDB datadir, used to store data files. */
-char *gdb_datadir = 0;
+std::string gdb_datadir;
/* Non-zero if GDB_DATADIR was provided on the command line.
This doesn't track whether data-directory is set later from the
@@ -70,7 +70,7 @@ static int gdb_datadir_provided = 0;
/* If gdb was configured with --with-python=/path,
the possibly relocated path to python's lib directory. */
-char *python_libdir = 0;
+std::string python_libdir;
/* Target IO streams. */
struct ui_file *gdb_stdtargin;
@@ -121,71 +121,70 @@ set_gdb_data_directory (const char *new_datadir)
else if (!S_ISDIR (st.st_mode))
warning (_("%s is not a directory."), new_datadir);
- xfree (gdb_datadir);
- gdb_datadir = gdb_realpath (new_datadir).release ();
+ gdb_datadir = gdb_realpath (new_datadir).get ();
/* gdb_realpath won't return an absolute path if the path doesn't exist,
but we still want to record an absolute path here. If the user entered
"../foo" and "../foo" doesn't exist then we'll record $(pwd)/../foo which
isn't canonical, but that's ok. */
- if (!IS_ABSOLUTE_PATH (gdb_datadir))
+ if (!IS_ABSOLUTE_PATH (gdb_datadir.c_str ()))
{
- gdb::unique_xmalloc_ptr<char> abs_datadir = gdb_abspath (gdb_datadir);
+ gdb::unique_xmalloc_ptr<char> abs_datadir
+ = gdb_abspath (gdb_datadir.c_str ());
- xfree (gdb_datadir);
- gdb_datadir = abs_datadir.release ();
+ gdb_datadir = abs_datadir.get ();
}
}
/* Relocate a file or directory. PROGNAME is the name by which gdb
was invoked (i.e., argv[0]). INITIAL is the default value for the
file or directory. RELOCATABLE is true if the value is relocatable,
- false otherwise. Returns a newly allocated string; this may return
- NULL under the same conditions as make_relative_prefix. */
+ false otherwise. This may return an empty string under the same
+ conditions as make_relative_prefix returning NULL. */
-static char *
+static std::string
relocate_path (const char *progname, const char *initial, bool relocatable)
{
if (relocatable)
- return make_relative_prefix (progname, BINDIR, initial);
- return xstrdup (initial);
+ {
+ gdb::unique_xmalloc_ptr<char> str (make_relative_prefix (progname,
+ BINDIR,
+ initial));
+ if (str != nullptr)
+ return str.get ();
+ return std::string ();
+ }
+ return initial;
}
/* Like relocate_path, but specifically checks for a directory.
INITIAL is relocated according to the rules of relocate_path. If
the result is a directory, it is used; otherwise, INITIAL is used.
- The chosen directory is then canonicalized using lrealpath. This
- function always returns a newly-allocated string. */
+ The chosen directory is then canonicalized using lrealpath. */
-char *
+std::string
relocate_gdb_directory (const char *initial, bool relocatable)
{
- char *dir;
-
- dir = relocate_path (gdb_program_name, initial, relocatable);
- if (dir)
+ std::string dir = relocate_path (gdb_program_name, initial, relocatable);
+ if (!dir.empty ())
{
struct stat s;
- if (*dir == '\0' || stat (dir, &s) != 0 || !S_ISDIR (s.st_mode))
+ if (stat (dir.c_str (), &s) != 0 || !S_ISDIR (s.st_mode))
{
- xfree (dir);
- dir = NULL;
+ dir.clear ();
}
}
- if (!dir)
- dir = xstrdup (initial);
+ if (dir.empty ())
+ dir = initial;
/* Canonicalize the directory. */
- if (*dir)
+ if (!dir.empty ())
{
- char *canon_sysroot = lrealpath (dir);
+ gdb::unique_xmalloc_ptr<char> canon_sysroot (lrealpath (dir.c_str ()));
if (canon_sysroot)
- {
- xfree (dir);
- dir = canon_sysroot;
- }
+ dir = canon_sysroot.get ();
}
return dir;
@@ -220,14 +219,9 @@ relocate_gdbinit_path_maybe_in_datadir (const std::string& file)
}
else
{
- char *relocated = relocate_path (gdb_program_name,
- file.c_str (),
- SYSTEM_GDBINIT_RELOCATABLE);
- if (relocated != nullptr)
- {
- relocated_path = relocated;
- xfree (relocated);
- }
+ relocated_path = relocate_path (gdb_program_name,
+ file.c_str (),
+ SYSTEM_GDBINIT_RELOCATABLE);
}
return relocated_path;
}
@@ -541,20 +535,23 @@ captured_main_1 (struct captured_main_args *context)
perror_warning_with_name (_("error finding working directory"));
/* Set the sysroot path. */
- gdb_sysroot = relocate_gdb_directory (TARGET_SYSTEM_ROOT,
- TARGET_SYSTEM_ROOT_RELOCATABLE);
+ gdb_sysroot
+ = xstrdup (relocate_gdb_directory (TARGET_SYSTEM_ROOT,
+ TARGET_SYSTEM_ROOT_RELOCATABLE).c_str ());
- if (gdb_sysroot == NULL || *gdb_sysroot == '\0')
+ if (*gdb_sysroot == '\0')
{
xfree (gdb_sysroot);
gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX);
}
- debug_file_directory = relocate_gdb_directory (DEBUGDIR,
- DEBUGDIR_RELOCATABLE);
+ debug_file_directory
+ = xstrdup (relocate_gdb_directory (DEBUGDIR,
+ DEBUGDIR_RELOCATABLE).c_str ());
- gdb_datadir = relocate_gdb_directory (GDB_DATADIR,
- GDB_DATADIR_RELOCATABLE);
+ gdb_datadir
+ = xstrdup (relocate_gdb_directory (GDB_DATADIR,
+ GDB_DATADIR_RELOCATABLE).c_str ());
#ifdef WITH_PYTHON_PATH
{
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 9c49151db3..9c8c635f72 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1608,7 +1608,7 @@ do_start_initialization ()
/foo/lib/pythonX.Y/...
This must be done before calling Py_Initialize. */
gdb::unique_xmalloc_ptr<char> progname
- (concat (ldirname (python_libdir).c_str (), SLASH_STRING, "bin",
+ (concat (ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin",
SLASH_STRING, "python", (char *) NULL));
#ifdef IS_PY3K
std::string oldloc = setlocale (LC_ALL, NULL);
diff --git a/gdb/top.c b/gdb/top.c
index 9d4ce1fa3b..2b53640af0 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -2038,7 +2038,7 @@ show_gdb_datadir (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
fprintf_filtered (file, _("GDB's data directory is \"%s\".\n"),
- gdb_datadir);
+ gdb_datadir.c_str ());
}
static void
diff --git a/gdb/xml-syscall.c b/gdb/xml-syscall.c
index d144f82fbf..dc988dfae8 100644
--- a/gdb/xml-syscall.c
+++ b/gdb/xml-syscall.c
@@ -316,7 +316,8 @@ static struct syscalls_info *
xml_init_syscalls_info (const char *filename)
{
gdb::optional<gdb::char_vector> full_file
- = xml_fetch_content_from_file (filename, gdb_datadir);
+ = xml_fetch_content_from_file (filename,
+ const_cast<char *>(gdb_datadir.c_str ()));
if (!full_file)
return NULL;
@@ -336,7 +337,7 @@ init_syscalls_info (struct gdbarch *gdbarch)
/* Should we re-read the XML info for this target? */
if (syscalls_info != NULL && !syscalls_info->my_gdb_datadir.empty ()
&& filename_cmp (syscalls_info->my_gdb_datadir.c_str (),
- gdb_datadir) != 0)
+ gdb_datadir.c_str ()) != 0)
{
/* The data-directory changed from the last time we used it.
It means that we have to re-read the XML info. */
@@ -361,7 +362,7 @@ init_syscalls_info (struct gdbarch *gdbarch)
{
if (xml_syscall_file != NULL)
warning (_("Could not load the syscall XML file `%s/%s'."),
- gdb_datadir, xml_syscall_file);
+ gdb_datadir.c_str (), xml_syscall_file);
else
warning (_("There is no XML file to open."));
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix signals reported for faults on Solaris
@ 2019-09-12 9:22 gdb-buildbot
2019-09-12 9:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-12 9:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a28970742a8a1509917d409af14c84e1f666baa ***
commit 7a28970742a8a1509917d409af14c84e1f666baa
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
AuthorDate: Thu Sep 12 10:40:59 2019 +0200
Commit: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
CommitDate: Thu Sep 12 10:40:59 2019 +0200
Fix signals reported for faults on Solaris
It's been a long-standing nuisance that gdb reported unaligned accesses
on Solaris/SPARC as SIGSEGV, contrary to the shells and truss which
correctly report SIGBUS instead.
I could trace this down to the fault handling code in procfs.c
(procfs_target::wait): when pr_why is set to PR_FAULTED, the current
code sets the signal based on the fault number. For one, the code gets
this wrong for FLTACCESS (the unaligned access case) where it uses
SIGSEGV. What's worse, it's completely unnecessary to make up the
signal number inside gdb. Instead, it should just take what procfs
reports to avoid mismatches, which is what this patch does. I've
completely removed the explicit handling of the various fault codes: for
one, the list has already been incomplete, lacking FLTCPCOVF which
existed since at least Solaris 8. Besides, there's no reason to error
out on unknown fault codes: either the fault causes a signal which can
then be reported from procfs, or it doesn't (as for FLTPAGE) and no
reporting is necessary.
Tested on sparcv9-sun-solaris2.11 and x86_64-pc-solaris2.11. Also
spot-checked manually for a couple of cases (unaligned access, division
by 0, NULL pointer dereference).
* procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
prstatus.pr_lwp.pr_info instead of making it up.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4c354700c4..6d5f19d04b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
+ prstatus.pr_lwp.pr_info instead of making it up.
+
2019-09-11 Christian Biesinger <cbiesinger@google.com>
* auto-load.c (auto_load_expand_dir_vars): Update.
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 5bc1c3b28a..848ac7d6e7 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -2476,40 +2476,12 @@ wait_again:
wstat = (what << 8) | 0177;
break;
case PR_FAULTED:
- switch (what) {
- case FLTWATCH:
- wstat = (SIGTRAP << 8) | 0177;
- break;
- /* FIXME: use si_signo where possible. */
- case FLTPRIV:
- case FLTILL:
- wstat = (SIGILL << 8) | 0177;
- break;
- case FLTBPT:
- case FLTTRACE:
- wstat = (SIGTRAP << 8) | 0177;
- break;
- case FLTSTACK:
- case FLTACCESS:
- case FLTBOUNDS:
- wstat = (SIGSEGV << 8) | 0177;
- break;
- case FLTIOVF:
- case FLTIZDIV:
- case FLTFPE:
- wstat = (SIGFPE << 8) | 0177;
- break;
- case FLTPAGE: /* Recoverable page fault */
- default: /* FIXME: use si_signo if possible for
- fault. */
- retval = ptid_t (-1);
- printf_filtered ("procfs:%d -- ", __LINE__);
- printf_filtered (_("child stopped for unknown reason:\n"));
- proc_prettyprint_why (why, what, 1);
- error (_("... giving up..."));
- break;
+ {
+ int signo = pi->prstatus.pr_lwp.pr_info.si_signo;
+ if (signo != 0)
+ wstat = (signo << 8) | 0177;
}
- break; /* case PR_FAULTED: */
+ break;
default: /* switch (why) unmatched */
printf_filtered ("procfs:%d -- ", __LINE__);
printf_filtered (_("child stopped for unknown reason:\n"));
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Output the Ada task name in more messages.
@ 2019-09-12 20:58 gdb-buildbot
2019-09-12 20:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-12 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4993045d18d69ecee41ca341cde6bbed220dc8a4 ***
commit 4993045d18d69ecee41ca341cde6bbed220dc8a4
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
AuthorDate: Sat Jun 8 19:47:51 2019 +0200
Commit: Philippe Waroquiers <philippe.waroquiers@skynet.be>
CommitDate: Thu Sep 12 21:57:10 2019 +0200
Output the Ada task name in more messages.
With this patch, we e.g. get:
[Switching to task 2 "task_list(1)"]
[Current task is 2 "task_list(1)"]
instead of
[Switching to task 2]
[Current task is 2]
The logic to produce the taskno optionally followed
by the task name has been factorized in the task_to_str function.
Task names are output between double quotes in the new messages,
similarly to what GDB does for thread names.
However, no quotes are put around task names in 'info tasks' Name column.
This was discussed with Tom, that preferred no quotes there, while I
was more in favour of visual consistency.
I discussed with a few more users, which led to (exactly) 50% preferring
quotes and 50% preferring no quotes :).
To arrive to the decision to remove the quotes, the following "killing args"
were used:
* To have quotes or to not have quotes, that is the question; yes
but not *THE* question :).
* If there is not a clear majority that prefers quotes, better to
not disturb the existing user basis for a (somewhat) irrelevant
aspect.
* The opinion of the reviewer has more weight.
So, compared to the previous version, this version remotes the quotes
in 'info tasks'.
It improves the alignement of 'info tasks' output.
With this patch, we get:
(gdb) info task
ID TID P-ID Pri State Name
* 1 555555759030 48 Runnable main_task
2 555555759e30 1 48 Selective Wait mit
(gdb)
instead of
(gdb) info task
ID TID P-ID Pri State Name
* 1 555555759030 48 Runnable main_task
2 555555759e30 1 48 Selective Wait mit
(gdb)
(e.g. the first one properly shows parent and priority under the
correct header).
This is version 4 of the 'task name' patch.
Compared to version 3, the changes are:
output task names between quotes but not in 'info tasks'
gdb/ChangeLog
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* NEWS: Announce that Ada task names are now shown at more places,
and between quotes (except in info task output).
* gdb/ada-tasks.c (task_to_str): New function.
(display_current_task_id): Call task_to_str.
(task_command_1): Likewise.
(print_ada_task_info): In non-mi mode, Properly align headers and data
when task-id length is > 9 (9 is the default for a 32 bits CORE_ADDR).
gdb/doc/ChangeLog
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.texinfo (Ada Tasks): Tell the task name is printed, update
examples.
gdb/testsuite/ChangeLog
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/rdv_wait.exp: Update to new task names.
* gdb.base/task_switch_in_core.exp: Likewise.
* gdb.base/info_sources_base.c: Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6d5f19d04b..986a701c2f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * NEWS: Announce that Ada task names are now shown at more places,
+ and between quotes (except in info task output).
+ * gdb/ada-tasks.c (task_to_str): New function.
+ (display_current_task_id): Call task_to_str.
+ (task_command_1): Likewise.
+ (print_ada_task_info): In non-mi mode, Properly align headers and data
+ when task-id length is > 9 (9 is the default for a 32 bits CORE_ADDR).
+
2019-09-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* procfs.c (procfs_target::wait) <PR_FAULTED>: Get signal from
diff --git a/gdb/NEWS b/gdb/NEWS
index f382e887c0..d502f08984 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -29,6 +29,9 @@
* The RX port now supports XML target descriptions.
+* GDB now shows the Ada task names at more places, e.g. in task switching
+ messages.
+
* Python API
** The gdb.Value type has a new method 'format_string' which returns a
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 99458aadb2..34da786eb7 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -240,6 +240,18 @@ struct ada_tasks_inferior_data
static const struct inferior_key<ada_tasks_inferior_data>
ada_tasks_inferior_data_handle;
+/* Return a string with TASKNO followed by the task name if TASK_INFO
+ contains a name. */
+
+static std::string
+task_to_str (int taskno, const ada_task_info *task_info)
+{
+ if (task_info->name[0] == '\0')
+ return string_printf ("%d", taskno);
+ else
+ return string_printf ("%d \"%s\"", taskno, task_info->name);
+}
+
/* Return the ada-tasks module's data for the given program space (PSPACE).
If none is found, add a zero'ed one now.
@@ -1047,7 +1059,26 @@ print_ada_task_info (struct ui_out *uiout,
ui_out_emit_table table_emitter (uiout, nb_columns, nb_tasks, "tasks");
uiout->table_header (1, ui_left, "current", "");
uiout->table_header (3, ui_right, "id", "ID");
- uiout->table_header (9, ui_right, "task-id", "TID");
+ {
+ size_t tid_width = 9;
+ /* Grown below in case the largest entry is bigger. */
+
+ if (!uiout->is_mi_like_p ())
+ {
+ for (taskno = 1; taskno <= data->task_list.size (); taskno++)
+ {
+ const struct ada_task_info *const task_info
+ = &data->task_list[taskno - 1];
+
+ gdb_assert (task_info != NULL);
+
+ tid_width = std::max (tid_width,
+ 1 + strlen (phex_nz (task_info->task_id,
+ sizeof (CORE_ADDR))));
+ }
+ }
+ uiout->table_header (tid_width, ui_right, "task-id", "TID");
+ }
/* The following column is provided in GDB/MI mode only because
it is only really useful in that mode, and also because it
allows us to keep the CLI output shorter and more compact. */
@@ -1129,10 +1160,12 @@ print_ada_task_info (struct ui_out *uiout,
else
uiout->field_string ("state", task_states[task_info->state]);
- /* Finally, print the task name. */
+ /* Finally, print the task name, without quotes around it, as mi like
+ is not expecting quotes, and in non mi-like no need for quotes
+ as there is a specific column for the name. */
uiout->field_string ("name",
- task_info->name[0] != '\0' ? task_info->name
- : _("<no name>"));
+ task_info->name[0] != '\0' ? task_info->name
+ : _("<no name>"));
uiout->text ("\n");
}
@@ -1166,7 +1199,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
/* Print the name of the task. */
if (task_info->name[0] != '\0')
- printf_filtered (_("Name: %s\n"), task_info->name);
+ printf_filtered (_("Name: \"%s\"\n"), task_info->name);
else
printf_filtered (_("<no name>\n"));
@@ -1187,7 +1220,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
printf_filtered (_("Parent: %d"), parent_taskno);
if (parent->name[0] != '\0')
- printf_filtered (" (%s)", parent->name);
+ printf_filtered (" (\"%s\")", parent->name);
printf_filtered ("\n");
}
else
@@ -1220,7 +1253,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
ada_task_info *target_task_info = &data->task_list[target_taskno - 1];
if (target_task_info->name[0] != '\0')
- printf_filtered (" (%s)", target_task_info->name);
+ printf_filtered (" (\"%s\")", target_task_info->name);
}
printf_filtered ("\n");
@@ -1255,7 +1288,14 @@ display_current_task_id (void)
if (current_task == 0)
printf_filtered (_("[Current task is unknown]\n"));
else
- printf_filtered (_("[Current task is %d]\n"), current_task);
+ {
+ struct ada_tasks_inferior_data *data
+ = get_ada_tasks_inferior_data (current_inferior ());
+ struct ada_task_info *task_info = &data->task_list[current_task - 1];
+
+ printf_filtered (_("[Current task is %s]\n"),
+ task_to_str (current_task, task_info).c_str ());
+ }
}
/* Parse and evaluate TIDSTR into a task id, and try to switch to
@@ -1274,7 +1314,8 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
task_info = &data->task_list[taskno - 1];
if (!ada_task_is_alive (task_info))
- error (_("Cannot switch to task %d: Task is no longer running"), taskno);
+ error (_("Cannot switch to task %s: Task is no longer running"),
+ task_to_str (taskno, task_info).c_str ());
/* On some platforms, the thread list is not updated until the user
performs a thread-related operation (by using the "info threads"
@@ -1295,13 +1336,14 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
it's nicer for the user to just refuse to perform the task switch. */
thread_info *tp = find_thread_ptid (task_info->ptid);
if (tp == NULL)
- error (_("Unable to compute thread ID for task %d.\n"
+ error (_("Unable to compute thread ID for task %s.\n"
"Cannot switch to this task."),
- taskno);
+ task_to_str (taskno, task_info).c_str ());
switch_to_thread (tp);
ada_find_printable_frame (get_selected_frame (NULL));
- printf_filtered (_("[Switching to task %d]\n"), taskno);
+ printf_filtered (_("[Switching to task %s]\n"),
+ task_to_str (taskno, task_info).c_str ());
print_stack_frame (get_selected_frame (NULL),
frame_relative_level (get_selected_frame (NULL)),
SRC_AND_LOC, 1);
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 96c0409197..4705fbc541 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * gdb.texinfo (Ada Tasks): Tell the task name is printed, update
+ examples.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* gdb.texinfo (Index Files): Update Ada text.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 79824a0226..eee0c9d4dd 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -17751,10 +17751,10 @@ the following example:
* 2 807c468 1 15 Runnable task_1
(@value{GDBP}) info task 2
Ada Task: 0x807c468
-Name: task_1
+Name: "task_1"
Thread: 0
LWP: 0x1fac
-Parent: 1 (main_task)
+Parent: 1 ("main_task")
Base Priority: 15
State: Runnable
@end smallexample
@@ -17762,7 +17762,7 @@ State: Runnable
@item task
@kindex task@r{ (Ada)}
@cindex current Ada task ID
-This command prints the ID of the current task.
+This command prints the ID and name of the current task.
@smallexample
@iftex
@@ -17771,9 +17771,9 @@ This command prints the ID of the current task.
(@value{GDBP}) info tasks
ID TID P-ID Pri State Name
1 8077870 0 15 Child Activation Wait main_task
-* 2 807c458 1 15 Runnable t
+* 2 807c458 1 15 Runnable some_task
(@value{GDBP}) task
-[Current task is 2]
+[Current task is 2 "some_task"]
@end smallexample
@item task @var{taskno}
@@ -17789,9 +17789,9 @@ from the current task to the given task.
(@value{GDBP}) info tasks
ID TID P-ID Pri State Name
1 8077870 0 15 Child Activation Wait main_task
-* 2 807c458 1 15 Runnable t
+* 2 807c458 1 15 Runnable some_task
(@value{GDBP}) task 1
-[Switching to task 1]
+[Switching to task 1 "main_task"]
#0 0x8067726 in pthread_cond_wait ()
(@value{GDBP}) bt
#0 0x8067726 in pthread_cond_wait ()
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a51d22ce22..bf3fcc7d84 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
+ * gdb.ada/rdv_wait.exp: Update to new task names.
+ * gdb.base/task_switch_in_core.exp: Likewise.
+ * gdb.base/info_sources_base.c: Likewise.
+
2019-09-10 Tom Tromey <tromey@adacore.com>
* boards/cc-with-tweaks.exp: Set GNATMAKE_FOR_TARGET.
diff --git a/gdb/testsuite/gdb.ada/rdv_wait.exp b/gdb/testsuite/gdb.ada/rdv_wait.exp
index c0c4e29f5f..fe6aec3bcd 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait.exp
+++ b/gdb/testsuite/gdb.ada/rdv_wait.exp
@@ -31,5 +31,5 @@ runto "break_me"
# Switch to task 2, and verify that GDB is able to unwind all the way
# to foo.T.
gdb_test "task 2" \
- [join {"\\\[Switching to task 2\\\].*" \
+ [join {"\\\[Switching to task 2 \"mit\"\\\].*" \
".*foo\\.t \\(.*\\).*foo\\.adb:.*"} ""]
diff --git a/gdb/testsuite/gdb.ada/task_switch_in_core.exp b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
index 4c482834bc..fb9aef2840 100644
--- a/gdb/testsuite/gdb.ada/task_switch_in_core.exp
+++ b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
@@ -71,7 +71,7 @@ gdb_test "info tasks" \
# we will verify right after with an additional test that the current
# task is now task 2.
gdb_test "task 2" \
- "\\\[Switching to task 2\\\].*"
+ "\\\[Switching to task 2 \"my_t\"\\\].*"
gdb_test "info tasks" \
[multi_line "\\s+ID\\s+TID\\s+P-ID\\s+Pri\\s+State\\s+Name" \
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-12 20:58 [binutils-gdb] Output the Ada task name in more messages gdb-buildbot
@ 2019-09-12 20:49 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-12 20:49 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/51
Author:
Philippe Waroquiers <philippe.waroquiers@skynet.be>
Commit tested:
4993045d18d69ecee41ca341cde6bbed220dc8a4
Subject of commit:
Output the Ada task name in more messages.
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/4993045d18d69ecee41ca341cde6bbed220dc8a4/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: other threads ran - unlocked
new KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/4993045d18d69ecee41ca341cde6bbed220dc8a4//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/4993045d18d69ecee41ca341cde6bbed220dc8a4//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
@ 2019-09-12 21:01 gdb-buildbot
2019-09-12 21:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-12 21:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 25e5c20918a0ec69e37c1987db52062b0eab7194 ***
commit 25e5c20918a0ec69e37c1987db52062b0eab7194
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 12 22:36:37 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 12 22:36:37 2019 +0200
[gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
The test-case gdb.base/store.exp fails with gcc 7.4.0:
...
nr of unexpected failures 27
...
The first FAIL:
...
110 l = add_float (l, r);
(gdb) PASS: gdb.base/store.exp: continue to wack_float
print l
$21 = <optimized out>
FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
...
relates to this bit in the test-case (compiled at -O0):
...
106 float
107 wack_float (register float u, register float v)
108 {
109 register float l = u, r = v;
110 l = add_float (l, r);
111 return l + r;
112 }
...
and it expects to be able to read and modify variable l before executing line
110, but it already fails to read the value, because l has no DW_AT_location
attribute in the debug info.
Variable l is declared with the register keyword, and GCC implements the
register keyword at -O0 like so:
...
the compiler allocates distinct stack memory for all variables that do not
have the register storage-class specifier; if register is specified, the
variable may have a shorter lifespan than the code would indicate and may
never be placed in memory.
...
The fact that l has no DW_AT_location attribute, matches with the documented
"variable may have a shorter lifespan that code would indicate", (though it
is the most extreme case of it) so the gcc behaviour is valid. We can of
course improve gcc to generate better debuginfo (filed gcc PR91611), but
this not a wrong-debug problem.
[ The test-case passes with gcc 4.2.1, but for the failing test discussed
above, it passes simply because it doesn't store l in a register. ]
With the debug info missing for l, reading and setting l is unsupported, so
fix the FAIL by marking the test UNSUPPORTED instead.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-12 Tom de Vries <tdevries@suse.de>
* gdb.base/store.exp: Allow register variables to be optimized out at
-O0.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index bf3fcc7d84..7352e9f034 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-12 Tom de Vries <tdevries@suse.de>
+
+ * gdb.base/store.exp: Allow register variables to be optimized out at
+ -O0.
+
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/rdv_wait.exp: Update to new task names.
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index c5a7584101..9c19ce15a7 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -55,18 +55,29 @@ proc check_set { t l r new add } {
}
}
- gdb_test "print l" " = ${l}" \
- "${prefix}; print old l, expecting ${l}"
- gdb_test "print r" " = ${r}" \
- "${prefix}; print old r, expecting ${r}"
- gdb_test_no_output "set variable l = 4" \
- "${prefix}; setting l to 4"
- gdb_test "print l" " = ${new}" \
- "${prefix}; print new l, expecting ${new}"
- gdb_test "next" "return l \\+ r;" \
- "${prefix}; next over add call"
- gdb_test "print l" " = ${add}" \
- "${prefix}; print incremented l, expecting ${add}"
+ set supported 1
+ set test "${prefix}; print old l, expecting ${l}"
+ gdb_test_multiple "print l" "$test" {
+ -re " = <optimized out>\r\n$gdb_prompt $" {
+ unsupported $test
+ set supported 0
+ }
+ -re " = ${l}\r\n$gdb_prompt $" {
+ pass $test
+ }
+ }
+ if { $supported } {
+ gdb_test "print r" " = ${r}" \
+ "${prefix}; print old r, expecting ${r}"
+ gdb_test_no_output "set variable l = 4" \
+ "${prefix}; setting l to 4"
+ gdb_test "print l" " = ${new}" \
+ "${prefix}; print new l, expecting ${new}"
+ gdb_test "next" "return l \\+ r;" \
+ "${prefix}; next over add call"
+ gdb_test "print l" " = ${add}" \
+ "${prefix}; print incremented l, expecting ${add}"
+ }
}
check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
@@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
#
proc up_set { t l r new } {
+ global gdb_prompt
+
set prefix "upvar ${t} l"
gdb_test "tbreak add_${t}"
gdb_test "continue" "return u . v;" \
"continue to add_${t}"
gdb_test "up" "l = add_${t} .l, r.;" \
"${prefix}; up"
- gdb_test "print l" " = ${l}" \
- "${prefix}; print old l, expecting ${l}"
- gdb_test "print r" " = ${r}" \
- "${prefix}; print old r, expecting ${r}"
- gdb_test_no_output "set variable l = 4" \
- "${prefix}; set l to 4"
- gdb_test "print l" " = ${new}" \
- "${prefix}; print new l, expecting ${new}"
+
+ set supported 1
+ set test "${prefix}; print old l, expecting ${l}"
+ gdb_test_multiple "print l" "$test" {
+ -re " = <optimized out>\r\n$gdb_prompt $" {
+ unsupported $test
+ set supported 0
+ }
+ -re " = ${l}\r\n$gdb_prompt $" {
+ pass $test
+ }
+ }
+ if { $supported } {
+ gdb_test "print r" " = ${r}" \
+ "${prefix}; print old r, expecting ${r}"
+ gdb_test_no_output "set variable l = 4" \
+ "${prefix}; set l to 4"
+ gdb_test "print l" " = ${new}" \
+ "${prefix}; print new l, expecting ${new}"
+ }
}
up_set "charest" "-1 .*" "-2 .*" "4 ..004."
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Don't fault for 'maint print psymbols' when using an index
@ 2019-09-13 1:11 gdb-buildbot
2019-09-13 1:08 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-13 1:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3dd9bb462012df685d6d41300dacedae1c81e28a ***
commit 3dd9bb462012df685d6d41300dacedae1c81e28a
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sat Aug 31 21:46:27 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400
gdb: Don't fault for 'maint print psymbols' when using an index
I found that these tests:
make check-gdb RUNTESTFLAGS="--target_board=cc-with-gdb-index gdb.base/maint.exp"
make check-gdb RUNTESTFLAGS="--target_board=cc-with-debug-names gdb.base/maint.exp"
were causing GDB to segfault. It turns out that this test runs this
command:
maint print psymbols -pc main /path/to/some/file
which tries to lookup the partial_symtab for 'main'. The problem is
that there is no partial_symtab for 'main' as we are using the
.gdb_index or .debug_names instead of partial_symtabs.
What happens is that maintenance_print_symbols calls
find_pc_sect_psymtab, which looks for the partial_symtab in the
objfile's objfile->partial_symtabs->psymtabs_addrmap.
This is a problem because when we are using the indexes
psymtabs_addrmap is reused to hold things other than partial_symtabs,
this can be seen in dwarf2read.c in create_addrmap_from_index and
create_addrmap_from_aranges. If we then lookup in psymtabs_addrmap we
end up returning a pointer to something that isn't really a
partial_symtab, after which everything goes wrong.
Initially I simply added a check at the start of find_pc_sect_psymtab
that the objfile had some partial_symtabs, like:
if (objfile->partial_symtabs->psymtabs == NULL)
return NULL;
Figuring that if there were no partial_symtabs at all then this
function should always return NULL, however, this caused a failure in
the test gdb.python/py-event.exp which I didn't dig into too deeply,
but seems to be that in this tests there are initially no psymtabs,
but the second part of find_pc_sect_psymtab does manage to read some
in from somewhere, with the check I added the test fails as we
returned NULL here and this caused GDB to load in the full symtabs
earlier than was expected.
Instead I chose to guard only the access to psymtabs_addrmap with a
check that the function has some psymtabs. This allows my original
tests to pass, and the py-event.exp test to pass too.
Now, a good argument can be made that we simply should never call
find_pc_sect_psymtab on an objfile that is using indexes instead of
partial_symtabs. I did consider this approach, we could easily add an
assert into find_pc_sect_psymtab that if we find a partial_symtab in
psymtabs_addrmap then the psymtabs pointer must be non-null. The
responsibility would then be on the user of find_pc_sect_psymtab to
ensure that the objfile being checked is suitable. In the end I
didn't take this approach as the check in find_pc_sect_psymtab is
cheap and this ensures that any future miss-uses of the function will
not cause problems.
I also extended the comment on psymtabs_addrmap to indicate that it
holds more than just partial_symtabs as this was not at all clear from
the original comment, and caused me some confusion when I was
initially debugging this problem.
gdb/ChangeLog:
* psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
inner scope, add check that the objfile has psymtabs before
checking psymtabs_addrmap.
* psymtab.h (psymtab_storage) <psymtabs_addrmap>: Extend comment.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 986a701c2f..9540c4f120 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
+ inner scope, add check that the objfile has psymtabs before
+ checking psymtabs_addrmap.
+ * psymtab.h (psymtab_storage) <psymtabs_addrmap>: Extend comment.
+
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* NEWS: Announce that Ada task names are now shown at more places,
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index e9cc8c3bc6..031dbd9c1e 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -301,14 +301,24 @@ find_pc_sect_psymtab (struct objfile *objfile, CORE_ADDR pc,
struct obj_section *section,
struct bound_minimal_symbol msymbol)
{
- CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
- SECT_OFF_TEXT (objfile));
-
- /* Try just the PSYMTABS_ADDRMAP mapping first as it has better granularity
- than the later used TEXTLOW/TEXTHIGH one. */
-
- if (objfile->partial_symtabs->psymtabs_addrmap != NULL)
+ /* Try just the PSYMTABS_ADDRMAP mapping first as it has better
+ granularity than the later used TEXTLOW/TEXTHIGH one. However, we need
+ to take care as the PSYMTABS_ADDRMAP can hold things other than partial
+ symtabs in some cases.
+
+ This function should only be called for objfiles that are using partial
+ symtabs, not for objfiles that are using indexes (.gdb_index or
+ .debug_names), however 'maintenance print psymbols' calls this function
+ directly for all objfiles. If we assume that PSYMTABS_ADDRMAP contains
+ partial symtabs then we will end up returning a pointer to an object
+ that is not a partial_symtab, which doesn't end well. */
+
+ if (objfile->partial_symtabs->psymtabs != NULL
+ && objfile->partial_symtabs->psymtabs_addrmap != NULL)
{
+ CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
+ SECT_OFF_TEXT (objfile));
+
struct partial_symtab *pst
= ((struct partial_symtab *)
addrmap_find (objfile->partial_symtabs->psymtabs_addrmap,
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index aed686258d..0ad2b49d9a 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -109,7 +109,11 @@ public:
/* Map addresses to the entries of PSYMTABS. It would be more efficient to
have a map per the whole process but ADDRMAP cannot selectively remove
its items during FREE_OBJFILE. This mapping is already present even for
- PARTIAL_SYMTABs which still have no corresponding full SYMTABs read. */
+ PARTIAL_SYMTABs which still have no corresponding full SYMTABs read.
+
+ The DWARF parser reuses this addrmap to store things other than
+ psymtabs in the cases where debug information is being read from, for
+ example, the .debug-names section. */
struct addrmap *psymtabs_addrmap = nullptr;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Have 'maint info sections' print all sections again
@ 2019-09-13 1:12 gdb-buildbot
2019-09-13 1:32 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-13 1:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aa17805fb9a3a1983a510ba425b682fba03410c2 ***
commit aa17805fb9a3a1983a510ba425b682fba03410c2
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sat Aug 31 23:44:40 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400
gdb: Have 'maint info sections' print all sections again
In this commit:
commit 6eac171f0624303d944ff1a1ae4d0e3b0a63c800
Date: Fri Aug 16 00:25:14 2019 +0200
[gdb] Make maint info sections print relocated addresses
A couple of things broke with the 'maintenance info sections' command,
here is some before output:
(gdb) maintenance info sections
Exec file:
`/path/to/gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
file type elf64-x86-64.
[0] 0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
[1] 0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
[2] 0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
[3] 0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
[4] 0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
[5] 0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
[6] 0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
[7] 0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
[8] 0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
[9] 0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
[10] 0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
[11] 0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
[12] 0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
[13] 0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
[14] 0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
[15] 0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
[16] 0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
[17] 0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
[18] 0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
[19] 0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
[20] 0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
[21] 0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
[22] 0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
[23] 0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
[24] 0x00000000->0x0000002c at 0x0000103c: .comment READONLY HAS_CONTENTS
[25] 0x00000000->0x00000060 at 0x00001068: .debug_aranges READONLY HAS_CONTENTS
[26] 0x00000000->0x0000061b at 0x000010c8: .debug_info READONLY HAS_CONTENTS
[27] 0x00000000->0x00000264 at 0x000016e3: .debug_abbrev READONLY HAS_CONTENTS
[28] 0x00000000->0x000001e6 at 0x00001947: .debug_line READONLY HAS_CONTENTS
[29] 0x00000000->0x00000487 at 0x00001b2d: .debug_str READONLY HAS_CONTENTS
(gdb)
And here is the output after the above commit:
(gdb) maintenance info sections
+maintenance info sections
Exec file:
`/path/to/gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
file type elf64-x86-64.
0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
0x00000000->0x00000000 at 0x00000000: *COM* IS_COMMON
0x00000000->0x00000000 at 0x00000000: *UND*
0x00000000->0x00000000 at 0x00000000: *ABS*
0x00000000->0x00000000 at 0x00000000: *IND*
(gdb)
We lost the section index numbers, but more importantly, we lost the
information about the .debug* sections. We also gained entries for
the "fake" sections *COM*, *UND*, *ABS*, and *IND*.
I noticed this when running:
make check-gdb RUNTESTFLAGS="--target_board=cc-with-gdb-index gdb.base/maint.exp"
As this test relies on looking in the 'maint info sections' output to
see if we have a .debug_names or .gdb_index section, and these are
debug sections so they no longer show up in the 'main info sections'
output, the gdb.base/maint.exp test fails.
This commit restores the old behaviour while keeping the important
change that the above commit introduced, the addresses printed for
sections are the relocated addresses where appropriate. The above
commit mentions using this test:
make check-gdb RUNTESTFLAGS="CFLAGS_FOR_TARGET='-pie' gdb.base/compare-sections.exp"
And this still passes after this commit.
The output for 'maint info sections' now looks like this:
(gdb) maintenance info sections
Exec file:
`/home/andrew/projects/binutils-gdb/build/gdb/testsuite/outputs/gdb.base/maint/maint',
file type elf64-x86-64.
[0] 0x00400238->0x00400254 at 0x00000238: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
[1] 0x00400254->0x00400274 at 0x00000254: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
[2] 0x00400274->0x00400298 at 0x00000274: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
[3] 0x00400298->0x004002bc at 0x00000298: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
[4] 0x004002c0->0x00400380 at 0x000002c0: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
[5] 0x00400380->0x004003e3 at 0x00000380: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
[6] 0x004003e4->0x004003f4 at 0x000003e4: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
[7] 0x004003f8->0x00400418 at 0x000003f8: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
[8] 0x00400418->0x00400460 at 0x00000418: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
[9] 0x00400460->0x004004c0 at 0x00000460: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
[10] 0x004004c0->0x004004d7 at 0x000004c0: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
[11] 0x004004e0->0x00400530 at 0x000004e0: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
[12] 0x00400530->0x00400802 at 0x00000530: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
[13] 0x00400804->0x0040080d at 0x00000804: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
[14] 0x00400810->0x0040084e at 0x00000810: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
[15] 0x00400850->0x004008c4 at 0x00000850: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
[16] 0x004008c8->0x00400ab8 at 0x000008c8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
[17] 0x00600e00->0x00600e08 at 0x00000e00: .init_array ALLOC LOAD DATA HAS_CONTENTS
[18] 0x00600e08->0x00600e10 at 0x00000e08: .fini_array ALLOC LOAD DATA HAS_CONTENTS
[19] 0x00600e10->0x00600ff0 at 0x00000e10: .dynamic ALLOC LOAD DATA HAS_CONTENTS
[20] 0x00600ff0->0x00601000 at 0x00000ff0: .got ALLOC LOAD DATA HAS_CONTENTS
[21] 0x00601000->0x00601038 at 0x00001000: .got.plt ALLOC LOAD DATA HAS_CONTENTS
[22] 0x00601038->0x0060103c at 0x00001038: .data ALLOC LOAD DATA HAS_CONTENTS
[23] 0x00601040->0x006012c8 at 0x0000103c: .bss ALLOC
[24] 0x00000000->0x0000002c at 0x0000103c: .comment READONLY HAS_CONTENTS
[25] 0x00000000->0x00000060 at 0x00001068: .debug_aranges READONLY HAS_CONTENTS
[26] 0x00000000->0x0000061b at 0x000010c8: .debug_info READONLY HAS_CONTENTS
[27] 0x00000000->0x00000264 at 0x000016e3: .debug_abbrev READONLY HAS_CONTENTS
[28] 0x00000000->0x000001e6 at 0x00001947: .debug_line READONLY HAS_CONTENTS
[29] 0x00000000->0x00000487 at 0x00001b2d: .debug_str READONLY HAS_CONTENTS
(gdb)
This is basically as it was before, except that the index numbers are
now padded so the section information all lines up.
When GDB has relocated a section then the relocated addresses will be
printed, otherwise the non-relocated addresses from the bfd will be
printed.
I've added a test to gdb.base/maint.exp to do some basic validation of
the output format.
gdb/ChangeLog:
* maint.c: Add 'cmath' include.
(struct maint_print_section_data): New structure.
(print_section_index): New function.
(print_bfd_section_info): Add header comment, small whitespace
cleanup, and update to call new print_section_index function.
(print_objfile_section_info): Likewise.
(maint_obj_section_from_bfd_section): New function.
(print_bfd_section_info_maybe_relocated): New function.
(maintenance_info_sections): Add header comment, always use
bfd_map_over_sections instead of ALL_OBJFILE_OSECTIONS.
gdb/testsuite/ChangeLog:
* gdb.base/maint.exp: Add test for 'maint info sections'.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9540c4f120..4158161393 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * maint.c: Add 'cmath' include.
+ (struct maint_print_section_data): New structure.
+ (print_section_index): New function.
+ (print_bfd_section_info): Add header comment, small whitespace
+ cleanup, and update to call new print_section_index function.
+ (print_objfile_section_info): Likewise.
+ (maint_obj_section_from_bfd_section): New function.
+ (print_bfd_section_info_maybe_relocated): New function.
+ (maintenance_info_sections): Add header comment, always use
+ bfd_map_over_sections instead of ALL_OBJFILE_OSECTIONS.
+
2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
* psymtab.c (find_pc_sect_psymtab): Move baseaddr local into more
diff --git a/gdb/maint.c b/gdb/maint.c
index 837ed23cfb..286ec31013 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -23,6 +23,7 @@
#include "defs.h"
#include "arch-utils.h"
#include <ctype.h>
+#include <cmath>
#include <signal.h>
#include "command.h"
#include "gdbcmd.h"
@@ -276,14 +277,68 @@ maint_print_section_info (const char *name, flagword flags,
printf_filtered ("\n");
}
+/* Information passed between the "maintenance info sections" command, and
+ the worker function that prints each section. */
+struct maint_print_section_data
+{
+ /* The GDB objfile we're printing this section for. */
+ struct objfile *objfile;
+
+ /* The argument string passed by the user to the top level maintenance
+ info sections command. Used for filtering which sections are
+ printed. */
+ const char *arg;
+
+ /* The number of digits in the highest section index for all sections
+ from the bfd object associated with OBJFILE. Used when pretty
+ printing the index number to ensure all of the indexes line up. */
+ int index_digits;
+
+ /* Constructor. */
+ maint_print_section_data (struct objfile *objfile, const char *arg,
+ bfd *abfd)
+ : objfile (objfile),
+ arg(arg)
+ {
+ int section_count = gdb_bfd_count_sections (abfd);
+ index_digits = ((int) log10 (section_count)) + 1;
+ }
+
+private:
+ maint_print_section_data () = delete;
+ maint_print_section_data (const maint_print_section_data &) = delete;
+};
+
+/* Helper function to pretty-print the section index of ASECT from ABFD.
+ The INDEX_DIGITS is the number of digits in the largest index that will
+ be printed, and is used to pretty-print the resulting string. */
+
+static void
+print_section_index (bfd *abfd,
+ asection *asect,
+ int index_digits)
+{
+ std::string result
+ = string_printf (" [%d] ", gdb_bfd_section_index (abfd, asect));
+ /* The '+ 4' for the leading and trailing characters. */
+ printf_filtered ("%-*s", (index_digits + 4), result.c_str ());
+}
+
+/* Print information about ASECT from ABFD. DATUM holds a pointer to a
+ maint_print_section_data object. The section will be printed using the
+ VMA's from the bfd, which will not be the relocated addresses for bfds
+ that should be relocated. The information must be printed with the
+ same layout as PRINT_OBJFILE_SECTION_INFO below. */
+
static void
-print_bfd_section_info (bfd *abfd,
- asection *asect,
+print_bfd_section_info (bfd *abfd,
+ asection *asect,
void *datum)
{
flagword flags = bfd_get_section_flags (abfd, asect);
const char *name = bfd_section_name (abfd, asect);
- const char *arg = (const char *) datum;
+ maint_print_section_data *print_data = (maint_print_section_data *) datum;
+ const char *arg = print_data->arg;
if (arg == NULL || *arg == '\0'
|| match_substring (arg, name)
@@ -295,19 +350,25 @@ print_bfd_section_info (bfd *abfd,
addr = bfd_section_vma (abfd, asect);
endaddr = addr + bfd_section_size (abfd, asect);
- printf_filtered (" [%d] ", gdb_bfd_section_index (abfd, asect));
+ print_section_index (abfd, asect, print_data->index_digits);
maint_print_section_info (name, flags, addr, endaddr,
asect->filepos, addr_size);
}
}
+/* Print information about ASECT which is GDB's wrapper around a section
+ from ABFD. The information must be printed with the same layout as
+ PRINT_BFD_SECTION_INFO above. PRINT_DATA holds information used to
+ filter which sections are printed, and for formatting the output. */
+
static void
-print_objfile_section_info (bfd *abfd,
- struct obj_section *asect,
- const char *string)
+print_objfile_section_info (bfd *abfd,
+ struct obj_section *asect,
+ maint_print_section_data *print_data)
{
flagword flags = bfd_get_section_flags (abfd, asect->the_bfd_section);
const char *name = bfd_section_name (abfd, asect->the_bfd_section);
+ const char *string = print_data->arg;
if (string == NULL || *string == '\0'
|| match_substring (string, name)
@@ -316,6 +377,8 @@ print_objfile_section_info (bfd *abfd,
struct gdbarch *gdbarch = gdbarch_from_bfd (abfd);
int addr_size = gdbarch_addr_bit (gdbarch) / 8;
+ print_section_index (abfd, asect->the_bfd_section,
+ print_data->index_digits);
maint_print_section_info (name, flags,
obj_section_addr (asect),
obj_section_endaddr (asect),
@@ -324,12 +387,56 @@ print_objfile_section_info (bfd *abfd,
}
}
+/* Find an obj_section, GDB's wrapper around a bfd section for ASECTION
+ from ABFD. It might be that no such wrapper exists (for example debug
+ sections don't have such wrappers) in which case nullptr is returned. */
+
+static obj_section *
+maint_obj_section_from_bfd_section (bfd *abfd,
+ asection *asection,
+ objfile *ofile)
+{
+ if (ofile->sections == nullptr)
+ return nullptr;
+
+ obj_section *osect
+ = &ofile->sections[gdb_bfd_section_index (abfd, asection)];
+
+ if (osect >= ofile->sections_end)
+ return nullptr;
+
+ return osect;
+}
+
+/* Print information about ASECT from ABFD. DATUM holds a pointer to a
+ maint_print_section_data object. Where possible the information for
+ ASECT will print the relocated addresses of the section. */
+
+static void
+print_bfd_section_info_maybe_relocated (bfd *abfd,
+ asection *asect,
+ void *datum)
+{
+ maint_print_section_data *print_data = (maint_print_section_data *) datum;
+ objfile *objfile = print_data->objfile;
+
+ gdb_assert (objfile->sections != NULL);
+ obj_section *osect
+ = maint_obj_section_from_bfd_section (abfd, asect, objfile);
+
+ if (osect->the_bfd_section == NULL)
+ print_bfd_section_info (abfd, asect, datum);
+ else
+ print_objfile_section_info (abfd, osect, print_data);
+}
+
+/* Implement the "maintenance info sections" command. */
+
static void
maintenance_info_sections (const char *arg, int from_tty)
{
if (exec_bfd)
{
- struct obj_section *osect;
bool allobj = false;
printf_filtered (_("Exec file:\n"));
@@ -352,22 +459,27 @@ maintenance_info_sections (const char *arg, int from_tty)
if (allobj)
printf_filtered (_(" Object file: %s\n"),
bfd_get_filename (ofile->obfd));
- ALL_OBJFILE_OSECTIONS (ofile, osect)
- {
- if (!allobj && ofile->obfd != exec_bfd)
- continue;
- print_objfile_section_info (ofile->obfd, osect, arg);
- }
+ else if (ofile->obfd != exec_bfd)
+ continue;
+
+ maint_print_section_data print_data (ofile, arg, ofile->obfd);
+
+ bfd_map_over_sections (ofile->obfd,
+ print_bfd_section_info_maybe_relocated,
+ (void *) &print_data);
}
}
if (core_bfd)
{
+ maint_print_section_data print_data (nullptr, arg, core_bfd);
+
printf_filtered (_("Core file:\n"));
printf_filtered (" `%s', ", bfd_get_filename (core_bfd));
wrap_here (" ");
printf_filtered (_("file type %s.\n"), bfd_get_target (core_bfd));
- bfd_map_over_sections (core_bfd, print_bfd_section_info, (void *) arg);
+ bfd_map_over_sections (core_bfd, print_bfd_section_info,
+ (void *) &print_data);
}
}
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7352e9f034..27980548cb 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/maint.exp: Add test for 'maint info sections'.
+
2019-09-12 Tom de Vries <tdevries@suse.de>
* gdb.base/store.exp: Allow register variables to be optimized out at
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 36738f6eaa..a5d5dacaba 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -109,6 +109,23 @@ if ![runto_main] then {
perror "tests suppressed"
}
+# Check that 'maint info sections' output looks correct. When
+# checking the lines for each section we reject section names starting
+# with a '*' character, the internal *COM*, *UND*, *ABS*, and *IND*
+# sections should not be displayed in this output.
+set test "check maint info sections output"
+gdb_test_multiple "maint info sections" $test {
+ -re "Exec file:\r\n\[\t ]+`\[^'\]+', file type \[^.\]+\.\r\n" {
+ exp_continue
+ }
+ -re "^ \\\[\[0-9\]+\\\]\[\t \]+$hex->$hex at $hex: \[^*\r\]+\r\n" {
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ pass $test
+ }
+}
+
# If we're using .gdb_index or .debug_names there will be no psymtabs.
set have_gdb_index 0
gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" {
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Make use of exec_has_index_section function
@ 2019-09-13 1:14 gdb-buildbot
2019-09-13 1:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-13 1:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5fabdcd6801a4567db9c88ceb112ca222544b13f ***
commit 5fabdcd6801a4567db9c88ceb112ca222544b13f
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sun Sep 1 00:21:40 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 20:31:29 2019 -0400
gdb/testsuite: Make use of exec_has_index_section function
Make use of exec_has_index_section library function rather than
manually checking in the 'maintenance info sections' output. Should
make no difference to the test results, just makes the code easier to
read.
gdb/testsuite/ChangeLog:
* gdb.base/maint.exp: Use exec_has_index_section.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 27980548cb..395a257102 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/maint.exp: Use exec_has_index_section.
+
2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/maint.exp: Add test for 'maint info sections'.
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index a5d5dacaba..15988c7938 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -127,18 +127,7 @@ gdb_test_multiple "maint info sections" $test {
}
# If we're using .gdb_index or .debug_names there will be no psymtabs.
-set have_gdb_index 0
-gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" {
- -re ": \\.gdb_index .*\r\n$gdb_prompt $" {
- set have_gdb_index 1
- }
- -re ": \\.debug_names .*\r\n$gdb_prompt $" {
- set have_gdb_index 1
- }
- -re ".*$gdb_prompt $" {
- ;# Nothing to do, present to avoid a FAIL.
- }
-}
+set have_gdb_index [ exec_has_index_section ${binfile} ]
# There also won't be any psymtabs if we read the index from the index cache.
# We can detect this by looking if the index-cache is enabled and if the number
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Force use of float version of log10
@ 2019-09-13 2:09 gdb-buildbot
2019-09-13 2:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-13 2:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec6c8338a89b0ec022b66ed3efdd1577e6449d6d ***
commit ec6c8338a89b0ec022b66ed3efdd1577e6449d6d
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Thu Sep 12 21:23:37 2019 -0400
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Sep 12 21:23:37 2019 -0400
gdb: Force use of float version of log10
This commit:
commit aa17805fb9a3a1983a510ba425b682fba03410c2
Date: Sat Aug 31 23:44:40 2019 +0100
gdb: Have 'maint info sections' print all sections again
introduced a use of log10 that took an int as a parameter.
Unfortunately this was causing a compilation error on Solaris, see:
https://sourceware.org/ml/gdb-patches/2019-09/msg00230.html
https://sourceware.org/ml/gdb-patches/2019-09/msg00231.html
because there was only a float, double, or long double version of
log10, and the compiler doesn't know which to choose.
This commit should resolve this issue by casting the argument to
float.
gdb/ChangeLog:
* maint.c (maint_print_section_data::maint_print_section_data):
Force use of 'float log10 (float)' by casting the argument to
float.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4158161393..147882447e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * maint.c (maint_print_section_data::maint_print_section_data):
+ Force use of 'float log10 (float)' by casting the argument to
+ float.
+
2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
* maint.c: Add 'cmath' include.
diff --git a/gdb/maint.c b/gdb/maint.c
index 286ec31013..1a621a1719 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -301,7 +301,7 @@ struct maint_print_section_data
arg(arg)
{
int section_count = gdb_bfd_count_sections (abfd);
- index_digits = ((int) log10 (section_count)) + 1;
+ index_digits = ((int) log10 ((float) section_count)) + 1;
}
private:
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require gnatmake 8 for gdb.ada/rename_subscript_param.exp
@ 2019-09-14 9:12 gdb-buildbot
2019-09-14 9:14 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-14 9:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d1b70248bde3ffe784cd7380de05b86d0b4b901e ***
commit d1b70248bde3ffe784cd7380de05b86d0b4b901e
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Sat Sep 14 10:35:48 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Sat Sep 14 10:35:48 2019 +0200
[gdb/testsuite] Require gnatmake 8 for gdb.ada/rename_subscript_param.exp
When running gdb.ada/rename_subscript_param.exp with gnatmake 7.4.1, we get:
...
FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b \
before changing its value
FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b \
after changing its value
...
The commit last touching the test-case (afcfda091e) states:
...
The test still fails with old compilers that do not properly
generate debug info for this renaming:
...
Fix this by requiring at least gnatmake 8 for the test-case.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-14 Tom de Vries <tdevries@suse.de>
PR teststuite/24599
* gdb.ada/rename_subscript_param.exp: Require gnatmake 8.
* lib/ada.exp (gnatmake_version_at_least): New proc.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 395a257102..d04cff15b8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-14 Tom de Vries <tdevries@suse.de>
+
+ PR teststuite/24599
+ * gdb.ada/rename_subscript_param.exp: Require gnatmake 8.
+ * lib/ada.exp (gnatmake_version_at_least): New proc.
+
2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/maint.exp: Use exec_has_index_section.
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param.exp b/gdb/testsuite/gdb.ada/rename_subscript_param.exp
index ffcfa50df3..fd8208825a 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param.exp
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param.exp
@@ -15,6 +15,10 @@
load_lib "ada.exp"
+if { ![gnatmake_version_at_least 8] } {
+ return -1
+}
+
standard_ada_testfile pb30_012
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index 1345c747c5..95f0f525b1 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -105,3 +105,22 @@ proc find_ada_tool {tool} {
return $result
}
+
+# Return 1 if gnatmake is at least version $MAJOR.x.x
+
+proc gnatmake_version_at_least { major } {
+ set gnatmake [gdb_find_gnatmake]
+ set gnatmake [lindex [split $gnatmake] 0]
+ set output [exec $gnatmake --version]
+ if { [regexp {GNATMAKE ([^ .]+).([^ .]+).([^ .]+)} $output \
+ match gnatmake_major gnatmake_minor gnatmake_micro] } {
+ if { $gnatmake_major >= $major } {
+ return 1
+ } else {
+ return 0
+ }
+ }
+
+ # Unknown, return 1
+ return 1
+}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add a NEWS entry that gdb can be compiled with py3 on Windows.
@ 2019-09-15 3:16 gdb-buildbot
2019-09-15 3:16 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-15 3:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6a062a93d70e08ddc23c0a940a8c20eea48e6904 ***
commit 6a062a93d70e08ddc23c0a940a8c20eea48e6904
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Sat Sep 14 16:28:51 2019 -0400
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Sep 14 22:36:47 2019 -0400
Add a NEWS entry that gdb can be compiled with py3 on Windows.
This was fixed in commit 272044897e178835f596c96740c5a1800ec6f9fb.
2019-09-14 Christian Biesinger <cbiesinger@google.com>
* NEWS: Mention that gdb can now be compiled with Python 3
on Windows.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 147882447e..fc2260d53d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-14 Christian Biesinger <cbiesinger@google.com>
+
+ * NEWS: Mention that gdb can now be compiled with Python 3
+ on Windows.
+
2019-09-12 Andrew Burgess <andrew.burgess@embecosm.com>
* maint.c (maint_print_section_data::maint_print_section_data):
diff --git a/gdb/NEWS b/gdb/NEWS
index d502f08984..947b743533 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -32,6 +32,8 @@
* GDB now shows the Ada task names at more places, e.g. in task switching
messages.
+* GDB can now be compiled with Python 3 on Windows.
+
* Python API
** The gdb.Value type has a new method 'format_string' which returns a
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Update version to 2.33.50 and regenerate configure scripts.
@ 2019-09-16 10:47 gdb-buildbot
2019-09-16 10:51 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-16 10:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bb6959602bd7ff19081b4a1cb2e54b0e562faa0f ***
commit bb6959602bd7ff19081b4a1cb2e54b0e562faa0f
Author: Phil Blundell <philb@brightsign.biz>
AuthorDate: Mon Sep 16 11:01:00 2019 +0100
Commit: Phil Blundell <philb@brightsign.biz>
CommitDate: Mon Sep 16 11:03:53 2019 +0100
Update version to 2.33.50 and regenerate configure scripts.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ea0f06041b..76939880c7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * version.m4: Set version to 2.33.50.
+ * Makefile.in, configure, doc/Makefile.in: Regenerated.
+
2019-09-11 Tom Tromey <tom@tromey.com>
* opncls.c (bfd_set_filename): New function.
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 9c14721fd8..5578997e5d 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -438,6 +438,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/bfd/configure b/bfd/configure
index b1a727a54a..10f187a692 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.32.51.
+# Generated by GNU Autoconf 2.69 for bfd 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='bfd 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='bfd 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -793,6 +793,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -889,6 +890,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1141,6 +1143,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1278,7 +1289,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1391,7 +1402,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures bfd 2.32.51 to adapt to many kinds of systems.
+\`configure' configures bfd 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1431,6 +1442,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1462,7 +1474,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.32.51:";;
+ short | recursive ) echo "Configuration of bfd 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1589,7 +1601,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.32.51
+bfd configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2237,7 +2249,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by bfd $as_me 2.32.51, which was
+It was created by bfd $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4187,7 +4199,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -11728,7 +11740,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11731 "configure"
+#line 11743 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11834,7 +11846,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11837 "configure"
+#line 11849 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12223,7 +12235,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12269,7 +12281,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12293,7 +12305,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12338,7 +12350,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12362,7 +12374,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -16356,6 +16368,8 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
+ free (data);
+ free (data3);
return 0;
}
_ACEOF
@@ -16954,7 +16968,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by bfd $as_me 2.32.51, which was
+This file was extended by bfd $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17020,7 +17034,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-bfd config.status 2.32.51
+bfd config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index 0115dfc406..d75411d2af 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -375,6 +375,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/bfd/version.m4 b/bfd/version.m4
index da8d0adff0..b2a5dfb74d 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.32.51])
+m4_define([BFD_VERSION], [2.33.50])
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 8b78873a99..a29de52599 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * Makefile.in, configure. doc/Makefile.in: Regenerated.
+
2019-09-11 Tom Tromey <tom@tromey.com>
* objcopy.c (copy_archive): Update.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 16c078fdd3..d1828e5fc2 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -541,6 +541,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/binutils/configure b/binutils/configure
index 17cca12070..f8fe55c2a8 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for binutils 2.32.51.
+# Generated by GNU Autoconf 2.69 for binutils 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='binutils'
PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='binutils 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='binutils 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -778,6 +778,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -870,6 +871,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1122,6 +1124,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1259,7 +1270,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1372,7 +1383,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures binutils 2.32.51 to adapt to many kinds of systems.
+\`configure' configures binutils 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1412,6 +1423,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1443,7 +1455,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of binutils 2.32.51:";;
+ short | recursive ) echo "Configuration of binutils 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1570,7 +1582,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-binutils configure 2.32.51
+binutils configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2218,7 +2230,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by binutils $as_me 2.32.51, which was
+It was created by binutils $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4168,7 +4180,7 @@ fi
# Define the identity of the package.
PACKAGE='binutils'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -11523,7 +11535,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11526 "configure"
+#line 11538 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11629,7 +11641,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11632 "configure"
+#line 11644 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12016,7 +12028,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12062,7 +12074,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12086,7 +12098,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12131,7 +12143,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12155,7 +12167,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -13722,6 +13734,8 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
+ free (data);
+ free (data3);
return 0;
}
_ACEOF
@@ -15713,7 +15727,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by binutils $as_me 2.32.51, which was
+This file was extended by binutils $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15779,7 +15793,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-binutils config.status 2.32.51
+binutils config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
index a0777d8fcc..c66caa832e 100644
--- a/binutils/doc/Makefile.in
+++ b/binutils/doc/Makefile.in
@@ -374,6 +374,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 444bd16987..85c80f5772 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * Makefile.in, configure, doc/Makefile.in: Regenerated.
+
2019-09-10 Nick Clifton <nickc@redhat.com>
PR 24907
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 21545d25b7..595295e555 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -402,6 +402,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gas/configure b/gas/configure
index 0a52e4a9f6..5cfd52f712 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gas 2.32.51.
+# Generated by GNU Autoconf 2.69 for gas 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gas'
PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='gas 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='gas 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -770,6 +770,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -867,6 +868,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1119,6 +1121,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1256,7 +1267,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1369,7 +1380,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gas 2.32.51 to adapt to many kinds of systems.
+\`configure' configures gas 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1409,6 +1420,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1440,7 +1452,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gas 2.32.51:";;
+ short | recursive ) echo "Configuration of gas 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1576,7 +1588,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gas configure 2.32.51
+gas configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2041,7 +2053,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gas $as_me 2.32.51, which was
+It was created by gas $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3988,7 +4000,7 @@ fi
# Define the identity of the package.
PACKAGE='gas'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -11343,7 +11355,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11346 "configure"
+#line 11358 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11449,7 +11461,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11452 "configure"
+#line 11464 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11836,7 +11848,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11882,7 +11894,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11906,7 +11918,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11951,7 +11963,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11975,7 +11987,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15705,7 +15717,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gas $as_me 2.32.51, which was
+This file was extended by gas $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15771,7 +15783,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gas config.status 2.32.51
+gas config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 7c4189a8c6..854ee9daef 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -364,6 +364,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index d0aa7f8f1f..737b2cd3b5 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * Makefile.in, configure: Regenerated.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index 451fe9585d..d5e883d4de 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -424,6 +424,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gprof/configure b/gprof/configure
index 2a92a28222..3c414ce75b 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprof 2.32.51.
+# Generated by GNU Autoconf 2.69 for gprof 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gprof'
PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='gprof 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='gprof 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -751,6 +751,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -835,6 +836,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1087,6 +1089,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1224,7 +1235,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1337,7 +1348,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gprof 2.32.51 to adapt to many kinds of systems.
+\`configure' configures gprof 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1377,6 +1388,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1408,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gprof 2.32.51:";;
+ short | recursive ) echo "Configuration of gprof 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1519,7 +1531,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gprof configure 2.32.51
+gprof configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1884,7 +1896,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gprof $as_me 2.32.51, which was
+It was created by gprof $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3831,7 +3843,7 @@ fi
# Define the identity of the package.
PACKAGE='gprof'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -11190,7 +11202,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11193 "configure"
+#line 11205 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11296,7 +11308,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11299 "configure"
+#line 11311 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11683,7 +11695,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11729,7 +11741,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11753,7 +11765,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11798,7 +11810,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11822,7 +11834,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -13086,7 +13098,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gprof $as_me 2.32.51, which was
+This file was extended by gprof $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13152,7 +13164,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gprof config.status 2.32.51
+gprof config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b2d4151716..c311679bef 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * Makefile.in, configure: Regenerated.
+
2019-09-13 Alan Modra <amodra@gmail.com>
* ldlang.c (new_afile): Remove add_to_list parameter.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index d509f62bd2..057956139d 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -521,6 +521,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/ld/configure b/ld/configure
index 8edef4548e..62bb4e45e9 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.32.51.
+# Generated by GNU Autoconf 2.69 for ld 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ld'
PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='ld 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='ld 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -786,6 +786,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -888,6 +889,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1140,6 +1142,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1277,7 +1288,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1390,7 +1401,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ld 2.32.51 to adapt to many kinds of systems.
+\`configure' configures ld 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1430,6 +1441,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1461,7 +1473,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ld 2.32.51:";;
+ short | recursive ) echo "Configuration of ld 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1596,7 +1608,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ld configure 2.32.51
+ld configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2311,7 +2323,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ld $as_me 2.32.51, which was
+It was created by ld $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4262,7 +4274,7 @@ fi
# Define the identity of the package.
PACKAGE='ld'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -12027,7 +12039,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12030 "configure"
+#line 12042 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12133,7 +12145,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12136 "configure"
+#line 12148 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15536,7 +15548,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15582,7 +15594,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15606,7 +15618,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15651,7 +15663,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15675,7 +15687,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -17188,6 +17200,8 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
+ free (data);
+ free (data3);
return 0;
}
_ACEOF
@@ -18226,7 +18240,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ld $as_me 2.32.51, which was
+This file was extended by ld $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18292,7 +18306,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ld config.status 2.32.51
+ld config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 392fcacfb6..50f1be8533 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-16 Phil Blundell <pb@pbcl.net>
+
+ * configure: Regenerated.
+
2019-09-10 Miod Vallat <miod@online.fr>
PR 24982
diff --git a/opcodes/configure b/opcodes/configure
index 3b99d9786b..8062312c28 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opcodes 2.32.51.
+# Generated by GNU Autoconf 2.69 for opcodes 2.33.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='opcodes'
PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.32.51'
-PACKAGE_STRING='opcodes 2.32.51'
+PACKAGE_VERSION='2.33.50'
+PACKAGE_STRING='opcodes 2.33.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1367,7 +1367,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures opcodes 2.32.51 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.33.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1439,7 +1439,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of opcodes 2.32.51:";;
+ short | recursive ) echo "Configuration of opcodes 2.33.50:";;
esac
cat <<\_ACEOF
@@ -1551,7 +1551,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-opcodes configure 2.32.51
+opcodes configure 2.33.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1962,7 +1962,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by opcodes $as_me 2.32.51, which was
+It was created by opcodes $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3909,7 +3909,7 @@ fi
# Define the identity of the package.
PACKAGE='opcodes'
- VERSION='2.32.51'
+ VERSION='2.33.50'
cat >>confdefs.h <<_ACEOF
@@ -13546,7 +13546,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by opcodes $as_me 2.32.51, which was
+This file was extended by opcodes $as_me 2.33.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13612,7 +13612,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-opcodes config.status 2.32.51
+opcodes config.status 2.33.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't duplicate comment in symfile.c and .h
@ 2019-09-17 3:49 gdb-buildbot
2019-09-17 3:50 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-17 3:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f2f24aa9c438e540fd751690f52dbcbf5e5b8aa6 ***
commit f2f24aa9c438e540fd751690f52dbcbf5e5b8aa6
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Mon Sep 16 22:07:16 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Sep 16 22:10:36 2019 -0500
Don't duplicate comment in symfile.c and .h
This just replaces the comment in the .c file with
"See symfile.h.".
gdb/ChangeLog:
2019-09-16 Christian Biesinger <cbiesinger@google.com>
* symfile.c (auto_solib_add): Replace comment with a reference
to the header file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fc2260d53d..59c6f754ef 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-16 Christian Biesinger <cbiesinger@google.com>
+
+ * symfile.c (auto_solib_add): Replace comment with a reference
+ to the header file.
+
2019-09-14 Christian Biesinger <cbiesinger@google.com>
* NEWS: Mention that gdb can now be compiled with Python 3
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 3cd514409b..259a30aa04 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -141,15 +141,7 @@ static const char *print_symbol_loading_enums[] =
};
static const char *print_symbol_loading = print_symbol_loading_full;
-/* If non-zero, shared library symbols will be added automatically
- when the inferior is created, new libraries are loaded, or when
- attaching to the inferior. This is almost always what users will
- want to have happen; but for very large programs, the startup time
- will be excessive, and so if this is a problem, the user can clear
- this flag and then add the shared library symbols as needed. Note
- that there is a potential for confusion, since if the shared
- library symbols are not loaded, commands like "info fun" will *not*
- report all the functions that are actually present. */
+/* See symfile.h. */
int auto_solib_add = 1;
\f
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] (Ada) do not print Ada task names in quotes in "info tasks" output
@ 2019-09-17 19:09 gdb-buildbot
2019-09-17 19:53 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-17 19:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 743321899674e03cf572fcfeb6c7705aded7c9a5 ***
commit 743321899674e03cf572fcfeb6c7705aded7c9a5
Author: Joel Brobecker <brobecker@adacore.com>
AuthorDate: Tue Sep 17 13:27:55 2019 -0500
Commit: Joel Brobecker <brobecker@adacore.com>
CommitDate: Tue Sep 17 14:27:55 2019 -0400
(Ada) do not print Ada task names in quotes in "info tasks" output
A recent change enhanced a couple of notifications about Ada tasks to
include the task's name in addition to the task's number. That change
also modified the output of the "info tasks" when printing the detailed
information of one given task. I believe this change was unintentionally
left over from the initial version after it was decided that quoting
the task's name should not be done. This patch therefore undoes this
part of the patch.
gdb/ChangeLog:
* ada-tasks.c (info_task): Remove quoting of the task's name.
Tested on x86_64-linux, with both the official testsuite as well as
AdaCore's testsuite.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 59c6f754ef..c564fcecc0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-17 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-tasks.c (info_task): Remove quoting of the task's name.
+
2019-09-16 Christian Biesinger <cbiesinger@google.com>
* symfile.c (auto_solib_add): Replace comment with a reference
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 34da786eb7..24ceab1fca 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -1199,7 +1199,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
/* Print the name of the task. */
if (task_info->name[0] != '\0')
- printf_filtered (_("Name: \"%s\"\n"), task_info->name);
+ printf_filtered (_("Name: %s\n"), task_info->name);
else
printf_filtered (_("<no name>\n"));
@@ -1220,7 +1220,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
printf_filtered (_("Parent: %d"), parent_taskno);
if (parent->name[0] != '\0')
- printf_filtered (" (\"%s\")", parent->name);
+ printf_filtered (" (%s)", parent->name);
printf_filtered ("\n");
}
else
@@ -1253,7 +1253,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
ada_task_info *target_task_info = &data->task_list[target_taskno - 1];
if (target_task_info->name[0] != '\0')
- printf_filtered (" (\"%s\")", target_task_info->name);
+ printf_filtered (" (%s)", target_task_info->name);
}
printf_filtered ("\n");
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Catch exceptions when accessing source cache
@ 2019-09-17 20:17 gdb-buildbot
2019-09-17 20:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-17 20:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 67f3ed6afef86d08ef9989cc251eac585e9ef9cf ***
commit 67f3ed6afef86d08ef9989cc251eac585e9ef9cf
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Sun Sep 8 00:05:22 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 17 15:53:32 2019 -0400
gdb: Catch exceptions when accessing source cache
The source_cache::get_line_charpos function can currently throw an
exception if the source file is missing, which doesn't match the
expected behaviour documented in the functions header file. The
documented behaviour is to return false on failure, and this is how
the function appears to be used throughout GDB.
I spotted this in the 'info source' command, currently for a missing
source file you'll see something like this:
(gdb) info source
Current source file is /path/to/src/file.c
Compilation directory is /path/to/build/
/path/to/src/file.c: No such file or directory.
(gdb)
After this patch we see this:
(gdb) info source
Current source file is /path/to/src/file.c
Compilation directory is /path/to/build/
Source language is c.
Producer is COMPILER VERSION AND FLAGS.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.
We don't currently indicate that the source file can't be found, and
maybe that would be something worth adding in the future.
gdb/ChangeLog:
* source-cache.c (source_cache::get_line_charpos): Catch
exceptions and return false, this matches the behaviour documented
in the header file.
gdb/testsuite/ChangeLog:
* gdb.base/list-missing-source.exp: New file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c564fcecc0..c9be686c26 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * source-cache.c (source_cache::get_line_charpos): Catch
+ exceptions and return false, this matches the behaviour documented
+ in the header file.
+
2019-09-17 Joel Brobecker <brobecker@adacore.com>
* ada-tasks.c (info_task): Remove quoting of the task's name.
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 18e2be989b..7a52ce9458 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -231,19 +231,26 @@ bool
source_cache::get_line_charpos (struct symtab *s,
const std::vector<off_t> **offsets)
{
- std::string fullname = symtab_to_fullname (s);
+ try
+ {
+ std::string fullname = symtab_to_fullname (s);
+
+ auto iter = m_offset_cache.find (fullname);
+ if (iter == m_offset_cache.end ())
+ {
+ ensure (s);
+ iter = m_offset_cache.find (fullname);
+ /* cache_source_text ensured this was entered. */
+ gdb_assert (iter != m_offset_cache.end ());
+ }
- auto iter = m_offset_cache.find (fullname);
- if (iter == m_offset_cache.end ())
+ *offsets = &iter->second;
+ return true;
+ }
+ catch (const gdb_exception_error &e)
{
- ensure (s);
- iter = m_offset_cache.find (fullname);
- /* cache_source_text ensured this was entered. */
- gdb_assert (iter != m_offset_cache.end ());
+ return false;
}
-
- *offsets = &iter->second;
- return true;
}
/* A helper function that extracts the desired source lines from TEXT,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d04cff15b8..b9060ef5d0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/list-missing-source.exp: New file.
+
2019-09-14 Tom de Vries <tdevries@suse.de>
PR teststuite/24599
diff --git a/gdb/testsuite/gdb.base/list-missing-source.exp b/gdb/testsuite/gdb.base/list-missing-source.exp
new file mode 100644
index 0000000000..703603e7cb
--- /dev/null
+++ b/gdb/testsuite/gdb.base/list-missing-source.exp
@@ -0,0 +1,63 @@
+# Copyright 2019 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This test checks how GDB handles missing source files around the
+# 'list' and 'info source' commands.
+
+standard_testfile
+
+# Create a source file in the output directory.
+set srcfile [standard_output_file main.c]
+set fd [open "$srcfile" w]
+puts $fd {
+int
+main ()
+{
+ return 0;
+}
+}
+close $fd
+
+# Compile the source file.
+set options "debug"
+if { [gdb_compile "${srcfile}" "${binfile}" \
+ executable $options] != "" } {
+ untested "failed to compile"
+ return -1
+}
+
+# Now delete the source file.
+file delete $srcfile
+
+# Now start GDB, run to main and try to list the source.
+clean_restart ${binfile}
+
+if ![runto_main] then {
+ fail "can't run to main"
+ return 0
+}
+
+gdb_test "list" "1\[ \t\]+in\[ \t\]+$srcfile"
+
+gdb_test "info source" \
+ [multi_line \
+ "info source" \
+ "Current source file is $srcfile" \
+ "Compilation directory is \[^\n\r\]+" \
+ "Source language is c." \
+ "Producer is \[^\n\r\]+" \
+ "Compiled with DWARF $decimal debugging format." \
+ "Does not include preprocessor macro info." ]
+
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change boolean options to bool instead of int
@ 2019-09-18 0:59 gdb-buildbot
2019-09-18 1:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 0:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 491144b5e21bbfd41969c175aebb663976f59058 ***
commit 491144b5e21bbfd41969c175aebb663976f59058
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Sat Sep 14 15:36:58 2019 -0400
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 18 09:35:12 2019 +0900
Change boolean options to bool instead of int
This is for add_setshow_boolean_cmd as well as the gdb::option interface.
gdb/ChangeLog:
2019-09-17 Christian Biesinger <cbiesinger@google.com>
* ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
(print_signatures): Likewise.
(trust_pad_over_xvs): Likewise.
* arch/aarch64-insn.c (aarch64_debug): Likewise.
* arch/aarch64-insn.h (aarch64_debug): Likewise.
* arm-linux-nat.c (arm_apcs_32): Likewise.
* arm-linux-tdep.c (arm_apcs_32): Likewise.
* arm-nbsd-nat.c (arm_apcs_32): Likewise.
* arm-tdep.c (arm_debug): Likewise.
(arm_apcs_32): Likewise.
* auto-load.c (debug_auto_load): Likewise.
(auto_load_gdb_scripts): Likewise.
(global_auto_load): Likewise.
(auto_load_local_gdbinit): Likewise.
(auto_load_local_gdbinit_loaded): Likewise.
* auto-load.h (global_auto_load): Likewise.
(auto_load_local_gdbinit): Likewise.
(auto_load_local_gdbinit_loaded): Likewise.
* breakpoint.c (disconnected_dprintf): Likewise.
(breakpoint_proceeded): Likewise.
(automatic_hardware_breakpoints): Likewise.
(always_inserted_mode): Likewise.
(target_exact_watchpoints): Likewise.
(_initialize_breakpoint): Update.
* breakpoint.h (target_exact_watchpoints): Change to bool.
* btrace.c (maint_btrace_pt_skip_pad): Likewise.
* cli/cli-cmds.c (trace_commands): Likewise.
* cli/cli-cmds.h (trace_commands): Likewise.
* cli/cli-decode.c (add_setshow_boolean_cmd): Change int* argument
to bool*.
* cli/cli-logging.c (logging_overwrite): Change to bool.
(logging_redirect): Likewise.
(debug_redirect): Likewise.
* cli/cli-option.h (option_def) <boolean>: Change return type to bool*.
(struct boolean_option_def) <get_var_address_cb_>: Change return type
to bool.
<boolean_option_def>: Update.
(struct flag_option_def): Change default type of Context to bool
from int.
<flag_option_def>: Change return type of var_address_cb_ to bool*.
* cli/cli-setshow.c (do_set_command): Cast to bool* instead of int*.
(get_setshow_command_value_string): Likewise.
* cli/cli-style.c (cli_styling): Change to bool.
(source_styling): Likewise.
* cli/cli-style.h (source_styling): Likewise.
(cli_styling): Likewise.
* cli/cli-utils.h (struct qcs_flags) <quiet, cont, silent>: Change
to bool.
* command.h (var_types): Update comment.
(add_setshow_boolean_cmd): Change int* var argument to bool*.
* compile/compile-cplus-types.c (debug_compile_cplus_types): Change to
bool.
(debug_compile_cplus_scopes): Likewise.
* compile/compile-internal.h (compile_debug): Likewise.
* compile/compile.c (compile_debug): Likewise.
(struct compile_options) <raw>: Likewise.
* cp-support.c (catch_demangler_crashes): Likewise.
* cris-tdep.c (usr_cmd_cris_version_valid): Likewise.
(usr_cmd_cris_dwarf2_cfi): Likewise.
* csky-tdep.c (csky_debug): Likewise.
* darwin-nat.c (enable_mach_exceptions): Likewise.
* dcache.c (dcache_enabled_p): Likewise.
* defs.h (info_verbose): Likewise.
* demangle.c (demangle): Likewise.
(asm_demangle): Likewise.
* dwarf-index-cache.c (debug_index_cache): Likewise.
* dwarf2-frame.c (dwarf2_frame_unwinders_enabled_p): Likewise.
* dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Likewise.
* dwarf2read.c (check_physname): Likewise.
(use_deprecated_index_sections): Likewise.
(dwarf_always_disassemble): Likewise.
* eval.c (overload_resolution): Likewise.
* event-top.c (set_editing_cmd_var): Likewise.
(exec_done_display_p): Likewise.
* event-top.h (set_editing_cmd_var): Likewise.
(exec_done_display_p): Likewise.
* exec.c (write_files): Likewise.
* fbsd-nat.c (debug_fbsd_lwp): Likewise
(debug_fbsd_nat): Likewise.
* frame.h (struct frame_print_options) <print_raw_frame_arguments>:
Likewise.
(struct set_backtrace_options) <backtrace_past_main>: Likewise.
<backtrace_past_entry> Likewise.
* gdb-demangle.h (demangle): Likewise.
(asm_demangle): Likewise.
* gdb_bfd.c (bfd_sharing): Likewise.
* gdbcore.h (write_files): Likewise.
* gdbsupport/common-debug.c (show_debug_regs): Likewise.
* gdbsupport/common-debug.h (show_debug_regs): Likewise.
* gdbthread.h (print_thread_events): Likewise.
* gdbtypes.c (opaque_type_resolution): Likewise.
(strict_type_checking): Likewise.
* gnu-nat.c (gnu_debug_flag): Likewise.
* guile/scm-auto-load.c (auto_load_guile_scripts): Likewise.
* guile/scm-param.c (pascm_variable): Add boolval.
(add_setshow_generic): Update.
(pascm_param_value): Update.
(pascm_set_param_value_x): Update.
* hppa-tdep.c (hppa_debug): Change to bool..
* infcall.c (may_call_functions_p): Likewise.
(coerce_float_to_double_p): Likewise.
(unwind_on_signal_p): Likewise.
(unwind_on_terminating_exception_p): Likewise.
* infcmd.c (startup_with_shell): Likewise.
* inferior.c (print_inferior_events): Likewise.
* inferior.h (startup_with_shell): Likewise.
(print_inferior_events): Likewise.
* infrun.c (step_stop_if_no_debug): Likewise.
(detach_fork): Likewise.
(debug_displaced): Likewise.
(disable_randomization): Likewise.
(non_stop): Likewise.
(non_stop_1): Likewise.
(observer_mode): Likewise.
(observer_mode_1): Likewise.
(set_observer_mode): Update.
(sched_multi): Change to bool.
* infrun.h (debug_displaced): Likewise.
(sched_multi): Likewise.
(step_stop_if_no_debug): Likewise.
(non_stop): Likewise.
(disable_randomization): Likewise.
* linux-tdep.c (use_coredump_filter): Likewise.
(dump_excluded_mappings): Likewise.
* linux-thread-db.c (auto_load_thread_db): Likewise.
(check_thread_db_on_load): Likewise.
* main.c (captured_main_1): Update.
* maint-test-options.c (struct test_options_opts) <flag_opt, xx1_opt,
xx2_opt, boolean_opt>: Change to bool.
* maint-test-settings.c (maintenance_test_settings_boolean): Likewise.
* maint.c (maintenance_profile_p): Likewise.
(per_command_time): Likewise.
(per_command_space): Likewise.
(per_command_symtab): Likewise.
* memattr.c (inaccessible_by_default): Likewise.
* mi/mi-main.c (mi_async): Likewise.
(mi_async_1): Likewise.
* mips-tdep.c (mips64_transfers_32bit_regs_p): Likewise.
* nat/fork-inferior.h (startup_with_shell): Likewise.
* nat/linux-namespaces.c (debug_linux_namespaces): Likewise.
* nat/linux-namespaces.h (debug_linux_namespaces): Likewise.
* nios2-tdep.c (nios2_debug): Likewise.
* or1k-tdep.c (or1k_debug): Likewise.
* parse.c (parser_debug): Likewise.
* parser-defs.h (parser_debug): Likewise.
* printcmd.c (print_symbol_filename): Likewise.
* proc-api.c (procfs_trace): Likewise.
* python/py-auto-load.c (auto_load_python_scripts): Likewise.
* python/py-param.c (union parmpy_variable): Add "bool boolval" field.
(set_parameter_value): Update.
(add_setshow_generic): Update.
* python/py-value.c (copy_py_bool_obj): Change argument from int*
to bool*.
* python/python.c (gdbpy_parameter_value): Cast to bool* instead of
int*.
* ravenscar-thread.c (ravenscar_task_support): Change to bool.
* record-btrace.c (record_btrace_target::store_registers): Update.
* record-full.c (record_full_memory_query): Change to bool.
(record_full_stop_at_limit): Likewise.
* record-full.h (record_full_memory_query): Likewise.
* remote-notif.c (notif_debug): Likewise.
* remote-notif.h (notif_debug): Likewise.
* remote.c (use_range_stepping): Likewise.
(interrupt_on_connect): Likewise.
(remote_break): Likewise.
* ser-tcp.c (tcp_auto_retry): Likewise.
* ser-unix.c (serial_hwflow): Likewise.
* skip.c (debug_skip): Likewise.
* solib-aix.c (solib_aix_debug): Likewise.
* spu-tdep.c (spu_stop_on_load_p): Likewise.
(spu_auto_flush_cache_p): Likewise.
* stack.c (struct backtrace_cmd_options) <full, no_filters, hide>:
Likewise.
(struct info_print_options) <quiet>: Likewise.
* symfile-debug.c (debug_symfile): Likewise.
* symfile.c (auto_solib_add): Likewise.
(separate_debug_file_debug): Likewise.
* symfile.h (auto_solib_add): Likewise.
(separate_debug_file_debug): Likewise.
* symtab.c (basenames_may_differ): Likewise.
(struct filename_partial_match_opts) <dirname, basename>: Likewise.
(struct info_print_options) <quiet, exclude_minsyms>: Likewise.
(struct info_types_options) <quiet>: Likewise.
* symtab.h (demangle): Likewise.
(basenames_may_differ): Likewise.
* target-dcache.c (stack_cache_enabled_1): Likewise.
(code_cache_enabled_1): Likewise.
* target.c (trust_readonly): Likewise.
(may_write_registers): Likewise.
(may_write_memory): Likewise.
(may_insert_breakpoints): Likewise.
(may_insert_tracepoints): Likewise.
(may_insert_fast_tracepoints): Likewise.
(may_stop): Likewise.
(auto_connect_native_target): Likewise.
(target_stop_and_wait): Update.
(target_async_permitted): Change to bool.
(target_async_permitted_1): Likewise.
(may_write_registers_1): Likewise.
(may_write_memory_1): Likewise.
(may_insert_breakpoints_1): Likewise.
(may_insert_tracepoints_1): Likewise.
(may_insert_fast_tracepoints_1): Likewise.
(may_stop_1): Likewise.
* target.h (target_async_permitted): Likewise.
(may_write_registers): Likewise.
(may_write_memory): Likewise.
(may_insert_breakpoints): Likewise.
(may_insert_tracepoints): Likewise.
(may_insert_fast_tracepoints): Likewise.
(may_stop): Likewise.
* thread.c (struct info_threads_opts) <show_global_ids>: Likewise.
(make_thread_apply_all_options_def_group): Change argument from int*
to bool*.
(thread_apply_all_command): Update.
(print_thread_events): Change to bool.
* top.c (confirm): Likewise.
(command_editing_p): Likewise.
(history_expansion_p): Likewise.
(write_history_p): Likewise.
(info_verbose): Likewise.
* top.h (confirm): Likewise.
(history_expansion_p): Likewise.
* tracepoint.c (disconnected_tracing): Likewise.
(circular_trace_buffer): Likewise.
* typeprint.c (print_methods): Likewise.
(print_typedefs): Likewise.
* utils.c (debug_timestamp): Likewise.
(sevenbit_strings): Likewise.
(pagination_enabled): Likewise.
* utils.h (sevenbit_strings): Likewise.
(pagination_enabled): Likewise.
* valops.c (overload_resolution): Likewise.
* valprint.h (struct value_print_options) <prettyformat_arrays,
prettyformat_structs, vtblprint, unionprint, addressprint, objectprint,
stop_print_at_null, print_array_indexes, deref_ref, static_field_print,
pascal_static_field_print, raw, summary, symbol_print, finish_print>:
Likewise.
* windows-nat.c (new_console): Likewise.
(cygwin_exceptions): Likewise.
(new_group): Likewise.
(debug_exec): Likewise.
(debug_events): Likewise.
(debug_memory): Likewise.
(debug_exceptions): Likewise.
(useshell): Likewise.
* windows-tdep.c (maint_display_all_tib): Likewise.
* xml-support.c (debug_xml): Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3bf43d2dfe..8cb5bfeeb9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,254 @@
+2019-09-17 Christian Biesinger <cbiesinger@google.com>
+
+ * ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
+ (print_signatures): Likewise.
+ (trust_pad_over_xvs): Likewise.
+ * arch/aarch64-insn.c (aarch64_debug): Likewise.
+ * arch/aarch64-insn.h (aarch64_debug): Likewise.
+ * arm-linux-nat.c (arm_apcs_32): Likewise.
+ * arm-linux-tdep.c (arm_apcs_32): Likewise.
+ * arm-nbsd-nat.c (arm_apcs_32): Likewise.
+ * arm-tdep.c (arm_debug): Likewise.
+ (arm_apcs_32): Likewise.
+ * auto-load.c (debug_auto_load): Likewise.
+ (auto_load_gdb_scripts): Likewise.
+ (global_auto_load): Likewise.
+ (auto_load_local_gdbinit): Likewise.
+ (auto_load_local_gdbinit_loaded): Likewise.
+ * auto-load.h (global_auto_load): Likewise.
+ (auto_load_local_gdbinit): Likewise.
+ (auto_load_local_gdbinit_loaded): Likewise.
+ * breakpoint.c (disconnected_dprintf): Likewise.
+ (breakpoint_proceeded): Likewise.
+ (automatic_hardware_breakpoints): Likewise.
+ (always_inserted_mode): Likewise.
+ (target_exact_watchpoints): Likewise.
+ (_initialize_breakpoint): Update.
+ * breakpoint.h (target_exact_watchpoints): Change to bool.
+ * btrace.c (maint_btrace_pt_skip_pad): Likewise.
+ * cli/cli-cmds.c (trace_commands): Likewise.
+ * cli/cli-cmds.h (trace_commands): Likewise.
+ * cli/cli-decode.c (add_setshow_boolean_cmd): Change int* argument
+ to bool*.
+ * cli/cli-logging.c (logging_overwrite): Change to bool.
+ (logging_redirect): Likewise.
+ (debug_redirect): Likewise.
+ * cli/cli-option.h (option_def) <boolean>: Change return type to bool*.
+ (struct boolean_option_def) <get_var_address_cb_>: Change return type
+ to bool.
+ <boolean_option_def>: Update.
+ (struct flag_option_def): Change default type of Context to bool
+ from int.
+ <flag_option_def>: Change return type of var_address_cb_ to bool*.
+ * cli/cli-setshow.c (do_set_command): Cast to bool* instead of int*.
+ (get_setshow_command_value_string): Likewise.
+ * cli/cli-style.c (cli_styling): Change to bool.
+ (source_styling): Likewise.
+ * cli/cli-style.h (source_styling): Likewise.
+ (cli_styling): Likewise.
+ * cli/cli-utils.h (struct qcs_flags) <quiet, cont, silent>: Change
+ to bool.
+ * command.h (var_types): Update comment.
+ (add_setshow_boolean_cmd): Change int* var argument to bool*.
+ * compile/compile-cplus-types.c (debug_compile_cplus_types): Change to
+ bool.
+ (debug_compile_cplus_scopes): Likewise.
+ * compile/compile-internal.h (compile_debug): Likewise.
+ * compile/compile.c (compile_debug): Likewise.
+ (struct compile_options) <raw>: Likewise.
+ * cp-support.c (catch_demangler_crashes): Likewise.
+ * cris-tdep.c (usr_cmd_cris_version_valid): Likewise.
+ (usr_cmd_cris_dwarf2_cfi): Likewise.
+ * csky-tdep.c (csky_debug): Likewise.
+ * darwin-nat.c (enable_mach_exceptions): Likewise.
+ * dcache.c (dcache_enabled_p): Likewise.
+ * defs.h (info_verbose): Likewise.
+ * demangle.c (demangle): Likewise.
+ (asm_demangle): Likewise.
+ * dwarf-index-cache.c (debug_index_cache): Likewise.
+ * dwarf2-frame.c (dwarf2_frame_unwinders_enabled_p): Likewise.
+ * dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Likewise.
+ * dwarf2read.c (check_physname): Likewise.
+ (use_deprecated_index_sections): Likewise.
+ (dwarf_always_disassemble): Likewise.
+ * eval.c (overload_resolution): Likewise.
+ * event-top.c (set_editing_cmd_var): Likewise.
+ (exec_done_display_p): Likewise.
+ * event-top.h (set_editing_cmd_var): Likewise.
+ (exec_done_display_p): Likewise.
+ * exec.c (write_files): Likewise.
+ * fbsd-nat.c (debug_fbsd_lwp): Likewise
+ (debug_fbsd_nat): Likewise.
+ * frame.h (struct frame_print_options) <print_raw_frame_arguments>:
+ Likewise.
+ (struct set_backtrace_options) <backtrace_past_main>: Likewise.
+ <backtrace_past_entry> Likewise.
+ * gdb-demangle.h (demangle): Likewise.
+ (asm_demangle): Likewise.
+ * gdb_bfd.c (bfd_sharing): Likewise.
+ * gdbcore.h (write_files): Likewise.
+ * gdbsupport/common-debug.c (show_debug_regs): Likewise.
+ * gdbsupport/common-debug.h (show_debug_regs): Likewise.
+ * gdbthread.h (print_thread_events): Likewise.
+ * gdbtypes.c (opaque_type_resolution): Likewise.
+ (strict_type_checking): Likewise.
+ * gnu-nat.c (gnu_debug_flag): Likewise.
+ * guile/scm-auto-load.c (auto_load_guile_scripts): Likewise.
+ * guile/scm-param.c (pascm_variable): Add boolval.
+ (add_setshow_generic): Update.
+ (pascm_param_value): Update.
+ (pascm_set_param_value_x): Update.
+ * hppa-tdep.c (hppa_debug): Change to bool..
+ * infcall.c (may_call_functions_p): Likewise.
+ (coerce_float_to_double_p): Likewise.
+ (unwind_on_signal_p): Likewise.
+ (unwind_on_terminating_exception_p): Likewise.
+ * infcmd.c (startup_with_shell): Likewise.
+ * inferior.c (print_inferior_events): Likewise.
+ * inferior.h (startup_with_shell): Likewise.
+ (print_inferior_events): Likewise.
+ * infrun.c (step_stop_if_no_debug): Likewise.
+ (detach_fork): Likewise.
+ (debug_displaced): Likewise.
+ (disable_randomization): Likewise.
+ (non_stop): Likewise.
+ (non_stop_1): Likewise.
+ (observer_mode): Likewise.
+ (observer_mode_1): Likewise.
+ (set_observer_mode): Update.
+ (sched_multi): Change to bool.
+ * infrun.h (debug_displaced): Likewise.
+ (sched_multi): Likewise.
+ (step_stop_if_no_debug): Likewise.
+ (non_stop): Likewise.
+ (disable_randomization): Likewise.
+ * linux-tdep.c (use_coredump_filter): Likewise.
+ (dump_excluded_mappings): Likewise.
+ * linux-thread-db.c (auto_load_thread_db): Likewise.
+ (check_thread_db_on_load): Likewise.
+ * main.c (captured_main_1): Update.
+ * maint-test-options.c (struct test_options_opts) <flag_opt, xx1_opt,
+ xx2_opt, boolean_opt>: Change to bool.
+ * maint-test-settings.c (maintenance_test_settings_boolean): Likewise.
+ * maint.c (maintenance_profile_p): Likewise.
+ (per_command_time): Likewise.
+ (per_command_space): Likewise.
+ (per_command_symtab): Likewise.
+ * memattr.c (inaccessible_by_default): Likewise.
+ * mi/mi-main.c (mi_async): Likewise.
+ (mi_async_1): Likewise.
+ * mips-tdep.c (mips64_transfers_32bit_regs_p): Likewise.
+ * nat/fork-inferior.h (startup_with_shell): Likewise.
+ * nat/linux-namespaces.c (debug_linux_namespaces): Likewise.
+ * nat/linux-namespaces.h (debug_linux_namespaces): Likewise.
+ * nios2-tdep.c (nios2_debug): Likewise.
+ * or1k-tdep.c (or1k_debug): Likewise.
+ * parse.c (parser_debug): Likewise.
+ * parser-defs.h (parser_debug): Likewise.
+ * printcmd.c (print_symbol_filename): Likewise.
+ * proc-api.c (procfs_trace): Likewise.
+ * python/py-auto-load.c (auto_load_python_scripts): Likewise.
+ * python/py-param.c (union parmpy_variable): Add "bool boolval" field.
+ (set_parameter_value): Update.
+ (add_setshow_generic): Update.
+ * python/py-value.c (copy_py_bool_obj): Change argument from int*
+ to bool*.
+ * python/python.c (gdbpy_parameter_value): Cast to bool* instead of
+ int*.
+ * ravenscar-thread.c (ravenscar_task_support): Change to bool.
+ * record-btrace.c (record_btrace_target::store_registers): Update.
+ * record-full.c (record_full_memory_query): Change to bool.
+ (record_full_stop_at_limit): Likewise.
+ * record-full.h (record_full_memory_query): Likewise.
+ * remote-notif.c (notif_debug): Likewise.
+ * remote-notif.h (notif_debug): Likewise.
+ * remote.c (use_range_stepping): Likewise.
+ (interrupt_on_connect): Likewise.
+ (remote_break): Likewise.
+ * ser-tcp.c (tcp_auto_retry): Likewise.
+ * ser-unix.c (serial_hwflow): Likewise.
+ * skip.c (debug_skip): Likewise.
+ * solib-aix.c (solib_aix_debug): Likewise.
+ * spu-tdep.c (spu_stop_on_load_p): Likewise.
+ (spu_auto_flush_cache_p): Likewise.
+ * stack.c (struct backtrace_cmd_options) <full, no_filters, hide>:
+ Likewise.
+ (struct info_print_options) <quiet>: Likewise.
+ * symfile-debug.c (debug_symfile): Likewise.
+ * symfile.c (auto_solib_add): Likewise.
+ (separate_debug_file_debug): Likewise.
+ * symfile.h (auto_solib_add): Likewise.
+ (separate_debug_file_debug): Likewise.
+ * symtab.c (basenames_may_differ): Likewise.
+ (struct filename_partial_match_opts) <dirname, basename>: Likewise.
+ (struct info_print_options) <quiet, exclude_minsyms>: Likewise.
+ (struct info_types_options) <quiet>: Likewise.
+ * symtab.h (demangle): Likewise.
+ (basenames_may_differ): Likewise.
+ * target-dcache.c (stack_cache_enabled_1): Likewise.
+ (code_cache_enabled_1): Likewise.
+ * target.c (trust_readonly): Likewise.
+ (may_write_registers): Likewise.
+ (may_write_memory): Likewise.
+ (may_insert_breakpoints): Likewise.
+ (may_insert_tracepoints): Likewise.
+ (may_insert_fast_tracepoints): Likewise.
+ (may_stop): Likewise.
+ (auto_connect_native_target): Likewise.
+ (target_stop_and_wait): Update.
+ (target_async_permitted): Change to bool.
+ (target_async_permitted_1): Likewise.
+ (may_write_registers_1): Likewise.
+ (may_write_memory_1): Likewise.
+ (may_insert_breakpoints_1): Likewise.
+ (may_insert_tracepoints_1): Likewise.
+ (may_insert_fast_tracepoints_1): Likewise.
+ (may_stop_1): Likewise.
+ * target.h (target_async_permitted): Likewise.
+ (may_write_registers): Likewise.
+ (may_write_memory): Likewise.
+ (may_insert_breakpoints): Likewise.
+ (may_insert_tracepoints): Likewise.
+ (may_insert_fast_tracepoints): Likewise.
+ (may_stop): Likewise.
+ * thread.c (struct info_threads_opts) <show_global_ids>: Likewise.
+ (make_thread_apply_all_options_def_group): Change argument from int*
+ to bool*.
+ (thread_apply_all_command): Update.
+ (print_thread_events): Change to bool.
+ * top.c (confirm): Likewise.
+ (command_editing_p): Likewise.
+ (history_expansion_p): Likewise.
+ (write_history_p): Likewise.
+ (info_verbose): Likewise.
+ * top.h (confirm): Likewise.
+ (history_expansion_p): Likewise.
+ * tracepoint.c (disconnected_tracing): Likewise.
+ (circular_trace_buffer): Likewise.
+ * typeprint.c (print_methods): Likewise.
+ (print_typedefs): Likewise.
+ * utils.c (debug_timestamp): Likewise.
+ (sevenbit_strings): Likewise.
+ (pagination_enabled): Likewise.
+ * utils.h (sevenbit_strings): Likewise.
+ (pagination_enabled): Likewise.
+ * valops.c (overload_resolution): Likewise.
+ * valprint.h (struct value_print_options) <prettyformat_arrays,
+ prettyformat_structs, vtblprint, unionprint, addressprint, objectprint,
+ stop_print_at_null, print_array_indexes, deref_ref, static_field_print,
+ pascal_static_field_print, raw, summary, symbol_print, finish_print>:
+ Likewise.
+ * windows-nat.c (new_console): Likewise.
+ (cygwin_exceptions): Likewise.
+ (new_group): Likewise.
+ (debug_exec): Likewise.
+ (debug_events): Likewise.
+ (debug_memory): Likewise.
+ (debug_exceptions): Likewise.
+ (useshell): Likewise.
+ * windows-tdep.c (maint_display_all_tib): Likewise.
+ * xml-support.c (debug_xml): Likewise.
+
2019-09-17 Mike Gulick <mgulick@mathworks.com>
* source.c (prepare_path_for_appending): New function.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 8cdb62bde0..c34733e754 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -358,7 +358,7 @@ maint_show_ada_cmd (const char *args, int from_tty)
/* The "maintenance ada set/show ignore-descriptive-type" value. */
-static int ada_ignore_descriptive_types_p = 0;
+static bool ada_ignore_descriptive_types_p = false;
/* Inferior-specific data. */
@@ -3795,7 +3795,7 @@ sort_choices (struct block_symbol syms[], int nsyms)
/* Whether GDB should display formals and return types for functions in the
overloads selection menu. */
-static int print_signatures = 1;
+static bool print_signatures = true;
/* Print the signature for SYM on STREAM according to the FLAGS options. For
all but functions, the signature is just the name of the symbol. For
@@ -9299,7 +9299,7 @@ ada_is_string_type (struct type *type)
Set to True if the debugger should trust the contents of PAD types.
Otherwise, ignore the PAD type if there is a parallel XVS type. */
-static int trust_pad_over_xvs = 1;
+static bool trust_pad_over_xvs = true;
/* True if TYPE is a struct type introduced by the compiler to force the
alignment of a value. Such types have a single field with a
diff --git a/gdb/arch/aarch64-insn.c b/gdb/arch/aarch64-insn.c
index e04ad87fef..48d0be83ff 100644
--- a/gdb/arch/aarch64-insn.c
+++ b/gdb/arch/aarch64-insn.c
@@ -20,7 +20,7 @@
#include "aarch64-insn.h"
/* Toggle this file's internal debugging dump. */
-int aarch64_debug = 0;
+bool aarch64_debug = false;
/* Extract a signed value from a bit field within an instruction
encoding.
diff --git a/gdb/arch/aarch64-insn.h b/gdb/arch/aarch64-insn.h
index 4492594c1b..47a825b114 100644
--- a/gdb/arch/aarch64-insn.h
+++ b/gdb/arch/aarch64-insn.h
@@ -19,7 +19,7 @@
#ifndef ARCH_AARCH64_INSN_H
#define ARCH_AARCH64_INSN_H
-extern int aarch64_debug;
+extern bool aarch64_debug;
/* List of opcodes that we need for building the jump pad and relocating
an instruction. */
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 6a374bbc74..ef44e68d31 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -66,7 +66,7 @@
#define PTRACE_SETHBPREGS 30
#endif
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
class arm_linux_nat_target final : public linux_nat_target
{
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index aec20877d9..31ea4564db 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -56,7 +56,7 @@
#include "user-regs.h"
#include <ctype.h>
#include "elf/common.h"
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
/* Under ARM GNU/Linux the traditional way of performing a breakpoint
is to execute a particular software interrupt, rather than use a
diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c
index 2a83553a3f..38a9e954b9 100644
--- a/gdb/arm-nbsd-nat.c
+++ b/gdb/arm-nbsd-nat.c
@@ -40,7 +40,7 @@ public:
static arm_netbsd_nat_target the_arm_netbsd_nat_target;
-extern int arm_apcs_32;
+extern bool arm_apcs_32;
static void
arm_supply_gregset (struct regcache *regcache, struct reg *gregset)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 5dcc443122..0650485bf0 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -65,7 +65,7 @@
#include "gdbsupport/selftest.h"
#endif
-static int arm_debug;
+static bool arm_debug;
/* Macros for setting and testing a bit in a minimal symbol that marks
it as Thumb function. The MSB of the minimal symbol's "info" field
@@ -296,7 +296,7 @@ static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch,
/* Set to true if the 32-bit mode is in use. */
-int arm_apcs_32 = 1;
+bool arm_apcs_32 = true;
/* Return the bit mask in ARM_PS_REGNUM that indicates Thumb mode. */
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 115d5c10e8..9798ab1a06 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -61,7 +61,7 @@ static void maybe_print_script_not_found_warning
const char *section_name, unsigned offset);
/* Value of the 'set debug auto-load' configuration variable. */
-static int debug_auto_load = 0;
+static bool debug_auto_load = false;
/* "show" command for the debug_auto_load configuration variable. */
@@ -79,7 +79,7 @@ show_debug_auto_load (struct ui_file *file, int from_tty,
set auto-load gdb-scripts on|off
This is true if we should auto-load associated scripts when an objfile
is opened, false otherwise. */
-static int auto_load_gdb_scripts = 1;
+static bool auto_load_gdb_scripts = true;
/* "show" command for the auto_load_gdb_scripts configuration variable. */
@@ -110,16 +110,16 @@ auto_load_gdb_scripts_enabled (const struct extension_language_defn *extlang)
This flag exists to facilitate deferring auto-loading during start-up
until after ./.gdbinit has been read; it may augment the search directories
used to find the scripts. */
-int global_auto_load = 1;
+bool global_auto_load = true;
/* Auto-load .gdbinit file from the current directory? */
-int auto_load_local_gdbinit = 1;
+bool auto_load_local_gdbinit = true;
/* Absolute pathname to the current directory .gdbinit, if it exists. */
char *auto_load_local_gdbinit_pathname = NULL;
-/* Boolean value if AUTO_LOAD_LOCAL_GDBINIT_PATHNAME has been loaded. */
-int auto_load_local_gdbinit_loaded = 0;
+/* if AUTO_LOAD_LOCAL_GDBINIT_PATHNAME has been loaded. */
+bool auto_load_local_gdbinit_loaded = false;
/* "show" command for the auto_load_local_gdbinit configuration variable. */
diff --git a/gdb/auto-load.h b/gdb/auto-load.h
index 5d5903e119..ab865e9fa5 100644
--- a/gdb/auto-load.h
+++ b/gdb/auto-load.h
@@ -25,11 +25,11 @@ struct program_space;
struct auto_load_pspace_info;
struct extension_language_defn;
-extern int global_auto_load;
+extern bool global_auto_load;
-extern int auto_load_local_gdbinit;
+extern bool auto_load_local_gdbinit;
extern char *auto_load_local_gdbinit_pathname;
-extern int auto_load_local_gdbinit_loaded;
+extern bool auto_load_local_gdbinit_loaded;
extern struct auto_load_pspace_info *
get_auto_load_pspace_data_for_loading (struct program_space *pspace);
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 9478d2dcf2..8ef3aac0c1 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -290,7 +290,7 @@ static char *dprintf_channel;
/* True if dprintf commands should continue to operate even if GDB
has disconnected. */
-static int disconnected_dprintf = 1;
+static bool disconnected_dprintf = true;
struct command_line *
breakpoint_commands (struct breakpoint *b)
@@ -301,7 +301,7 @@ breakpoint_commands (struct breakpoint *b)
/* Flag indicating that a command has proceeded the inferior past the
current breakpoint. */
-static int breakpoint_proceeded;
+static bool breakpoint_proceeded;
const char *
bpdisp_text (enum bpdisp disp)
@@ -346,11 +346,11 @@ show_pending_break_support (struct ui_file *file, int from_tty,
value);
}
-/* If 1, gdb will automatically use hardware breakpoints for breakpoints
+/* If true, gdb will automatically use hardware breakpoints for breakpoints
set with "break" but falling in read-only memory.
- If 0, gdb will warn about such breakpoints, but won't automatically
+ If false, gdb will warn about such breakpoints, but won't automatically
use hardware breakpoints. */
-static int automatic_hardware_breakpoints;
+static bool automatic_hardware_breakpoints;
static void
show_automatic_hardware_breakpoints (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
@@ -368,7 +368,7 @@ show_automatic_hardware_breakpoints (struct ui_file *file, int from_tty,
breakpoints until the next resume, and removes them again when the
target fully stops. This is a bit safer in case GDB crashes while
processing user input. */
-static int always_inserted_mode = 0;
+static bool always_inserted_mode = false;
static void
show_always_inserted_mode (struct ui_file *file, int from_tty,
@@ -477,7 +477,7 @@ static int executing_breakpoint_commands;
static int overlay_events_enabled;
/* See description in breakpoint.h. */
-int target_exact_watchpoints = 0;
+bool target_exact_watchpoints = false;
/* Walk the following statement or block through all breakpoints.
ALL_BREAKPOINTS_SAFE does so even if the statement deletes the
@@ -15954,7 +15954,7 @@ Usage: agent-printf \"format string\", ARG1, ARG2, ARG3, ..., ARGN\n\
This supports most C printf format specifications, like %s, %d, etc.\n\
This is useful for formatted output in user-defined commands."));
- automatic_hardware_breakpoints = 1;
+ automatic_hardware_breakpoints = true;
gdb::observers::about_to_proceed.attach (breakpoint_about_to_proceed);
gdb::observers::thread_exit.attach (remove_threaded_breakpoints);
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 69a043c767..49380e30c2 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -675,7 +675,7 @@ enum watchpoint_triggered
only one register per watchpoint, thus assuming that all acesses that
modify a memory location happen at its starting address. */
-extern int target_exact_watchpoints;
+extern bool target_exact_watchpoints;
/* Note that the ->silent field is not currently used by any commands
(though the code is in there if it was to be, and set_raw_breakpoint
diff --git a/gdb/btrace.c b/gdb/btrace.c
index 466607dbfc..1b809fb5c0 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -51,7 +51,7 @@ static struct cmd_list_element *maint_btrace_pt_set_cmdlist;
static struct cmd_list_element *maint_btrace_pt_show_cmdlist;
/* Control whether to skip PAD packets when computing the packet history. */
-static int maint_btrace_pt_skip_pad = 1;
+static bool maint_btrace_pt_skip_pad = true;
static void btrace_add_pc (struct thread_info *tp);
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 4fc656775c..59c71f6756 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -165,7 +165,7 @@ struct cmd_list_element *showchecklist;
/* Command tracing state. */
int source_verbose = 0;
-int trace_commands = 0;
+bool trace_commands = false;
\f
/* 'script-extension' option support. */
diff --git a/gdb/cli/cli-cmds.h b/gdb/cli/cli-cmds.h
index 5bfffde04a..1a8b9a0d50 100644
--- a/gdb/cli/cli-cmds.h
+++ b/gdb/cli/cli-cmds.h
@@ -139,7 +139,7 @@ extern gdb::optional<open_script>
/* Command tracing state. */
extern int source_verbose;
-extern int trace_commands;
+extern bool trace_commands;
/* Common code for the "with" and "maintenance with" commands.
SET_CMD_PREFIX is the spelling of the corresponding "set" command
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 7d4b39f467..debffbc0f7 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -589,7 +589,7 @@ const char * const boolean_enums[] = { "on", "off", NULL };
Returns the new command element. */
cmd_list_element *
-add_setshow_boolean_cmd (const char *name, enum command_class theclass, int *var,
+add_setshow_boolean_cmd (const char *name, enum command_class theclass, bool *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
cmd_const_sfunc_ftype *set_func,
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 9e39be197b..22b540b481 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -33,7 +33,7 @@ show_logging_filename (struct ui_file *file, int from_tty,
value);
}
-static int logging_overwrite;
+static bool logging_overwrite;
static void
maybe_warn_already_logging ()
@@ -61,8 +61,8 @@ show_logging_overwrite (struct ui_file *file, int from_tty,
}
/* Value as configured by the user. */
-static int logging_redirect;
-static int debug_redirect;
+static bool logging_redirect;
+static bool debug_redirect;
static void
set_logging_redirect (const char *args,
diff --git a/gdb/cli/cli-option.h b/gdb/cli/cli-option.h
index d231d8b1ad..3fd0c0cdae 100644
--- a/gdb/cli/cli-option.h
+++ b/gdb/cli/cli-option.h
@@ -82,7 +82,7 @@ public:
returns the address of some member. */
union
{
- int *(*boolean) (const option_def &, void *ctx);
+ bool *(*boolean) (const option_def &, void *ctx);
unsigned int *(*uinteger) (const option_def &, void *ctx);
int *(*integer) (const option_def &, void *ctx);
const char **(*enumeration) (const option_def &, void *ctx);
@@ -155,7 +155,7 @@ template<typename Context>
struct boolean_option_def : option_def
{
boolean_option_def (const char *long_option_,
- int *(*get_var_address_cb_) (Context *),
+ bool *(*get_var_address_cb_) (Context *),
show_value_ftype *show_cmd_cb_,
const char *set_doc_,
const char *show_doc_ = nullptr,
@@ -165,7 +165,7 @@ struct boolean_option_def : option_def
show_cmd_cb_,
set_doc_, show_doc_, help_doc_)
{
- var_address.boolean = detail::get_var_address<int, Context>;
+ var_address.boolean = detail::get_var_address<bool, Context>;
}
};
@@ -173,11 +173,11 @@ struct boolean_option_def : option_def
hood, but unlike boolean options, flag options don't take an on/off
argument. */
-template<typename Context = int>
+template<typename Context = bool>
struct flag_option_def : boolean_option_def<Context>
{
flag_option_def (const char *long_option_,
- int *(*var_address_cb_) (Context *),
+ bool *(*var_address_cb_) (Context *),
const char *set_doc_,
const char *help_doc_ = nullptr)
: boolean_option_def<Context> (long_option_,
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 40538832b5..d8391597ac 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -416,9 +416,9 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
if (val < 0)
error (_("\"on\" or \"off\" expected."));
- if (val != *(int *) c->var)
+ if (val != *(bool *) c->var)
{
- *(int *) c->var = val;
+ *(bool *) c->var = val;
option_changed = 1;
}
@@ -588,7 +588,7 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
break;
case var_boolean:
{
- const char *opt = *(int *) c->var ? "on" : "off";
+ const char *opt = *(bool *) c->var ? "on" : "off";
gdb::observers::command_param_changed.notify (name, opt);
}
@@ -645,7 +645,7 @@ get_setshow_command_value_string (cmd_list_element *c)
stb.puts (*(char **) c->var);
break;
case var_boolean:
- stb.puts (*(int *) c->var ? "on" : "off");
+ stb.puts (*(bool *) c->var ? "on" : "off");
break;
case var_auto_boolean:
switch (*(enum auto_boolean*) c->var)
diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c
index e594e38cd6..ea301774d2 100644
--- a/gdb/cli/cli-style.c
+++ b/gdb/cli/cli-style.c
@@ -26,15 +26,15 @@
/* True if styling is enabled. */
#if defined (__MSDOS__) || defined (__CYGWIN__)
-int cli_styling = 0;
+bool cli_styling = false;
#else
-int cli_styling = 1;
+bool cli_styling = true;
#endif
/* True if source styling is enabled. Note that this is only
consulted when cli_styling is true. */
-int source_styling = 1;
+bool source_styling = true;
/* Name of colors; must correspond to ui_file_style::basic_color. */
static const char * const cli_colors[] = {
diff --git a/gdb/cli/cli-style.h b/gdb/cli/cli-style.h
index cdcea84f0e..826162f578 100644
--- a/gdb/cli/cli-style.h
+++ b/gdb/cli/cli-style.h
@@ -110,9 +110,9 @@ extern cli_style_option title_style;
/* True if source styling is enabled. */
-extern int source_styling;
+extern bool source_styling;
/* True if styling is enabled. */
-extern int cli_styling;
+extern bool cli_styling;
#endif /* CLI_CLI_STYLE_H */
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index cbe8ff66e1..33b8663e9a 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -215,9 +215,9 @@ check_for_argument (char **str, const char *arg)
struct qcs_flags
{
- int quiet = false;
- int cont = false;
- int silent = false;
+ bool quiet = false;
+ bool cont = false;
+ bool silent = false;
};
/* Validate FLAGS. Throws an error if both FLAGS->CONT and
diff --git a/gdb/command.h b/gdb/command.h
index 2c608048d5..cf190ef649 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -62,8 +62,8 @@ cmd_types;
/* Types of "set" or "show" command. */
typedef enum var_types
{
- /* "on" or "off". *VAR is an integer which is nonzero for on,
- zero for off. */
+ /* "on" or "off". *VAR is a bool which is true for on,
+ false for off. */
var_boolean,
/* "on" / "true" / "enable" or "off" / "false" / "disable" or
@@ -331,7 +331,7 @@ extern void add_setshow_auto_boolean_cmd (const char *name,
extern cmd_list_element *
add_setshow_boolean_cmd (const char *name,
enum command_class theclass,
- int *var,
+ bool *var,
const char *set_doc, const char *show_doc,
const char *help_doc,
cmd_const_sfunc_ftype *set_func,
diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
index 3a7c8b01f7..042c2afbe9 100644
--- a/gdb/compile/compile-cplus-types.c
+++ b/gdb/compile/compile-cplus-types.c
@@ -41,11 +41,11 @@ const char *compile_cplus_instance::m_default_cflags = "-std=gnu++11";
/* Flag to enable internal debugging. */
-static int debug_compile_cplus_types = 0;
+static bool debug_compile_cplus_types = false;
/* Flag to enable internal scope switching debugging. */
-static int debug_compile_cplus_scopes = 0;
+static bool debug_compile_cplus_scopes = false;
/* Forward declarations. */
diff --git a/gdb/compile/compile-internal.h b/gdb/compile/compile-internal.h
index 406a369d68..9c0e989410 100644
--- a/gdb/compile/compile-internal.h
+++ b/gdb/compile/compile-internal.h
@@ -21,7 +21,7 @@
/* Debugging flag for the "compile" family of commands. */
-extern int compile_debug;
+extern bool compile_debug;
struct block;
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index 87970d2c94..5c3400ffec 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -56,7 +56,7 @@ static struct cmd_list_element *compile_command_list;
/* Debug flag for "compile" commands. */
-int compile_debug;
+bool compile_debug;
/* Object of this type are stored in the compiler's symbol_err_map. */
@@ -241,7 +241,7 @@ show_compile_debug (struct ui_file *file, int from_tty,
struct compile_options
{
/* For -raw. */
- int raw = false;
+ bool raw = false;
};
using compile_flag_option_def
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index b8b0fcc0ae..cd732b60e7 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -1469,10 +1469,10 @@ cp_lookup_rtti_type (const char *name, const struct block *block)
#ifdef HAVE_WORKING_FORK
-/* If nonzero, attempt to catch crashes in the demangler and print
+/* If true, attempt to catch crashes in the demangler and print
useful debugging information. */
-static int catch_demangler_crashes = 1;
+static bool catch_demangler_crashes = true;
/* Stack context and environment for demangler crash recovery. */
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index 8eda05806f..706f65db28 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -148,7 +148,7 @@ extern const struct cris_spec_reg cris_spec_regs[];
static unsigned int usr_cmd_cris_version;
/* Indicates whether to trust the above variable. */
-static int usr_cmd_cris_version_valid = 0;
+static bool usr_cmd_cris_version_valid = false;
static const char cris_mode_normal[] = "normal";
static const char cris_mode_guru[] = "guru";
@@ -163,7 +163,7 @@ static const char *const cris_modes[] = {
static const char *usr_cmd_cris_mode = cris_mode_normal;
/* Whether to make use of Dwarf-2 CFI (default on). */
-static int usr_cmd_cris_dwarf2_cfi = 1;
+static bool usr_cmd_cris_dwarf2_cfi = true;
/* Sigtramp identification code copied from i386-linux-tdep.c. */
diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c
index 54b856af06..a6f78a187c 100644
--- a/gdb/csky-tdep.c
+++ b/gdb/csky-tdep.c
@@ -59,7 +59,7 @@
#include <vector>
/* Control debugging information emitted in this file. */
-static int csky_debug = 0;
+static bool csky_debug = false;
static struct reggroup *cr_reggroup;
static struct reggroup *fr_reggroup;
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index 8f71def069..ceef36473d 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -120,7 +120,7 @@ static vm_size_t mach_page_size;
/* If Set, catch all mach exceptions (before they are converted to signals
by the kernel). */
-static int enable_mach_exceptions;
+static bool enable_mach_exceptions;
/* Inferior that should report a fake stop event. */
static struct inferior *darwin_inf_fake_stop;
diff --git a/gdb/dcache.c b/gdb/dcache.c
index 1716def4c4..509782c319 100644
--- a/gdb/dcache.c
+++ b/gdb/dcache.c
@@ -126,7 +126,7 @@ static int dcache_read_line (DCACHE *dcache, struct dcache_block *db);
static struct dcache_block *dcache_alloc (DCACHE *dcache, CORE_ADDR addr);
-static int dcache_enabled_p = 0; /* OBSOLETE */
+static bool dcache_enabled_p = false; /* OBSOLETE */
static void
show_dcache_enabled_p (struct ui_file *file, int from_tty,
diff --git a/gdb/defs.h b/gdb/defs.h
index c9a38b60a6..f12ba366cc 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -314,7 +314,7 @@ struct ui;
extern int input_interactive_p (struct ui *);
-extern int info_verbose;
+extern bool info_verbose;
/* From printcmd.c */
diff --git a/gdb/demangle.c b/gdb/demangle.c
index 29f46968a2..cfe3421b23 100644
--- a/gdb/demangle.c
+++ b/gdb/demangle.c
@@ -44,7 +44,7 @@
#endif
/* See documentation in gdb-demangle.h. */
-int demangle = 1;
+bool demangle = true;
static void
show_demangle (struct ui_file *file, int from_tty,
@@ -57,7 +57,7 @@ show_demangle (struct ui_file *file, int from_tty,
}
/* See documentation in gdb-demangle.h. */
-int asm_demangle = 0;
+bool asm_demangle = false;
static void
show_asm_demangle (struct ui_file *file, int from_tty,
diff --git a/gdb/dwarf-index-cache.c b/gdb/dwarf-index-cache.c
index e56cb59343..d00d6511ab 100644
--- a/gdb/dwarf-index-cache.c
+++ b/gdb/dwarf-index-cache.c
@@ -32,8 +32,8 @@
#include <string>
#include <stdlib.h>
-/* When set to 1, show debug messages about the index cache. */
-static int debug_index_cache = 0;
+/* When set to true, show debug messages about the index cache. */
+static bool debug_index_cache = false;
/* The index cache directory, used for "set/show index-cache directory". */
static char *index_cache_directory = NULL;
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index 7839942b8c..e18b35e7db 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -171,7 +171,7 @@ static CORE_ADDR read_encoded_value (struct comp_unit *unit, gdb_byte encoding,
\f
/* See dwarf2-frame.h. */
-int dwarf2_frame_unwinders_enabled_p = 1;
+bool dwarf2_frame_unwinders_enabled_p = true;
/* Store the length the expression for the CFA in the `cfa_reg' field,
which is unused in that case. */
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index 6caf82ae0f..3c54f0950e 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -201,7 +201,7 @@ struct dwarf2_frame_state
registered with the gdbarch. Not all architectures can or do use the
DWARF unwinders. Setting this to true on a target that does not
otherwise support the DWARF unwinders has no effect. */
-extern int dwarf2_frame_unwinders_enabled_p;
+extern bool dwarf2_frame_unwinders_enabled_p;
/* Set the architecture-specific register state initialization
function for GDBARCH to INIT_REG. */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a2b80ebbc1..ea9904c416 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -102,11 +102,11 @@ static unsigned int dwarf_die_debug = 0;
/* When non-zero, dump line number entries as they are read in. */
static unsigned int dwarf_line_debug = 0;
-/* When non-zero, cross-check physname against demangler. */
-static int check_physname = 0;
+/* When true, cross-check physname against demangler. */
+static bool check_physname = false;
-/* When non-zero, do not reject deprecated .gdb_index sections. */
-static int use_deprecated_index_sections = 0;
+/* When true, do not reject deprecated .gdb_index sections. */
+static bool use_deprecated_index_sections = false;
static const struct objfile_key<dwarf2_per_objfile> dwarf2_objfile_data_key;
@@ -25837,7 +25837,7 @@ show_dwarf_cmd (const char *args, int from_tty)
cmd_show_list (show_dwarf_cmdlist, from_tty, "");
}
-int dwarf_always_disassemble;
+bool dwarf_always_disassemble;
static void
show_dwarf_always_disassemble (struct ui_file *file, int from_tty,
diff --git a/gdb/eval.c b/gdb/eval.c
index aed89e5f85..f8915b9957 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -43,7 +43,7 @@
#include <ctype.h>
/* This is defined in valops.c */
-extern int overload_resolution;
+extern bool overload_resolution;
/* Prototypes for local functions. */
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 2132fb550d..0b05b2f85a 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -86,11 +86,11 @@ static void async_sigterm_handler (gdb_client_data arg);
ezannoni: as of 1999-04-29 I expect that this
variable will not be used after gdb is changed to use the event
loop as default engine, and event-top.c is merged into top.c. */
-int set_editing_cmd_var;
+bool set_editing_cmd_var;
/* This is used to display the notification of the completion of an
asynchronous execution command. */
-int exec_done_display_p = 0;
+bool exec_done_display_p = false;
/* Used by the stdin event handler to compensate for missed stdin events.
Setting this to a non-zero value inside an stdin callback makes the callback
diff --git a/gdb/event-top.h b/gdb/event-top.h
index 4c3e6cb861..1dc7b13d4f 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -52,8 +52,8 @@ extern void async_enable_stdin (void);
/* Exported variables from event-top.c.
FIXME: these should really go into top.h. */
-extern int set_editing_cmd_var;
-extern int exec_done_display_p;
+extern bool set_editing_cmd_var;
+extern bool exec_done_display_p;
extern struct prompts the_prompts;
extern void (*after_char_processing_hook) (void);
extern int call_stdin_event_handler_again_p;
diff --git a/gdb/exec.c b/gdb/exec.c
index 3098fcaadd..4e4cacffda 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -84,7 +84,7 @@ static exec_target exec_ops;
/* Whether to open exec and core files read-only or read-write. */
-int write_files = 0;
+bool write_files = false;
static void
show_write_files (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 5f121fc6f2..0274ff542e 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -832,8 +832,8 @@ fbsd_nat_target::xfer_partial (enum target_object object,
}
#ifdef PT_LWPINFO
-static int debug_fbsd_lwp;
-static int debug_fbsd_nat;
+static bool debug_fbsd_lwp;
+static bool debug_fbsd_nat;
static void
show_fbsd_lwp_debug (struct ui_file *file, int from_tty,
diff --git a/gdb/frame.h b/gdb/frame.h
index 09842c92a3..624bc87c9d 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -808,9 +808,9 @@ struct frame_print_options
const char *print_frame_info = print_frame_info_auto;
const char *print_entry_values = print_entry_values_default;
- /* If non-zero, don't invoke pretty-printers for frame
+ /* If true, don't invoke pretty-printers for frame
arguments. */
- int print_raw_frame_arguments;
+ bool print_raw_frame_arguments;
};
/* The values behind the global "set print ..." settings. */
@@ -931,11 +931,11 @@ struct set_backtrace_options
{
/* Flag to indicate whether backtraces should continue past
main. */
- int backtrace_past_main = 0;
+ bool backtrace_past_main = false;
/* Flag to indicate whether backtraces should continue past
entry. */
- int backtrace_past_entry = 0;
+ bool backtrace_past_entry = false;
/* Upper bound on the number of backtrace levels. Note this is not
exposed as a command option, because "backtrace" and "frame
diff --git a/gdb/gdb-demangle.h b/gdb/gdb-demangle.h
index 9c944a5017..327a63313b 100644
--- a/gdb/gdb-demangle.h
+++ b/gdb/gdb-demangle.h
@@ -19,14 +19,14 @@
#ifndef GDB_DEMANGLE_H
#define GDB_DEMANGLE_H
-/* Nonzero means that encoded C++/ObjC names should be printed out in their
+/* True means that encoded C++/ObjC names should be printed out in their
C++/ObjC form rather than raw. */
-extern int demangle;
+extern bool demangle;
-/* Nonzero means that encoded C++/ObjC names should be printed out in their
+/* True means that encoded C++/ObjC names should be printed out in their
C++/ObjC form even in assembler language displays. If this is set, but
- DEMANGLE is zero, names are printed raw, i.e. DEMANGLE controls. */
-extern int asm_demangle;
+ DEMANGLE is false, names are printed raw, i.e. DEMANGLE controls. */
+extern bool asm_demangle;
/* Check if a character is one of the commonly used C++ marker characters. */
extern int is_cplus_marker (int);
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index d3b4c749f5..a17460a8a0 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -137,7 +137,7 @@ static htab_t gdb_bfd_cache;
/* When true gdb will reuse an existing bfd object if the filename,
modification time, and file size all match. */
-static int bfd_sharing = 1;
+static bool bfd_sharing = true;
static void
show_bfd_sharing (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h
index 6f9b4d88ec..cac91c097b 100644
--- a/gdb/gdbcore.h
+++ b/gdb/gdbcore.h
@@ -137,7 +137,7 @@ extern void specify_exec_file_hook (void (*hook) (const char *filename));
/* Whether to open exec and core files read-only or read-write. */
-extern int write_files;
+extern bool write_files;
/* Open and set up the core file bfd. */
diff --git a/gdb/gdbsupport/common-debug.c b/gdb/gdbsupport/common-debug.c
index 97c90032eb..7e7e5c3f01 100644
--- a/gdb/gdbsupport/common-debug.c
+++ b/gdb/gdbsupport/common-debug.c
@@ -22,7 +22,7 @@
/* See gdbsupport/common-debug.h. */
-int show_debug_regs;
+bool show_debug_regs;
/* See gdbsupport/common-debug.h. */
diff --git a/gdb/gdbsupport/common-debug.h b/gdb/gdbsupport/common-debug.h
index d5bfc9eb3a..5584f09844 100644
--- a/gdb/gdbsupport/common-debug.h
+++ b/gdb/gdbsupport/common-debug.h
@@ -20,10 +20,10 @@
#ifndef COMMON_COMMON_DEBUG_H
#define COMMON_COMMON_DEBUG_H
-/* Set to nonzero to enable debugging of hardware breakpoint/
+/* Set to true to enable debugging of hardware breakpoint/
watchpoint support code. */
-extern int show_debug_regs;
+extern bool show_debug_regs;
/* Print a formatted message to the appropriate channel for
debugging output for the client. */
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index 04230d3c17..0daea9c2da 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -623,7 +623,7 @@ extern void thread_command (const char *tidstr, int from_tty);
/* Print notices on thread events (attach, detach, etc.), set with
`set print thread-events'. */
-extern int print_thread_events;
+extern bool print_thread_events;
/* Prints the list of threads and their details on UIOUT. If
REQUESTED_THREADS, a list of GDB ids/ranges, is not NULL, only
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 4bc02e08f9..afda89e43f 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -116,7 +116,7 @@ const struct floatformat *floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN] = {
/* Should opaque types be resolved? */
-static int opaque_type_resolution = 1;
+static bool opaque_type_resolution = true;
/* A flag to enable printing of debugging information of C++
overloading. */
@@ -125,7 +125,7 @@ unsigned int overload_debug = 0;
/* A flag to enable strict type checking. */
-static int strict_type_checking = 1;
+static bool strict_type_checking = true;
/* A function to show whether opaque types are resolved. */
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 80e78e859b..b55c75b097 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -93,7 +93,7 @@ int proc_wait_pid = 0;
/* The number of wait requests we've sent, and expect replies from. */
int proc_waits_pending = 0;
-int gnu_debug_flag = 0;
+bool gnu_debug_flag = false;
/* Forward decls */
diff --git a/gdb/guile/scm-auto-load.c b/gdb/guile/scm-auto-load.c
index cadf987b6f..4685969348 100644
--- a/gdb/guile/scm-auto-load.c
+++ b/gdb/guile/scm-auto-load.c
@@ -30,7 +30,7 @@
set auto-load guile-scripts on|off
This is true if we should auto-load associated Guile scripts when an
objfile is opened, false otherwise. */
-static int auto_load_guile_scripts = 1;
+static bool auto_load_guile_scripts = true;
/* "show" command for the auto_load_guile_scripts configuration variable. */
diff --git a/gdb/guile/scm-param.c b/gdb/guile/scm-param.c
index 53120cb23e..6d24c2c37b 100644
--- a/gdb/guile/scm-param.c
+++ b/gdb/guile/scm-param.c
@@ -31,7 +31,10 @@
union pascm_variable
{
- /* Hold an integer value, for boolean and integer types. */
+ /* Hold an boolean value. */
+ bool boolval;
+
+ /* Hold an integer value. */
int intval;
/* Hold an auto_boolean. */
@@ -365,7 +368,7 @@ add_setshow_generic (enum var_types param_type, enum command_class cmd_class,
{
case var_boolean:
add_setshow_boolean_cmd (cmd_name, cmd_class,
- &self->value.intval,
+ &self->value.boolval,
set_doc, show_doc, help_doc,
set_func, show_func,
set_list, show_list);
@@ -606,7 +609,7 @@ pascm_param_value (enum var_types type, void *var,
case var_boolean:
{
- if (* (int *) var)
+ if (* (bool *) var)
return SCM_BOOL_T;
else
return SCM_BOOL_F;
@@ -717,7 +720,7 @@ pascm_set_param_value_x (enum var_types type, union pascm_variable *var,
case var_boolean:
SCM_ASSERT_TYPE (gdbscm_is_bool (value), value, arg_pos, func_name,
_("boolean"));
- var->intval = gdbscm_is_true (value);
+ var->boolval = gdbscm_is_true (value);
break;
case var_auto_boolean:
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index be30359638..b1f71883ec 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -41,7 +41,7 @@
#include "hppa-tdep.h"
#include <algorithm>
-static int hppa_debug = 0;
+static bool hppa_debug = false;
/* Some local constants. */
static const int hppa32_num_regs = 128;
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 23f17ee0e2..726f14d525 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -55,7 +55,7 @@
asynchronous inferior function call implementation, and that in
turn means restructuring the code so that it is event driven. */
-static int may_call_functions_p = 1;
+static bool may_call_functions_p = true;
static void
show_may_call_functions_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
@@ -86,7 +86,7 @@ show_may_call_functions_p (struct ui_file *file, int from_tty,
trust the debug information; the user can override this behavior
with "set coerce-float-to-double 0". */
-static int coerce_float_to_double_p = 1;
+static bool coerce_float_to_double_p = true;
static void
show_coerce_float_to_double_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -104,7 +104,7 @@ show_coerce_float_to_double_p (struct ui_file *file, int from_tty,
The default is to stop in the frame where the signal was received. */
-static int unwind_on_signal_p = 0;
+static bool unwind_on_signal_p = false;
static void
show_unwind_on_signal_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -127,7 +127,7 @@ show_unwind_on_signal_p (struct ui_file *file, int from_tty,
The default is to unwind the frame if a std::terminate call is
made. */
-static int unwind_on_terminating_exception_p = 1;
+static bool unwind_on_terminating_exception_p = true;
static void
show_unwind_on_terminating_exception_p (struct ui_file *file, int from_tty,
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index d7a7e6f933..dc82ef043f 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -105,7 +105,7 @@ int stopped_by_random_signal;
/* See inferior.h. */
-int startup_with_shell = 1;
+bool startup_with_shell = true;
\f
/* Accessor routines. */
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 2d58a11ba8..cf2175494d 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -46,7 +46,7 @@ struct inferior *inferior_list = NULL;
static int highest_inferior_num;
/* See inferior.h. */
-int print_inferior_events = 1;
+bool print_inferior_events = true;
/* The Current Inferior. This is a strong reference. I.e., whenever
an inferior is the current inferior, its refcount is
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 9cfb03cdbb..3a64a7cfea 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -244,7 +244,7 @@ extern void prepare_execution_command (struct target_ops *target,
The catch-exec traps expected during start-up will be one more if
the target is started up with a shell. */
-extern int startup_with_shell;
+extern bool startup_with_shell;
/* Nonzero if stopped due to completion of a stack dummy routine. */
@@ -257,7 +257,7 @@ extern int stopped_by_random_signal;
/* Print notices on inferior events (attach, detach, etc.), set with
`set print inferior-events'. */
-extern int print_inferior_events;
+extern bool print_inferior_events;
/* Anything but NO_STOP_QUIETLY means we expect a trap and the caller
will handle it themselves. STOP_QUIETLY is used when running in
diff --git a/gdb/infrun.c b/gdb/infrun.c
index a9588f896a..be29cbe4f5 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -136,7 +136,7 @@ mark_infrun_async_event_handler (void)
/* When set, stop the 'step' command if we enter a function which has
no line number information. The normal behavior is that we step
over such function. */
-int step_stop_if_no_debug = 0;
+bool step_stop_if_no_debug = false;
static void
show_step_stop_if_no_debug (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -155,9 +155,9 @@ static ptid_t previous_inferior_ptid;
Exactly which branch is detached depends on 'set follow-fork-mode'
setting. */
-static int detach_fork = 1;
+static bool detach_fork = true;
-int debug_displaced = 0;
+bool debug_displaced = false;
static void
show_debug_displaced (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -176,7 +176,7 @@ show_debug_infrun (struct ui_file *file, int from_tty,
/* Support for disabling address space randomization. */
-int disable_randomization = 1;
+bool disable_randomization = true;
static void
show_disable_randomization (struct ui_file *file, int from_tty,
@@ -205,8 +205,8 @@ set_disable_randomization (const char *args, int from_tty,
/* User interface for non-stop mode. */
-int non_stop = 0;
-static int non_stop_1 = 0;
+bool non_stop = false;
+static bool non_stop_1 = false;
static void
set_non_stop (const char *args, int from_tty,
@@ -234,8 +234,8 @@ show_non_stop (struct ui_file *file, int from_tty,
non-stop, in which all GDB operations that might affect the
target's execution have been disabled. */
-int observer_mode = 0;
-static int observer_mode_1 = 0;
+bool observer_mode = false;
+static bool observer_mode_1 = false;
static void
set_observer_mode (const char *args, int from_tty,
@@ -256,7 +256,7 @@ set_observer_mode (const char *args, int from_tty,
/* We can insert fast tracepoints in or out of observer mode,
but enable them if we're going into this mode. */
if (observer_mode)
- may_insert_fast_tracepoints = 1;
+ may_insert_fast_tracepoints = true;
may_stop = !observer_mode;
update_target_permissions ();
@@ -265,7 +265,7 @@ set_observer_mode (const char *args, int from_tty,
if (observer_mode)
{
pagination_enabled = 0;
- non_stop = non_stop_1 = 1;
+ non_stop = non_stop_1 = true;
}
if (from_tty)
@@ -289,13 +289,11 @@ show_observer_mode (struct ui_file *file, int from_tty,
void
update_observer_mode (void)
{
- int newval;
-
- newval = (!may_insert_breakpoints
- && !may_insert_tracepoints
- && may_insert_fast_tracepoints
- && !may_stop
- && non_stop);
+ bool newval = (!may_insert_breakpoints
+ && !may_insert_tracepoints
+ && may_insert_fast_tracepoints
+ && !may_stop
+ && non_stop);
/* Let the user know if things change. */
if (newval != observer_mode)
@@ -2089,7 +2087,7 @@ set_schedlock_func (const char *args, int from_tty, struct cmd_list_element *c)
/* True if execution commands resume all threads of all processes by
default; otherwise, resume only threads of the current inferior
process. */
-int sched_multi = 0;
+bool sched_multi = false;
/* Try to setup for software single stepping over the specified location.
Return 1 if target_resume() should use hardware single step.
diff --git a/gdb/infrun.h b/gdb/infrun.h
index 30374ee51c..2b2a3a3e44 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -30,7 +30,7 @@ struct return_value_info;
extern unsigned int debug_infrun;
/* True if we are debugging displaced stepping. */
-extern int debug_displaced;
+extern bool debug_displaced;
/* Nonzero if we want to give control to the user when we're notified
of shared library events by the dynamic linker. */
@@ -39,24 +39,24 @@ extern int stop_on_solib_events;
/* True if execution commands resume all threads of all processes by
default; otherwise, resume only threads of the current inferior
process. */
-extern int sched_multi;
+extern bool sched_multi;
/* When set, stop the 'step' command if we enter a function which has
no line number information. The normal behavior is that we step
over such function. */
-extern int step_stop_if_no_debug;
+extern bool step_stop_if_no_debug;
/* If set, the inferior should be controlled in non-stop mode. In
this mode, each thread is controlled independently. Execution
commands apply only to the selected thread by default, and stop
events stop only the thread that had the event -- the other threads
are kept running freely. */
-extern int non_stop;
+extern bool non_stop;
/* When set (default), the target should attempt to disable the
operating system's address space randomization feature when
starting an inferior. */
-extern int disable_randomization;
+extern bool disable_randomization;
/* Returns a unique identifier for the current stop. This can be used
to tell whether a command has proceeded the inferior past the
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 7d0c3e9fc9..ff888a9067 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -91,12 +91,12 @@ struct smaps_vmflags
/* Whether to take the /proc/PID/coredump_filter into account when
generating a corefile. */
-static int use_coredump_filter = 1;
+static bool use_coredump_filter = true;
/* Whether the value of smaps_vmflags->exclude_coredump should be
ignored, including mappings marked with the VM_DONTDUMP flag in
the dump. */
-static int dump_excluded_mappings = 0;
+static bool dump_excluded_mappings = false;
/* This enum represents the signals' numbers on a generic architecture
running the Linux kernel. The definition of "generic" comes from
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index 1d32e9195c..100434e2c9 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -110,13 +110,13 @@ public:
static char *libthread_db_search_path;
-/* Set to non-zero if thread_db auto-loading is enabled
+/* Set to true if thread_db auto-loading is enabled
by the "set auto-load libthread-db" command. */
-static int auto_load_thread_db = 1;
+static bool auto_load_thread_db = true;
-/* Set to non-zero if load-time libthread_db tests have been enabled
+/* Set to true if load-time libthread_db tests have been enabled
by the "maintenence set check-libthread-db" command. */
-static int check_thread_db_on_load = 0;
+static bool check_thread_db_on_load = false;
/* "show" command for the auto_load_thread_db configuration variable. */
diff --git a/gdb/main.c b/gdb/main.c
index 6b75fced23..7fab8ff8da 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -594,6 +594,9 @@ captured_main_1 (struct captured_main_args *context)
OPT_READNOW,
OPT_READNEVER
};
+ /* This struct requires int* in the struct, but write_files is a bool.
+ So use this temporary int that we write back after argument parsing. */
+ int write_files_1 = 0;
static struct option long_options[] =
{
{"tui", no_argument, 0, OPT_TUI},
@@ -658,7 +661,7 @@ captured_main_1 (struct captured_main_args *context)
{"w", no_argument, NULL, OPT_WINDOWS},
{"windows", no_argument, NULL, OPT_WINDOWS},
{"statistics", no_argument, 0, OPT_STATISTICS},
- {"write", no_argument, &write_files, 1},
+ {"write", no_argument, &write_files_1, 1},
{"args", no_argument, &set_args, 1},
{"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1},
@@ -842,6 +845,7 @@ captured_main_1 (struct captured_main_args *context)
gdb_program_name);
}
}
+ write_files = (write_files_1 != 0);
if (batch_flag)
{
diff --git a/gdb/maint-test-options.c b/gdb/maint-test-options.c
index 7039f932f1..9bda34a3fd 100644
--- a/gdb/maint-test-options.c
+++ b/gdb/maint-test-options.c
@@ -126,10 +126,10 @@ static const char *const test_options_enum_values_choices[] =
struct test_options_opts
{
- int flag_opt = 0;
- int xx1_opt = 0;
- int xx2_opt = 0;
- int boolean_opt = 0;
+ bool flag_opt = false;
+ bool xx1_opt = false;
+ bool xx2_opt = false;
+ bool boolean_opt = false;
const char *enum_opt = test_options_enum_values_xxx;
unsigned int uint_opt = 0;
int zuint_unl_opt = 0;
diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c
index a1c43ee917..86d201a3c6 100644
--- a/gdb/maint-test-settings.c
+++ b/gdb/maint-test-settings.c
@@ -50,7 +50,7 @@ maintenance_show_test_settings_cmd (const char *args, int from_tty)
/* Control variables for all the "maintenance set/show test-settings
xxx" commands. */
-static int maintenance_test_settings_boolean;
+static bool maintenance_test_settings_boolean;
static auto_boolean maintenance_test_settings_auto_boolean = AUTO_BOOLEAN_AUTO;
diff --git a/gdb/maint.c b/gdb/maint.c
index 1a621a1719..b8eb93827c 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -770,7 +770,7 @@ maintenance_with_cmd_completer (struct cmd_list_element *ignore,
/* Profiling support. */
-static int maintenance_profile_p;
+static bool maintenance_profile_p;
static void
show_maintenance_profile_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -841,17 +841,17 @@ maintenance_set_profile_cmd (const char *args, int from_tty,
}
#endif
\f
-/* If nonzero, display time usage both at startup and for each command. */
+/* If true, display time usage both at startup and for each command. */
-static int per_command_time;
+static bool per_command_time;
-/* If nonzero, display space usage both at startup and for each command. */
+/* If true, display space usage both at startup and for each command. */
-static int per_command_space;
+static bool per_command_space;
-/* If nonzero, display basic symtab stats for each command. */
+/* If true, display basic symtab stats for each command. */
-static int per_command_symtab;
+static bool per_command_symtab;
/* mt per-command commands. */
diff --git a/gdb/memattr.c b/gdb/memattr.c
index e695f6e07e..0475780b29 100644
--- a/gdb/memattr.c
+++ b/gdb/memattr.c
@@ -53,7 +53,7 @@ static bool target_mem_regions_valid;
/* If this flag is set, gdb will assume that memory ranges not
specified by the memory map have type MEM_NONE, and will
emit errors on all accesses to that memory. */
-static int inaccessible_by_default = 1;
+static bool inaccessible_by_default = true;
static void
show_inaccessible_by_default (struct ui_file *file, int from_tty,
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 5dc436bfd8..2ece360205 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -101,11 +101,11 @@ static void output_register (struct frame_info *, int regnum, int format,
int skip_unavailable);
/* Controls whether the frontend wants MI in async mode. */
-static int mi_async = 0;
+static bool mi_async = false;
/* The set command writes to this variable. If the inferior is
executing, mi_async is *not* updated. */
-static int mi_async_1 = 0;
+static bool mi_async_1 = false;
static void
set_mi_async_command (const char *args, int from_tty,
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 3fb53bc76d..37a1b2a0b8 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -858,7 +858,7 @@ static int heuristic_fence_post = 0;
register N. NOTE: This defines the pseudo register type so need to
rebuild the architecture vector. */
-static int mips64_transfers_32bit_regs_p = 0;
+static bool mips64_transfers_32bit_regs_p = false;
static void
set_mips64_transfers_32bit_regs (const char *args, int from_tty,
diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h
index 1d0519fb26..065496c382 100644
--- a/gdb/nat/fork-inferior.h
+++ b/gdb/nat/fork-inferior.h
@@ -72,7 +72,7 @@ extern ptid_t startup_inferior (pid_t pid, int ntraps,
The catch-exec traps expected during start-up will be one more if
the target is started up with a shell. */
-extern int startup_with_shell;
+extern bool startup_with_shell;
/* Perform any necessary tasks before a fork/vfork takes place. ARGS
is a string containing all the arguments received by the inferior.
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index e49bc1ade3..8cadea9be2 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -31,7 +31,7 @@
#include "gdbsupport/scope-exit.h"
/* See nat/linux-namespaces.h. */
-int debug_linux_namespaces;
+bool debug_linux_namespaces;
/* Handle systems without fork. */
diff --git a/gdb/nat/linux-namespaces.h b/gdb/nat/linux-namespaces.h
index 166b11cbdc..fe7e8a452e 100644
--- a/gdb/nat/linux-namespaces.h
+++ b/gdb/nat/linux-namespaces.h
@@ -20,9 +20,9 @@
#ifndef NAT_LINUX_NAMESPACES_H
#define NAT_LINUX_NAMESPACES_H
-/* Set to nonzero to enable debugging of Linux namespaces code. */
+/* Set to true to enable debugging of Linux namespaces code. */
-extern int debug_linux_namespaces;
+extern bool debug_linux_namespaces;
/* Enumeration of Linux namespace types. */
diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
index 8d685d4aca..cb17e4f375 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -52,7 +52,7 @@
/* Control debugging information emitted in this file. */
-static int nios2_debug = 0;
+static bool nios2_debug = false;
/* The following structures are used in the cache for prologue
analysis; see the reg_value and reg_saved tables in
diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c
index 8f6f6e1960..6a6dce1527 100644
--- a/gdb/or1k-tdep.c
+++ b/gdb/or1k-tdep.c
@@ -50,7 +50,7 @@
/* Global debug flag. */
-static int or1k_debug = 0;
+static bool or1k_debug = false;
static void
show_or1k_debug (struct ui_file *file, int from_tty,
diff --git a/gdb/parse.c b/gdb/parse.c
index a1ab75297a..a17cae6b55 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -74,8 +74,8 @@ show_expressiondebug (struct ui_file *file, int from_tty,
}
-/* Non-zero if an expression parser should set yydebug. */
-int parser_debug;
+/* True if an expression parser should set yydebug. */
+bool parser_debug;
static void
show_parserdebug (struct ui_file *file, int from_tty,
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index 33670b29c4..64aa9b8b1e 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -32,7 +32,7 @@ struct language_defn;
struct internalvar;
class innermost_block_tracker;
-extern int parser_debug;
+extern bool parser_debug;
/* A class that can be used to build a "struct expression". */
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 22356bfd6d..b3f7b59863 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -100,7 +100,7 @@ show_max_symbolic_offset (struct ui_file *file, int from_tty,
/* Append the source filename and linenumber of the symbol when
printing a symbolic value as `<symbol at filename:linenum>' if set. */
-static int print_symbol_filename = 0;
+static bool print_symbol_filename = false;
static void
show_print_symbol_filename (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/proc-api.c b/gdb/proc-api.c
index cb2eaf8cb1..214b26f40c 100644
--- a/gdb/proc-api.c
+++ b/gdb/proc-api.c
@@ -50,7 +50,7 @@ struct trans {
const char *desc; /* Short description of value */
};
-static int procfs_trace = 0;
+static bool procfs_trace = false;
static FILE *procfs_file = NULL;
static char *procfs_filename;
diff --git a/gdb/python/py-auto-load.c b/gdb/python/py-auto-load.c
index c7b9afdb11..ade2aa1b37 100644
--- a/gdb/python/py-auto-load.c
+++ b/gdb/python/py-auto-load.c
@@ -29,7 +29,7 @@
set auto-load python-scripts on|off
This is true if we should auto-load associated Python scripts when an
objfile is opened, false otherwise. */
-static int auto_load_python_scripts = 1;
+static bool auto_load_python_scripts = true;
/* "show" command for the auto_load_python_scripts configuration variable. */
diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c
index afeff581ee..4794366583 100644
--- a/gdb/python/py-param.c
+++ b/gdb/python/py-param.c
@@ -55,7 +55,10 @@ struct parm_constant parm_constants[] =
/* A union that can hold anything described by enum var_types. */
union parmpy_variable
{
- /* Hold an integer value, for boolean and integer types. */
+ /* Hold a boolean value. */
+ bool boolval;
+
+ /* Hold an integer value. */
int intval;
/* Hold an auto_boolean. */
@@ -198,7 +201,7 @@ set_parameter_value (parmpy_object *self, PyObject *value)
cmp = PyObject_IsTrue (value);
if (cmp < 0)
return -1;
- self->value.intval = cmp;
+ self->value.boolval = cmp;
break;
case var_auto_boolean:
@@ -475,7 +478,7 @@ add_setshow_generic (int parmclass, enum command_class cmdclass,
case var_boolean:
add_setshow_boolean_cmd (cmd_name, cmdclass,
- &self->value.intval, set_doc, show_doc,
+ &self->value.boolval, set_doc, show_doc,
help_doc, get_set_value, get_show_value,
set_list, show_list);
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index ede4c0e759..1428b7abe5 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -580,7 +580,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw)
encoding, errors);
}
-/* Given a Python object, copy its truth value to a C int (the value
+/* Given a Python object, copy its truth value to a C bool (the value
pointed by dest).
If src_obj is NULL, then *dest is not modified.
@@ -588,7 +588,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw)
in case of error. */
static bool
-copy_py_bool_obj (int *dest, PyObject *src_obj)
+copy_py_bool_obj (bool *dest, PyObject *src_obj)
{
if (src_obj)
{
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 9c8c635f72..ddf0e72d26 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -441,7 +441,7 @@ gdbpy_parameter_value (enum var_types type, void *var)
case var_boolean:
{
- if (* (int *) var)
+ if (* (bool *) var)
Py_RETURN_TRUE;
else
Py_RETURN_FALSE;
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
index f217d949f6..0cc7e1dc75 100644
--- a/gdb/ravenscar-thread.c
+++ b/gdb/ravenscar-thread.c
@@ -57,8 +57,8 @@
is running, switching to its corresponding ptid, and then performing
the operation on that ptid using the target beneath us. */
-/* If non-null, ravenscar task support is enabled. */
-static int ravenscar_task_support = 1;
+/* If true, ravenscar task support is enabled. */
+static bool ravenscar_task_support = true;
static const char running_thread_name[] = "__gnat_running_thread_table";
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 65d6a254ff..d402d8733d 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1560,7 +1560,7 @@ record_btrace_target::store_registers (struct regcache *regcache, int regno)
&& record_is_replaying (regcache->ptid ()))
error (_("Cannot write registers while replaying."));
- gdb_assert (may_write_registers != 0);
+ gdb_assert (may_write_registers);
this->beneath ()->store_registers (regcache, regno);
}
diff --git a/gdb/record-full.c b/gdb/record-full.c
index e83ce01b71..c1d124f519 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -159,7 +159,7 @@ struct record_full_entry
/* If true, query if PREC cannot record memory
change of next instruction. */
-int record_full_memory_query = 0;
+bool record_full_memory_query = false;
struct record_full_core_buf_entry
{
@@ -196,8 +196,8 @@ static struct record_full_entry *record_full_list = &record_full_first;
static struct record_full_entry *record_full_arch_list_head = NULL;
static struct record_full_entry *record_full_arch_list_tail = NULL;
-/* 1 ask user. 0 auto delete the last struct record_full_entry. */
-static int record_full_stop_at_limit = 1;
+/* true ask user. false auto delete the last struct record_full_entry. */
+static bool record_full_stop_at_limit = true;
/* Maximum allowed number of insns in execution log. */
static unsigned int record_full_insn_max_num
= DEFAULT_RECORD_FULL_INSN_MAX_NUM;
diff --git a/gdb/record-full.h b/gdb/record-full.h
index 8d1693af11..d1eff9760e 100644
--- a/gdb/record-full.h
+++ b/gdb/record-full.h
@@ -20,7 +20,7 @@
#ifndef RECORD_FULL_H
#define RECORD_FULL_H
-extern int record_full_memory_query;
+extern bool record_full_memory_query;
extern int record_full_arch_list_add_reg (struct regcache *regcache, int num);
extern int record_full_arch_list_add_mem (CORE_ADDR addr, int len);
diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c
index 2680618b3f..2ff7b3b66c 100644
--- a/gdb/remote-notif.c
+++ b/gdb/remote-notif.c
@@ -41,7 +41,7 @@
#include "infrun.h"
#include "gdbcmd.h"
-int notif_debug = 0;
+bool notif_debug = false;
/* Supported clients of notifications. */
diff --git a/gdb/remote-notif.h b/gdb/remote-notif.h
index f9b0b2c618..c735cc2918 100644
--- a/gdb/remote-notif.h
+++ b/gdb/remote-notif.h
@@ -129,6 +129,6 @@ remote_notif_state *remote_notif_state_allocate (remote_target *remote);
extern struct notif_client notif_client_stop;
-extern int notif_debug;
+extern bool notif_debug;
#endif /* REMOTE_NOTIF_H */
diff --git a/gdb/remote.c b/gdb/remote.c
index ae06c4ba79..e39366d8b2 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1038,7 +1038,7 @@ static struct cmd_list_element *remote_show_cmdlist;
/* Controls whether GDB is willing to use range stepping. */
-static int use_range_stepping = 1;
+static bool use_range_stepping = true;
/* The max number of chars in debug output. The rest of chars are
omitted. */
@@ -1492,12 +1492,12 @@ show_interrupt_sequence (struct ui_file *file, int from_tty,
to the remote target when gdb connects to it.
This is mostly needed when you debug the Linux kernel: The Linux kernel
expects BREAK g which is Magic SysRq g for connecting gdb. */
-static int interrupt_on_connect = 0;
+static bool interrupt_on_connect = false;
/* This variable is used to implement the "set/show remotebreak" commands.
Since these commands are now deprecated in favor of "set/show remote
interrupt-sequence", it no longer has any effect on the code. */
-static int remote_break;
+static bool remote_break;
static void
set_remotebreak (const char *args, int from_tty, struct cmd_list_element *c)
diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index 7498319cc4..079f24828e 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -72,7 +72,7 @@ static struct cmd_list_element *tcp_show_cmdlist;
/* Whether to auto-retry refused connections. */
-static int tcp_auto_retry = 1;
+static bool tcp_auto_retry = true;
/* Timeout period for connections, in seconds. */
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 049dfd5261..c49bd84eb6 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -41,7 +41,7 @@ struct hardwire_ttystate
#ifdef CRTSCTS
/* Boolean to explicitly enable or disable h/w flow control. */
-static int serial_hwflow;
+static bool serial_hwflow;
static void
show_serial_hwflow (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/skip.c b/gdb/skip.c
index 5258f50ab1..a549aca897 100644
--- a/gdb/skip.c
+++ b/gdb/skip.c
@@ -39,7 +39,7 @@
/* True if we want to print debug printouts related to file/function
skipping. */
-static int debug_skip = 0;
+static bool debug_skip = false;
class skiplist_entry
{
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 0c8a18267c..1a25a0d4a9 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -30,7 +30,7 @@
/* Variable controlling the output of the debugging traces for
this module. */
-static int solib_aix_debug;
+static bool solib_aix_debug;
/* Our private data in struct so_list. */
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index ddaee54b30..d01f3af300 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -52,9 +52,9 @@ static struct cmd_list_element *setspucmdlist = NULL;
static struct cmd_list_element *showspucmdlist = NULL;
/* Whether to stop for new SPE contexts. */
-static int spu_stop_on_load_p = 0;
+static bool spu_stop_on_load_p = false;
/* Whether to automatically flush the SW-managed cache. */
-static int spu_auto_flush_cache_p = 1;
+static bool spu_auto_flush_cache_p = true;
/* The tdep structure. */
diff --git a/gdb/stack.c b/gdb/stack.c
index 10a88e99ab..0f7fbf5e6e 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -183,9 +183,9 @@ pretty-printers for that value.")
struct backtrace_cmd_options
{
- int full = 0;
- int no_filters = 0;
- int hide = 0;
+ bool full = false;
+ bool no_filters = false;
+ bool hide = false;
};
using bt_flag_option_def
@@ -2423,7 +2423,7 @@ print_frame_local_vars (struct frame_info *frame,
struct info_print_options
{
- int quiet = false;
+ bool quiet = false;
char *type_regexp = nullptr;
~info_print_options ()
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 9a5d0fa0a6..37959bf0d4 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -48,8 +48,8 @@ struct debug_sym_fns_data
static const struct objfile_key<debug_sym_fns_data>
symfile_debug_objfile_data_key;
-/* If non-zero all calls to the symfile functions are logged. */
-static int debug_symfile = 0;
+/* If true all calls to the symfile functions are logged. */
+static bool debug_symfile = false;
/* Return non-zero if symfile debug logging is installed. */
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 259a30aa04..5252c727aa 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -143,7 +143,7 @@ static const char *print_symbol_loading = print_symbol_loading_full;
/* See symfile.h. */
-int auto_solib_add = 1;
+bool auto_solib_add = true;
\f
/* Return non-zero if symbol-loading messages should be printed.
@@ -1265,7 +1265,7 @@ symbol_file_clear (int from_tty)
/* See symfile.h. */
-int separate_debug_file_debug = 0;
+bool separate_debug_file_debug = false;
static int
separate_debug_file_exists (const std::string &name, unsigned long crc,
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 6fa6db4750..642a5e223a 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -439,7 +439,7 @@ extern section_addr_info
/* Variables */
-/* If non-zero, shared library symbols will be added automatically
+/* If true, shared library symbols will be added automatically
when the inferior is created, new libraries are loaded, or when
attaching to the inferior. This is almost always what users will
want to have happen; but for very large programs, the startup time
@@ -449,7 +449,7 @@ extern section_addr_info
library symbols are not loaded, commands like "info fun" will *not*
report all the functions that are actually present. */
-extern int auto_solib_add;
+extern bool auto_solib_add;
/* From symfile.c */
@@ -625,6 +625,6 @@ extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *);
/* True if we are printing debug output about separate debug info files. */
-extern int separate_debug_file_debug;
+extern bool separate_debug_file_debug;
#endif /* !defined(SYMFILE_H) */
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 4b528b4270..e2edad4fb1 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -241,10 +241,10 @@ static unsigned int new_symbol_cache_size = DEFAULT_SYMBOL_CACHE_SIZE;
the original value from here. */
static unsigned int symbol_cache_size = DEFAULT_SYMBOL_CACHE_SIZE;
-/* Non-zero if a file may be known by two different basenames.
+/* True if a file may be known by two different basenames.
This is the uncommon case, and significantly slows down gdb.
Default set to "off" to not slow down the common case. */
-int basenames_may_differ = 0;
+bool basenames_may_differ = false;
/* Allow the user to configure the debugger behavior with respect
to multiple-choice menus when more than one symbol matches during
@@ -4131,10 +4131,10 @@ operator_chars (const char *p, const char **end)
struct filename_partial_match_opts
{
/* Only match the directory name part. */
- int dirname = false;
+ bool dirname = false;
/* Only match the basename part. */
- int basename = false;
+ bool basename = false;
};
/* Data structure to maintain printing state for output_source_filename. */
@@ -4912,8 +4912,8 @@ symtab_symbol_info (bool quiet, bool exclude_minsyms,
struct info_print_options
{
- int quiet = false;
- int exclude_minsyms = false;
+ bool quiet = false;
+ bool exclude_minsyms = false;
char *type_regexp = nullptr;
~info_print_options ()
@@ -5010,7 +5010,7 @@ info_functions_command (const char *args, int from_tty)
struct info_types_options
{
- int quiet = false;
+ bool quiet = false;
};
/* The options used by the 'info types' command. */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index c54b8ee4b7..d046598774 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -544,7 +544,7 @@ extern const char *symbol_demangled_name
#define SYMBOL_PRINT_NAME(symbol) \
(demangle ? SYMBOL_NATURAL_NAME (symbol) : SYMBOL_LINKAGE_NAME (symbol))
-extern int demangle;
+extern bool demangle;
/* Macro that returns the name to be used when sorting and searching symbols.
In C++, we search for the demangled form of a name,
@@ -2064,7 +2064,7 @@ extern unsigned int symtab_create_debug;
extern unsigned int symbol_lookup_debug;
-extern int basenames_may_differ;
+extern bool basenames_may_differ;
int compare_filenames_for_search (const char *filename,
const char *search_name);
diff --git a/gdb/target-dcache.c b/gdb/target-dcache.c
index 98d5c1f83b..c8a415512c 100644
--- a/gdb/target-dcache.c
+++ b/gdb/target-dcache.c
@@ -77,7 +77,7 @@ target_dcache_get_or_init (void)
}
/* The option sets this. */
-static int stack_cache_enabled_1 = 1;
+static bool stack_cache_enabled_1 = true;
/* And set_stack_cache updates this.
The reason for the separation is so that we don't flush the cache for
on->on transitions. */
@@ -114,7 +114,7 @@ stack_cache_enabled_p (void)
/* The option sets this. */
-static int code_cache_enabled_1 = 1;
+static bool code_cache_enabled_1 = true;
/* And set_code_cache updates this.
The reason for the separation is so that we don't flush the cache for
diff --git a/gdb/target.c b/gdb/target.c
index a19a9bce13..599e22a724 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -128,10 +128,10 @@ current_top_target ()
static struct cmd_list_element *targetlist = NULL;
-/* Nonzero if we should trust readonly sections from the
+/* True if we should trust readonly sections from the
executable when reading memory. */
-static int trust_readonly = 0;
+static bool trust_readonly = false;
/* Nonzero if we should show true memory content including
memory breakpoint inserted by gdb. */
@@ -142,17 +142,17 @@ static int show_memory_breakpoints = 0;
operations; they are useful for targets that need to prevent
inadvertant disruption, such as in non-stop mode. */
-int may_write_registers = 1;
+bool may_write_registers = true;
-int may_write_memory = 1;
+bool may_write_memory = true;
-int may_insert_breakpoints = 1;
+bool may_insert_breakpoints = true;
-int may_insert_tracepoints = 1;
+bool may_insert_tracepoints = true;
-int may_insert_fast_tracepoints = 1;
+bool may_insert_fast_tracepoints = true;
-int may_stop = 1;
+bool may_stop = true;
/* Non-zero if we want to see trace of target level stuff. */
@@ -2374,7 +2374,7 @@ target_require_runnable (void)
/* Whether GDB is allowed to fall back to the default run target for
"run", "attach", etc. when no target is connected yet. */
-static int auto_connect_native_target = 1;
+static bool auto_connect_native_target = true;
static void
show_auto_connect_native_target (struct ui_file *file, int from_tty,
@@ -3356,9 +3356,9 @@ void
target_stop_and_wait (ptid_t ptid)
{
struct target_waitstatus status;
- int was_non_stop = non_stop;
+ bool was_non_stop = non_stop;
- non_stop = 1;
+ non_stop = true;
target_stop (ptid);
memset (&status, 0, sizeof (status));
@@ -3841,11 +3841,11 @@ target_thread_events (int enable)
/* Controls if targets can report that they can/are async. This is
just for maintainers to use when debugging gdb. */
-int target_async_permitted = 1;
+bool target_async_permitted = true;
/* The set command writes to this variable. If the inferior is
executing, target_async_permitted is *not* updated. */
-static int target_async_permitted_1 = 1;
+static bool target_async_permitted_1 = true;
static void
maint_set_target_async_command (const char *args, int from_tty,
@@ -3933,12 +3933,12 @@ maint_show_target_non_stop_command (struct ui_file *file, int from_tty,
/* Temporary copies of permission settings. */
-static int may_write_registers_1 = 1;
-static int may_write_memory_1 = 1;
-static int may_insert_breakpoints_1 = 1;
-static int may_insert_tracepoints_1 = 1;
-static int may_insert_fast_tracepoints_1 = 1;
-static int may_stop_1 = 1;
+static bool may_write_registers_1 = true;
+static bool may_write_memory_1 = true;
+static bool may_insert_breakpoints_1 = true;
+static bool may_insert_tracepoints_1 = true;
+static bool may_insert_fast_tracepoints_1 = true;
+static bool may_stop_1 = true;
/* Make the user-set values match the real values again. */
diff --git a/gdb/target.h b/gdb/target.h
index 4e2e75cb80..c2f6203174 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1802,7 +1802,7 @@ extern int target_has_execution_current (void);
(current_top_target ()->get_thread_control_capabilities () & tc_schedlock)
/* Controls whether async mode is permitted. */
-extern int target_async_permitted;
+extern bool target_async_permitted;
/* Can the target support asynchronous execution? */
#define target_can_async_p() (current_top_target ()->can_async_p ())
@@ -2482,12 +2482,12 @@ extern int remote_timeout;
extern scoped_restore_tmpl<int>
make_scoped_restore_show_memory_breakpoints (int show);
-extern int may_write_registers;
-extern int may_write_memory;
-extern int may_insert_breakpoints;
-extern int may_insert_tracepoints;
-extern int may_insert_fast_tracepoints;
-extern int may_stop;
+extern bool may_write_registers;
+extern bool may_write_memory;
+extern bool may_insert_breakpoints;
+extern bool may_insert_tracepoints;
+extern bool may_insert_fast_tracepoints;
+extern bool may_stop;
extern void update_target_permissions (void);
diff --git a/gdb/thread.c b/gdb/thread.c
index 4a7fe689db..17bc642b84 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -1204,7 +1204,7 @@ print_thread_info (struct ui_out *uiout, const char *requested_threads,
struct info_threads_opts
{
/* For "-gid". */
- int show_global_ids = 0;
+ bool show_global_ids = false;
};
static const gdb::option::option_def info_threads_option_defs[] = {
@@ -1574,7 +1574,7 @@ static const gdb::option::option_def thr_qcs_flags_option_defs[] = {
ASCENDING and FLAGS as context. */
static inline std::array<gdb::option::option_def_group, 2>
-make_thread_apply_all_options_def_group (int *ascending,
+make_thread_apply_all_options_def_group (bool *ascending,
qcs_flags *flags)
{
return {{
@@ -1603,7 +1603,7 @@ make_thread_apply_options_def_group (qcs_flags *flags)
static void
thread_apply_all_command (const char *cmd, int from_tty)
{
- int ascending = false;
+ bool ascending = false;
qcs_flags flags;
auto group = make_thread_apply_all_options_def_group (&ascending,
@@ -1951,7 +1951,7 @@ thread_find_command (const char *arg, int from_tty)
}
/* Print notices when new threads are attached and detached. */
-int print_thread_events = 1;
+bool print_thread_events = true;
static void
show_print_thread_events (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/top.c b/gdb/top.c
index 2b53640af0..49e6daae94 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -115,7 +115,7 @@ extern char lang_frame_mismatch_warn[]; /* language.c */
/* Flag for whether we want to confirm potentially dangerous
operations. Default is yes. */
-int confirm = 1;
+bool confirm = true;
static void
show_confirm (struct ui_file *file, int from_tty,
@@ -850,15 +850,15 @@ gdb_readline_no_editing (const char *prompt)
/* Variables which control command line editing and history
substitution. These variables are given default values at the end
of this file. */
-static int command_editing_p;
+static bool command_editing_p;
/* NOTE 1999-04-29: This variable will be static again, once we modify
gdb to use the event loop as the default command loop and we merge
event-top.c into this file, top.c. */
-/* static */ int history_expansion_p;
+/* static */ bool history_expansion_p;
-static int write_history_p;
+static bool write_history_p;
static void
show_write_history_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -1876,7 +1876,7 @@ show_history (const char *args, int from_tty)
cmd_show_list (showhistlist, from_tty, "");
}
-int info_verbose = 0; /* Default verbose msgs off. */
+bool info_verbose = false; /* Default verbose msgs off. */
/* Called by do_set_command. An elaborate joke. */
void
diff --git a/gdb/top.h b/gdb/top.h
index 32a898b82f..176104f1fd 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -217,7 +217,7 @@ extern void ui_register_input_event_handler (struct ui *ui);
extern void ui_unregister_input_event_handler (struct ui *ui);
/* From top.c. */
-extern int confirm;
+extern bool confirm;
extern int inhibit_gdbinit;
/* Print the GDB version banner to STREAM. If INTERACTIVE is false,
@@ -280,7 +280,7 @@ extern void gdb_init (char *);
/* Variables from top.c. */
extern int source_line_number;
extern std::string source_file_name;
-extern int history_expansion_p;
+extern bool history_expansion_p;
extern int server_command;
extern char *lim_at_start;
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 2d5b9c705e..c2c5f42246 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -131,12 +131,12 @@ static struct cmd_list_element *tfindlist;
/* List of expressions to collect by default at each tracepoint hit. */
char *default_collect;
-static int disconnected_tracing;
+static bool disconnected_tracing;
/* This variable controls whether we ask the target for a linear or
circular trace buffer. */
-static int circular_trace_buffer;
+static bool circular_trace_buffer;
/* This variable is the requested trace buffer size, or -1 to indicate
that we don't care and leave it up to the target to set a size. */
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index c87f6d13e0..41d95c2afb 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -727,7 +727,7 @@ show_print_type (const char *args, int from_tty)
cmd_show_list (showprinttypelist, from_tty, "");
}
-static int print_methods = 1;
+static bool print_methods = true;
static void
set_print_type_methods (const char *args,
@@ -744,7 +744,7 @@ show_print_type_methods (struct ui_file *file, int from_tty,
value);
}
-static int print_typedefs = 1;
+static bool print_typedefs = true;
static void
set_print_type_typedefs (const char *args,
diff --git a/gdb/utils.c b/gdb/utils.c
index f642cf470f..b2535ebefd 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -99,13 +99,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
/* A flag indicating whether to timestamp debugging messages. */
-static int debug_timestamp = 0;
+static bool debug_timestamp = false;
-/* Nonzero means that strings with character values >0x7F should be printed
- as octal escapes. Zero means just print the value (e.g. it's an
+/* True means that strings with character values >0x7F should be printed
+ as octal escapes. False means just print the value (e.g. it's an
international character, and the terminal or window can cope.) */
-int sevenbit_strings = 0;
+bool sevenbit_strings = false;
static void
show_sevenbit_strings (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -119,7 +119,7 @@ show_sevenbit_strings (struct ui_file *file, int from_tty,
const char *warning_pre_print = "\nwarning: ";
-int pagination_enabled = 1;
+bool pagination_enabled = true;
static void
show_pagination_enabled (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
diff --git a/gdb/utils.h b/gdb/utils.h
index fd724444aa..7cdc73ef54 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -32,7 +32,7 @@ extern void initialize_utils (void);
/* String utilities. */
-extern int sevenbit_strings;
+extern bool sevenbit_strings;
/* Modes of operation for strncmp_iw_with_mode. */
@@ -316,7 +316,7 @@ extern void wrap_here (const char *);
extern void reinitialize_more_filter (void);
-extern int pagination_enabled;
+extern bool pagination_enabled;
extern struct ui_file **current_ui_gdb_stdout_ptr (void);
extern struct ui_file **current_ui_gdb_stdin_ptr (void);
diff --git a/gdb/valops.c b/gdb/valops.c
index 0f6ff7b0a5..fc7a4c5918 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -97,7 +97,7 @@ static CORE_ADDR allocate_space_in_inferior (int);
static struct value *cast_into_complex (struct type *, struct value *);
-int overload_resolution = 0;
+bool overload_resolution = false;
static void
show_overload_resolution (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
diff --git a/gdb/valprint.h b/gdb/valprint.h
index 07014c11b9..6d57554594 100644
--- a/gdb/valprint.h
+++ b/gdb/valprint.h
@@ -30,23 +30,23 @@ struct value_print_options
enum val_prettyformat prettyformat;
/* Controls pretty formatting of arrays. */
- int prettyformat_arrays;
+ bool prettyformat_arrays;
/* Controls pretty formatting of structures. */
- int prettyformat_structs;
+ bool prettyformat_structs;
/* Controls printing of virtual tables. */
- int vtblprint;
+ bool vtblprint;
/* Controls printing of nested unions. */
- int unionprint;
+ bool unionprint;
/* Controls printing of addresses. */
- int addressprint;
+ bool addressprint;
/* Controls looking up an object's derived type using what we find
in its vtables. */
- int objectprint;
+ bool objectprint;
/* Maximum number of chars to print for a string pointer value or vector
contents, or UINT_MAX for no limit. Note that "set print elements 0"
@@ -66,40 +66,40 @@ struct value_print_options
int format;
/* Stop printing at null character? */
- int stop_print_at_null;
+ bool stop_print_at_null;
/* True if we should print the index of each element when printing
an array. */
- int print_array_indexes;
+ bool print_array_indexes;
- /* If nonzero, then dereference references, otherwise just print
+ /* If true, then dereference references, otherwise just print
them like pointers. */
- int deref_ref;
+ bool deref_ref;
- /* If nonzero, print static fields. */
- int static_field_print;
+ /* If true, print static fields. */
+ bool static_field_print;
- /* If nonzero, print static fields for Pascal. FIXME: C++ has a
+ /* If true, print static fields for Pascal. FIXME: C++ has a
flag, why not share with Pascal too? */
- int pascal_static_field_print;
+ bool pascal_static_field_print;
- /* If non-zero don't do Python pretty-printing. */
- int raw;
+ /* If true, don't do Python pretty-printing. */
+ bool raw;
- /* If nonzero, print the value in "summary" form.
- If raw and summary are both non-zero, don't print non-scalar values
+ /* If true, print the value in "summary" form.
+ If raw and summary are both true, don't print non-scalar values
("..." is printed instead). */
- int summary;
+ bool summary;
- /* If nonzero, when printing a pointer, print the symbol to which it
+ /* If true, when printing a pointer, print the symbol to which it
points, if any. */
- int symbol_print;
+ bool symbol_print;
/* Maximum print depth when printing nested aggregates. */
int max_depth;
/* Whether "finish" should print the value. */
- int finish_print;
+ bool finish_print;
};
/* Create an option_def_group for the value_print options, with OPTS
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 3431181a88..c4fde913af 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -245,16 +245,16 @@ static int saw_create;
static int open_process_used = 0;
/* User options. */
-static int new_console = 0;
+static bool new_console = false;
#ifdef __CYGWIN__
-static int cygwin_exceptions = 0;
+static bool cygwin_exceptions = false;
#endif
-static int new_group = 1;
-static int debug_exec = 0; /* show execution */
-static int debug_events = 0; /* show events from kernel */
-static int debug_memory = 0; /* show target memory accesses */
-static int debug_exceptions = 0; /* show target exceptions */
-static int useshell = 0; /* use shell for subprocesses */
+static bool new_group = true;
+static bool debug_exec = false; /* show execution */
+static bool debug_events = false; /* show events from kernel */
+static bool debug_memory = false; /* show target memory accesses */
+static bool debug_exceptions = false; /* show target exceptions */
+static bool useshell = false; /* use shell for subprocesses */
/* This vector maps GDB's idea of a register's number into an offset
in the windows exception context vector.
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index 42083e789a..bb69a79996 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -100,7 +100,7 @@ static const int MAX_TIB64 =
sizeof (thread_information_64) / sizeof (uint64_t);
static const int FULL_TIB_SIZE = 0x1000;
-static int maint_display_all_tib = 0;
+static bool maint_display_all_tib = false;
/* Define Thread Local Base pointer type. */
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index 8b79d69a6d..eaf99efa6b 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -26,7 +26,7 @@
#include <string>
/* Debugging flag. */
-static int debug_xml;
+static bool debug_xml;
/* The contents of this file are only useful if XML support is
available. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-18 0:59 [binutils-gdb] Change boolean options to bool instead of int gdb-buildbot
@ 2019-09-18 1:09 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 1:09 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/70
Author:
Christian Biesinger <cbiesinger@google.com>
Commit tested:
491144b5e21bbfd41969c175aebb663976f59058
Subject of commit:
Change boolean options to bool instead of int
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/491144b5e21bbfd41969c175aebb663976f59058/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.server/ext-wrapper.exp: monitor exit
PASS -> FAIL: gdb.server/ext-wrapper.exp: print d
PASS -> FAIL: gdb.server/ext-wrapper.exp: restart: print d
PASS -> FAIL: gdb.server/ext-wrapper.exp: restart: run to marker
PASS -> FAIL: gdb.server/ext-wrapper.exp: run to marker
PASS -> FAIL: gdb.server/non-existing-program.exp: gdbserver exits cleanly
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
PASS -> FAIL: gdb.server/wrapper.exp: continue to marker
PASS -> FAIL: gdb.server/wrapper.exp: print d
PASS -> FAIL: gdb.threads/gcore-stale-thread.exp: save a corefile
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/491144b5e21bbfd41969c175aebb663976f59058//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/49/491144b5e21bbfd41969c175aebb663976f59058//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Gate opcode tables by enum rather than string.
@ 2019-09-18 1:40 gdb-buildbot
2019-09-18 1:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 1:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7e9ad3a35cde2342e07c34345d5ee671ea8aeeb4 ***
commit 7e9ad3a35cde2342e07c34345d5ee671ea8aeeb4
Author: Jim Wilson <jimw@sifive.com>
AuthorDate: Tue Sep 17 17:59:08 2019 -0700
Commit: Jim Wilson <jimw@sifive.com>
CommitDate: Tue Sep 17 17:59:08 2019 -0700
RISC-V: Gate opcode tables by enum rather than string.
Generalize opcode arch dependencies so that we can support the
overlapping B extension Zb* subsets.
2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
gas/
* config/tc-riscv.c (riscv_multi_subset_supports): Handle
insn_class enum rather than subset char string.
(riscv_ip): Update call to riscv_multi_subset_supports.
include/
* opcode/riscv.h (riscv_insn_class): New enum.
* opcode/riscv.h (struct riscv_opcode): Change
subset field to insn_class field.
opcodes/
* riscv-opc.c (riscv_opcodes): Change subset field
to insn_class field for all instructions.
(riscv_insn_types): Likewise.
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 85c80f5772..f22727c7cc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
+
+ * config/tc-riscv.c (riscv_multi_subset_supports): Handle
+ insn_class enum rather than subset char string.
+ (riscv_ip): Update call to riscv_multi_subset_supports.
+
2019-09-16 Phil Blundell <pb@pbcl.net>
* Makefile.in, configure, doc/Makefile.in: Regenerated.
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 12047d7210..e50505138e 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -121,15 +121,28 @@ riscv_subset_supports (const char *feature)
}
static bfd_boolean
-riscv_multi_subset_supports (const char *features[])
+riscv_multi_subset_supports (enum riscv_insn_class insn_class)
{
- unsigned i = 0;
- bfd_boolean supported = TRUE;
+ switch (insn_class)
+ {
+ case INSN_CLASS_I: return riscv_subset_supports ("i");
+ case INSN_CLASS_C: return riscv_subset_supports ("c");
+ case INSN_CLASS_A: return riscv_subset_supports ("a");
+ case INSN_CLASS_M: return riscv_subset_supports ("m");
+ case INSN_CLASS_F: return riscv_subset_supports ("f");
+ case INSN_CLASS_D: return riscv_subset_supports ("d");
+ case INSN_CLASS_D_AND_C:
+ return riscv_subset_supports ("d") && riscv_subset_supports ("c");
+
+ case INSN_CLASS_F_AND_C:
+ return riscv_subset_supports ("f") && riscv_subset_supports ("c");
- for (;features[i]; ++i)
- supported = supported && riscv_subset_supports (features[i]);
+ case INSN_CLASS_Q: return riscv_subset_supports ("q");
- return supported;
+ default:
+ as_fatal ("Unreachable");
+ return FALSE;
+ }
}
/* Set which ISA and extensions are available. */
@@ -1427,7 +1440,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
if ((insn->xlen_requirement != 0) && (xlen != insn->xlen_requirement))
continue;
- if (!riscv_multi_subset_supports (insn->subset))
+ if (!riscv_multi_subset_supports (insn->insn_class))
continue;
create_insn (ip, insn);
diff --git a/include/ChangeLog b/include/ChangeLog
index eb500e146e..c725bfbbc7 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
+
+ * opcode/riscv.h (riscv_insn_class): New enum.
+ * opcode/riscv.h (struct riscv_opcode): Change
+ subset field to insn_class field.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index 4acc25cee2..bfb96c86b6 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -294,6 +294,23 @@ static const char * const riscv_pred_succ[16] =
/* The maximal number of subset can be required. */
#define MAX_SUBSET_NUM 4
+/* All RISC-V instructions belong to at least one of these classes. */
+
+enum riscv_insn_class
+ {
+ INSN_CLASS_NONE,
+
+ INSN_CLASS_I,
+ INSN_CLASS_C,
+ INSN_CLASS_A,
+ INSN_CLASS_M,
+ INSN_CLASS_F,
+ INSN_CLASS_D,
+ INSN_CLASS_D_AND_C,
+ INSN_CLASS_F_AND_C,
+ INSN_CLASS_Q,
+ };
+
/* This structure holds information for a particular instruction. */
struct riscv_opcode
@@ -302,9 +319,9 @@ struct riscv_opcode
const char *name;
/* The requirement of xlen for the instruction, 0 if no requirement. */
unsigned xlen_requirement;
- /* An array of ISA subset name (I, M, A, F, D, Xextension), must ended
- with a NULL pointer sential. */
- const char *subset[MAX_SUBSET_NUM];
+ /* Class to which this instruction belongs. Used to decide whether or
+ not this instruction is legal in the current -march context. */
+ enum riscv_insn_class insn_class;
/* A string describing the arguments for this instruction. */
const char *args;
/* The basic opcode for the instruction. When assembling, this
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 50f1be8533..8f2ca7257e 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
+
+ * riscv-opc.c (riscv_opcodes): Change subset field
+ to insn_class field for all instructions.
+ (riscv_insn_types): Likewise.
+
2019-09-16 Phil Blundell <pb@pbcl.net>
* configure: Regenerated.
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index b7e8d79a48..06c752a96d 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -198,687 +198,687 @@ match_srxi_as_c_srxi (const struct riscv_opcode *op, insn_t insn)
const struct riscv_opcode riscv_opcodes[] =
{
/* name, xlen, isa, operands, match, mask, match_func, pinfo. */
-{"unimp", 0, {"C", 0}, "", 0, 0xffffU, match_opcode, INSN_ALIAS },
-{"unimp", 0, {"I", 0}, "", MATCH_CSRRW | (CSR_CYCLE << OP_SH_CSR), 0xffffffffU, match_opcode, 0 }, /* csrw cycle, x0 */
-{"ebreak", 0, {"C", 0}, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, INSN_ALIAS },
-{"ebreak", 0, {"I", 0}, "", MATCH_EBREAK, MASK_EBREAK, match_opcode, 0 },
-{"sbreak", 0, {"C", 0}, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, INSN_ALIAS },
-{"sbreak", 0, {"I", 0}, "", MATCH_EBREAK, MASK_EBREAK, match_opcode, INSN_ALIAS },
-{"ret", 0, {"C", 0}, "", MATCH_C_JR | (X_RA << OP_SH_RD), MASK_C_JR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"ret", 0, {"I", 0}, "", MATCH_JALR | (X_RA << OP_SH_RS1), MASK_JALR | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"jr", 0, {"C", 0}, "d", MATCH_C_JR, MASK_C_JR, match_rd_nonzero, INSN_ALIAS|INSN_BRANCH },
-{"jr", 0, {"I", 0}, "s", MATCH_JALR, MASK_JALR | MASK_RD | MASK_IMM, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"jr", 0, {"I", 0}, "o(s)", MATCH_JALR, MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"jr", 0, {"I", 0}, "s,j", MATCH_JALR, MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"jalr", 0, {"C", 0}, "d", MATCH_C_JALR, MASK_C_JALR, match_rd_nonzero, INSN_ALIAS|INSN_JSR },
-{"jalr", 0, {"I", 0}, "s", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD | MASK_IMM, match_opcode, INSN_ALIAS|INSN_JSR },
-{"jalr", 0, {"I", 0}, "o(s)", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
-{"jalr", 0, {"I", 0}, "s,j", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
-{"jalr", 0, {"I", 0}, "d,s", MATCH_JALR, MASK_JALR | MASK_IMM, match_opcode, INSN_ALIAS|INSN_JSR },
-{"jalr", 0, {"I", 0}, "d,o(s)", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR },
-{"jalr", 0, {"I", 0}, "d,s,j", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR },
-{"j", 0, {"C", 0}, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"j", 0, {"I", 0}, "a", MATCH_JAL, MASK_JAL | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
-{"jal", 0, {"I", 0}, "d,a", MATCH_JAL, MASK_JAL, match_opcode, INSN_JSR },
-{"jal", 32, {"C", 0}, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS|INSN_JSR },
-{"jal", 0, {"I", 0}, "a", MATCH_JAL | (X_RA << OP_SH_RD), MASK_JAL | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
-{"call", 0, {"I", 0}, "d,c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
-{"call", 0, {"I", 0}, "c", (X_RA << OP_SH_RS1) | (X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO },
-{"tail", 0, {"I", 0}, "c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
-{"jump", 0, {"I", 0}, "c,s", 0, (int) M_CALL, match_never, INSN_MACRO },
-{"nop", 0, {"C", 0}, "", MATCH_C_ADDI, 0xffff, match_opcode, INSN_ALIAS },
-{"nop", 0, {"I", 0}, "", MATCH_ADDI, MASK_ADDI | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS },
-{"lui", 0, {"C", 0}, "d,Cu", MATCH_C_LUI, MASK_C_LUI, match_c_lui, INSN_ALIAS },
-{"lui", 0, {"I", 0}, "d,u", MATCH_LUI, MASK_LUI, match_opcode, 0 },
-{"li", 0, {"C", 0}, "d,Cv", MATCH_C_LUI, MASK_C_LUI, match_c_lui, INSN_ALIAS },
-{"li", 0, {"C", 0}, "d,Co", MATCH_C_LI, MASK_C_LI, match_rd_nonzero, INSN_ALIAS },
-{"li", 0, {"I", 0}, "d,j", MATCH_ADDI, MASK_ADDI | MASK_RS1, match_opcode, INSN_ALIAS }, /* addi */
-{"li", 0, {"I", 0}, "d,I", 0, (int) M_LI, match_never, INSN_MACRO },
-{"mv", 0, {"C", 0}, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS },
-{"mv", 0, {"I", 0}, "d,s", MATCH_ADDI, MASK_ADDI | MASK_IMM, match_opcode, INSN_ALIAS },
-{"move", 0, {"C", 0}, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS },
-{"move", 0, {"I", 0}, "d,s", MATCH_ADDI, MASK_ADDI | MASK_IMM, match_opcode, INSN_ALIAS },
-{"andi", 0, {"C", 0}, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
-{"andi", 0, {"I", 0}, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, 0 },
-{"and", 0, {"C", 0}, "Cs,Cw,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
-{"and", 0, {"C", 0}, "Cs,Ct,Cw", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
-{"and", 0, {"C", 0}, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
-{"and", 0, {"I", 0}, "d,s,t", MATCH_AND, MASK_AND, match_opcode, 0 },
-{"and", 0, {"I", 0}, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, INSN_ALIAS },
-{"beqz", 0, {"C", 0}, "Cs,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"beqz", 0, {"I", 0}, "s,p", MATCH_BEQ, MASK_BEQ | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"beq", 0, {"C", 0}, "Cs,Cz,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"beq", 0, {"I", 0}, "s,t,p", MATCH_BEQ, MASK_BEQ, match_opcode, INSN_CONDBRANCH },
-{"blez", 0, {"I", 0}, "t,p", MATCH_BGE, MASK_BGE | MASK_RS1, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bgez", 0, {"I", 0}, "s,p", MATCH_BGE, MASK_BGE | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bge", 0, {"I", 0}, "s,t,p", MATCH_BGE, MASK_BGE, match_opcode, INSN_CONDBRANCH },
-{"bgeu", 0, {"I", 0}, "s,t,p", MATCH_BGEU, MASK_BGEU, match_opcode, INSN_CONDBRANCH },
-{"ble", 0, {"I", 0}, "t,s,p", MATCH_BGE, MASK_BGE, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bleu", 0, {"I", 0}, "t,s,p", MATCH_BGEU, MASK_BGEU, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bltz", 0, {"I", 0}, "s,p", MATCH_BLT, MASK_BLT | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bgtz", 0, {"I", 0}, "t,p", MATCH_BLT, MASK_BLT | MASK_RS1, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"blt", 0, {"I", 0}, "s,t,p", MATCH_BLT, MASK_BLT, match_opcode, INSN_CONDBRANCH },
-{"bltu", 0, {"I", 0}, "s,t,p", MATCH_BLTU, MASK_BLTU, match_opcode, INSN_CONDBRANCH },
-{"bgt", 0, {"I", 0}, "t,s,p", MATCH_BLT, MASK_BLT, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bgtu", 0, {"I", 0}, "t,s,p", MATCH_BLTU, MASK_BLTU, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bnez", 0, {"C", 0}, "Cs,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bnez", 0, {"I", 0}, "s,p", MATCH_BNE, MASK_BNE | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bne", 0, {"C", 0}, "Cs,Cz,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
-{"bne", 0, {"I", 0}, "s,t,p", MATCH_BNE, MASK_BNE, match_opcode, INSN_CONDBRANCH },
-{"addi", 0, {"C", 0}, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, INSN_ALIAS },
-{"addi", 0, {"C", 0}, "d,CU,Cj", MATCH_C_ADDI, MASK_C_ADDI, match_rd_nonzero, INSN_ALIAS },
-{"addi", 0, {"C", 0}, "d,CU,z", MATCH_C_NOP, MASK_C_ADDI | MASK_RVC_IMM, match_c_nop, INSN_ALIAS },
-{"addi", 0, {"C", 0}, "Cc,Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, INSN_ALIAS },
-{"addi", 0, {"I", 0}, "d,s,j", MATCH_ADDI, MASK_ADDI, match_opcode, 0 },
-{"add", 0, {"C", 0}, "d,CU,CV", MATCH_C_ADD, MASK_C_ADD, match_c_add, INSN_ALIAS },
-{"add", 0, {"C", 0}, "d,CV,CU", MATCH_C_ADD, MASK_C_ADD, match_c_add, INSN_ALIAS },
-{"add", 0, {"C", 0}, "d,CU,Co", MATCH_C_ADDI, MASK_C_ADDI, match_rd_nonzero, INSN_ALIAS },
-{"add", 0, {"C", 0}, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, INSN_ALIAS },
-{"add", 0, {"C", 0}, "Cc,Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, INSN_ALIAS },
-{"add", 0, {"I", 0}, "d,s,t", MATCH_ADD, MASK_ADD, match_opcode, 0 },
+{"unimp", 0, INSN_CLASS_C, "", 0, 0xffffU, match_opcode, INSN_ALIAS },
+{"unimp", 0, INSN_CLASS_I, "", MATCH_CSRRW | (CSR_CYCLE << OP_SH_CSR), 0xffffffffU, match_opcode, 0 }, /* csrw cycle, x0 */
+{"ebreak", 0, INSN_CLASS_C, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, INSN_ALIAS },
+{"ebreak", 0, INSN_CLASS_I, "", MATCH_EBREAK, MASK_EBREAK, match_opcode, 0 },
+{"sbreak", 0, INSN_CLASS_C, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, INSN_ALIAS },
+{"sbreak", 0, INSN_CLASS_I, "", MATCH_EBREAK, MASK_EBREAK, match_opcode, INSN_ALIAS },
+{"ret", 0, INSN_CLASS_C, "", MATCH_C_JR | (X_RA << OP_SH_RD), MASK_C_JR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"ret", 0, INSN_CLASS_I, "", MATCH_JALR | (X_RA << OP_SH_RS1), MASK_JALR | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"jr", 0, INSN_CLASS_C, "d", MATCH_C_JR, MASK_C_JR, match_rd_nonzero, INSN_ALIAS|INSN_BRANCH },
+{"jr", 0, INSN_CLASS_I, "s", MATCH_JALR, MASK_JALR | MASK_RD | MASK_IMM, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"jr", 0, INSN_CLASS_I, "o(s)", MATCH_JALR, MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"jr", 0, INSN_CLASS_I, "s,j", MATCH_JALR, MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"jalr", 0, INSN_CLASS_C, "d", MATCH_C_JALR, MASK_C_JALR, match_rd_nonzero, INSN_ALIAS|INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "s", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD | MASK_IMM, match_opcode, INSN_ALIAS|INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "o(s)", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "s,j", MATCH_JALR | (X_RA << OP_SH_RD), MASK_JALR | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "d,s", MATCH_JALR, MASK_JALR | MASK_IMM, match_opcode, INSN_ALIAS|INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "d,o(s)", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR },
+{"jalr", 0, INSN_CLASS_I, "d,s,j", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR },
+{"j", 0, INSN_CLASS_C, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"j", 0, INSN_CLASS_I, "a", MATCH_JAL, MASK_JAL | MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH },
+{"jal", 0, INSN_CLASS_I, "d,a", MATCH_JAL, MASK_JAL, match_opcode, INSN_JSR },
+{"jal", 32, INSN_CLASS_C, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS|INSN_JSR },
+{"jal", 0, INSN_CLASS_I, "a", MATCH_JAL | (X_RA << OP_SH_RD), MASK_JAL | MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR },
+{"call", 0, INSN_CLASS_I, "d,c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
+{"call", 0, INSN_CLASS_I, "c", (X_RA << OP_SH_RS1) | (X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO },
+{"tail", 0, INSN_CLASS_I, "c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
+{"jump", 0, INSN_CLASS_I, "c,s", 0, (int) M_CALL, match_never, INSN_MACRO },
+{"nop", 0, INSN_CLASS_C, "", MATCH_C_ADDI, 0xffff, match_opcode, INSN_ALIAS },
+{"nop", 0, INSN_CLASS_I, "", MATCH_ADDI, MASK_ADDI | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS },
+{"lui", 0, INSN_CLASS_C, "d,Cu", MATCH_C_LUI, MASK_C_LUI, match_c_lui, INSN_ALIAS },
+{"lui", 0, INSN_CLASS_I, "d,u", MATCH_LUI, MASK_LUI, match_opcode, 0 },
+{"li", 0, INSN_CLASS_C, "d,Cv", MATCH_C_LUI, MASK_C_LUI, match_c_lui, INSN_ALIAS },
+{"li", 0, INSN_CLASS_C, "d,Co", MATCH_C_LI, MASK_C_LI, match_rd_nonzero, INSN_ALIAS },
+{"li", 0, INSN_CLASS_I, "d,j", MATCH_ADDI, MASK_ADDI | MASK_RS1, match_opcode, INSN_ALIAS }, /* addi */
+{"li", 0, INSN_CLASS_I, "d,I", 0, (int) M_LI, match_never, INSN_MACRO },
+{"mv", 0, INSN_CLASS_C, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS },
+{"mv", 0, INSN_CLASS_I, "d,s", MATCH_ADDI, MASK_ADDI | MASK_IMM, match_opcode, INSN_ALIAS },
+{"move", 0, INSN_CLASS_C, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS },
+{"move", 0, INSN_CLASS_I, "d,s", MATCH_ADDI, MASK_ADDI | MASK_IMM, match_opcode, INSN_ALIAS },
+{"andi", 0, INSN_CLASS_C, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
+{"andi", 0, INSN_CLASS_I, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, 0 },
+{"and", 0, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
+{"and", 0, INSN_CLASS_C, "Cs,Ct,Cw", MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
+{"and", 0, INSN_CLASS_C, "Cs,Cw,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
+{"and", 0, INSN_CLASS_I, "d,s,t", MATCH_AND, MASK_AND, match_opcode, 0 },
+{"and", 0, INSN_CLASS_I, "d,s,j", MATCH_ANDI, MASK_ANDI, match_opcode, INSN_ALIAS },
+{"beqz", 0, INSN_CLASS_C, "Cs,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"beqz", 0, INSN_CLASS_I, "s,p", MATCH_BEQ, MASK_BEQ | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"beq", 0, INSN_CLASS_C, "Cs,Cz,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"beq", 0, INSN_CLASS_I, "s,t,p", MATCH_BEQ, MASK_BEQ, match_opcode, INSN_CONDBRANCH },
+{"blez", 0, INSN_CLASS_I, "t,p", MATCH_BGE, MASK_BGE | MASK_RS1, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bgez", 0, INSN_CLASS_I, "s,p", MATCH_BGE, MASK_BGE | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bge", 0, INSN_CLASS_I, "s,t,p", MATCH_BGE, MASK_BGE, match_opcode, INSN_CONDBRANCH },
+{"bgeu", 0, INSN_CLASS_I, "s,t,p", MATCH_BGEU, MASK_BGEU, match_opcode, INSN_CONDBRANCH },
+{"ble", 0, INSN_CLASS_I, "t,s,p", MATCH_BGE, MASK_BGE, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bleu", 0, INSN_CLASS_I, "t,s,p", MATCH_BGEU, MASK_BGEU, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bltz", 0, INSN_CLASS_I, "s,p", MATCH_BLT, MASK_BLT | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bgtz", 0, INSN_CLASS_I, "t,p", MATCH_BLT, MASK_BLT | MASK_RS1, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"blt", 0, INSN_CLASS_I, "s,t,p", MATCH_BLT, MASK_BLT, match_opcode, INSN_CONDBRANCH },
+{"bltu", 0, INSN_CLASS_I, "s,t,p", MATCH_BLTU, MASK_BLTU, match_opcode, INSN_CONDBRANCH },
+{"bgt", 0, INSN_CLASS_I, "t,s,p", MATCH_BLT, MASK_BLT, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bgtu", 0, INSN_CLASS_I, "t,s,p", MATCH_BLTU, MASK_BLTU, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bnez", 0, INSN_CLASS_C, "Cs,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bnez", 0, INSN_CLASS_I, "s,p", MATCH_BNE, MASK_BNE | MASK_RS2, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bne", 0, INSN_CLASS_C, "Cs,Cz,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
+{"bne", 0, INSN_CLASS_I, "s,t,p", MATCH_BNE, MASK_BNE, match_opcode, INSN_CONDBRANCH },
+{"addi", 0, INSN_CLASS_C, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, INSN_ALIAS },
+{"addi", 0, INSN_CLASS_C, "d,CU,Cj", MATCH_C_ADDI, MASK_C_ADDI, match_rd_nonzero, INSN_ALIAS },
+{"addi", 0, INSN_CLASS_C, "d,CU,z", MATCH_C_NOP, MASK_C_ADDI | MASK_RVC_IMM, match_c_nop, INSN_ALIAS },
+{"addi", 0, INSN_CLASS_C, "Cc,Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, INSN_ALIAS },
+{"addi", 0, INSN_CLASS_I, "d,s,j", MATCH_ADDI, MASK_ADDI, match_opcode, 0 },
+{"add", 0, INSN_CLASS_C, "d,CU,CV", MATCH_C_ADD, MASK_C_ADD, match_c_add, INSN_ALIAS },
+{"add", 0, INSN_CLASS_C, "d,CV,CU", MATCH_C_ADD, MASK_C_ADD, match_c_add, INSN_ALIAS },
+{"add", 0, INSN_CLASS_C, "d,CU,Co", MATCH_C_ADDI, MASK_C_ADDI, match_rd_nonzero, INSN_ALIAS },
+{"add", 0, INSN_CLASS_C, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, INSN_ALIAS },
+{"add", 0, INSN_CLASS_C, "Cc,Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, INSN_ALIAS },
+{"add", 0, INSN_CLASS_I, "d,s,t", MATCH_ADD, MASK_ADD, match_opcode, 0 },
/* This is used for TLS, where the fourth arg is %tprel_add, to get a reloc
applied to an add instruction, for relaxation to use. */
-{"add", 0, {"I", 0}, "d,s,t,1",MATCH_ADD, MASK_ADD, match_opcode, 0 },
-{"add", 0, {"I", 0}, "d,s,j", MATCH_ADDI, MASK_ADDI, match_opcode, INSN_ALIAS },
-{"la", 0, {"I", 0}, "d,B", 0, (int) M_LA, match_never, INSN_MACRO },
-{"lla", 0, {"I", 0}, "d,B", 0, (int) M_LLA, match_never, INSN_MACRO },
-{"la.tls.gd", 0, {"I", 0}, "d,A", 0, (int) M_LA_TLS_GD, match_never, INSN_MACRO },
-{"la.tls.ie", 0, {"I", 0}, "d,A", 0, (int) M_LA_TLS_IE, match_never, INSN_MACRO },
-{"neg", 0, {"I", 0}, "d,t", MATCH_SUB, MASK_SUB | MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
-{"slli", 0, {"C", 0}, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
-{"slli", 0, {"I", 0}, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, 0 },
-{"sll", 0, {"C", 0}, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
-{"sll", 0, {"I", 0}, "d,s,t", MATCH_SLL, MASK_SLL, match_opcode, 0 },
-{"sll", 0, {"I", 0}, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, INSN_ALIAS },
-{"srli", 0, {"C", 0}, "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_srxi_as_c_srxi, INSN_ALIAS },
-{"srli", 0, {"I", 0}, "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, 0 },
-{"srl", 0, {"C", 0}, "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_srxi_as_c_srxi, INSN_ALIAS },
-{"srl", 0, {"I", 0}, "d,s,t", MATCH_SRL, MASK_SRL, match_opcode, 0 },
-{"srl", 0, {"I", 0}, "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, INSN_ALIAS },
-{"srai", 0, {"C", 0}, "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_srxi_as_c_srxi, INSN_ALIAS },
-{"srai", 0, {"I", 0}, "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, 0 },
-{"sra", 0, {"C", 0}, "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_srxi_as_c_srxi, INSN_ALIAS },
-{"sra", 0, {"I", 0}, "d,s,t", MATCH_SRA, MASK_SRA, match_opcode, 0 },
-{"sra", 0, {"I", 0}, "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, INSN_ALIAS },
-{"sub", 0, {"C", 0}, "Cs,Cw,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, INSN_ALIAS },
-{"sub", 0, {"I", 0}, "d,s,t", MATCH_SUB, MASK_SUB, match_opcode, 0 },
-{"lb", 0, {"I", 0}, "d,o(s)", MATCH_LB, MASK_LB, match_opcode, INSN_DREF|INSN_1_BYTE },
-{"lb", 0, {"I", 0}, "d,A", 0, (int) M_LB, match_never, INSN_MACRO },
-{"lbu", 0, {"I", 0}, "d,o(s)", MATCH_LBU, MASK_LBU, match_opcode, INSN_DREF|INSN_1_BYTE },
-{"lbu", 0, {"I", 0}, "d,A", 0, (int) M_LBU, match_never, INSN_MACRO },
-{"lh", 0, {"I", 0}, "d,o(s)", MATCH_LH, MASK_LH, match_opcode, INSN_DREF|INSN_2_BYTE },
-{"lh", 0, {"I", 0}, "d,A", 0, (int) M_LH, match_never, INSN_MACRO },
-{"lhu", 0, {"I", 0}, "d,o(s)", MATCH_LHU, MASK_LHU, match_opcode, INSN_DREF|INSN_2_BYTE },
-{"lhu", 0, {"I", 0}, "d,A", 0, (int) M_LHU, match_never, INSN_MACRO },
-{"lw", 0, {"C", 0}, "d,Cm(Cc)", MATCH_C_LWSP, MASK_C_LWSP, match_rd_nonzero, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"lw", 0, {"C", 0}, "Ct,Ck(Cs)", MATCH_C_LW, MASK_C_LW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"lw", 0, {"I", 0}, "d,o(s)", MATCH_LW, MASK_LW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lw", 0, {"I", 0}, "d,A", 0, (int) M_LW, match_never, INSN_MACRO },
-{"not", 0, {"I", 0}, "d,s", MATCH_XORI | MASK_IMM, MASK_XORI | MASK_IMM, match_opcode, INSN_ALIAS },
-{"ori", 0, {"I", 0}, "d,s,j", MATCH_ORI, MASK_ORI, match_opcode, 0 },
-{"or", 0, {"C", 0}, "Cs,Cw,Ct", MATCH_C_OR, MASK_C_OR, match_opcode, INSN_ALIAS },
-{"or", 0, {"C", 0}, "Cs,Ct,Cw", MATCH_C_OR, MASK_C_OR, match_opcode, INSN_ALIAS },
-{"or", 0, {"I", 0}, "d,s,t", MATCH_OR, MASK_OR, match_opcode, 0 },
-{"or", 0, {"I", 0}, "d,s,j", MATCH_ORI, MASK_ORI, match_opcode, INSN_ALIAS },
-{"auipc", 0, {"I", 0}, "d,u", MATCH_AUIPC, MASK_AUIPC, match_opcode, 0 },
-{"seqz", 0, {"I", 0}, "d,s", MATCH_SLTIU | ENCODE_ITYPE_IMM (1), MASK_SLTIU | MASK_IMM, match_opcode, INSN_ALIAS },
-{"snez", 0, {"I", 0}, "d,t", MATCH_SLTU, MASK_SLTU | MASK_RS1, match_opcode, INSN_ALIAS },
-{"sltz", 0, {"I", 0}, "d,s", MATCH_SLT, MASK_SLT | MASK_RS2, match_opcode, INSN_ALIAS },
-{"sgtz", 0, {"I", 0}, "d,t", MATCH_SLT, MASK_SLT | MASK_RS1, match_opcode, INSN_ALIAS },
-{"slti", 0, {"I", 0}, "d,s,j", MATCH_SLTI, MASK_SLTI, match_opcode, 0 },
-{"slt", 0, {"I", 0}, "d,s,t", MATCH_SLT, MASK_SLT, match_opcode, 0 },
-{"slt", 0, {"I", 0}, "d,s,j", MATCH_SLTI, MASK_SLTI, match_opcode, INSN_ALIAS },
-{"sltiu", 0, {"I", 0}, "d,s,j", MATCH_SLTIU, MASK_SLTIU, match_opcode, 0 },
-{"sltu", 0, {"I", 0}, "d,s,t", MATCH_SLTU, MASK_SLTU, match_opcode, 0 },
-{"sltu", 0, {"I", 0}, "d,s,j", MATCH_SLTIU, MASK_SLTIU, match_opcode, INSN_ALIAS },
-{"sgt", 0, {"I", 0}, "d,t,s", MATCH_SLT, MASK_SLT, match_opcode, INSN_ALIAS },
-{"sgtu", 0, {"I", 0}, "d,t,s", MATCH_SLTU, MASK_SLTU, match_opcode, INSN_ALIAS },
-{"sb", 0, {"I", 0}, "t,q(s)", MATCH_SB, MASK_SB, match_opcode, INSN_DREF|INSN_1_BYTE },
-{"sb", 0, {"I", 0}, "t,A,s", 0, (int) M_SB, match_never, INSN_MACRO },
-{"sh", 0, {"I", 0}, "t,q(s)", MATCH_SH, MASK_SH, match_opcode, INSN_DREF|INSN_2_BYTE },
-{"sh", 0, {"I", 0}, "t,A,s", 0, (int) M_SH, match_never, INSN_MACRO },
-{"sw", 0, {"C", 0}, "CV,CM(Cc)", MATCH_C_SWSP, MASK_C_SWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"sw", 0, {"C", 0}, "Ct,Ck(Cs)", MATCH_C_SW, MASK_C_SW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"sw", 0, {"I", 0}, "t,q(s)", MATCH_SW, MASK_SW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"sw", 0, {"I", 0}, "t,A,s", 0, (int) M_SW, match_never, INSN_MACRO },
-{"fence", 0, {"I", 0}, "", MATCH_FENCE | MASK_PRED | MASK_SUCC, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS },
-{"fence", 0, {"I", 0}, "P,Q", MATCH_FENCE, MASK_FENCE | MASK_RD | MASK_RS1 | (MASK_IMM & ~MASK_PRED & ~MASK_SUCC), match_opcode, 0 },
-{"fence.i", 0, {"I", 0}, "", MATCH_FENCE_I, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, 0 },
-{"fence.tso", 0, {"I", 0}, "", MATCH_FENCE_TSO, MASK_FENCE_TSO | MASK_RD | MASK_RS1, match_opcode, INSN_ALIAS },
-{"rdcycle", 0, {"I", 0}, "d", MATCH_RDCYCLE, MASK_RDCYCLE, match_opcode, INSN_ALIAS },
-{"rdinstret", 0, {"I", 0}, "d", MATCH_RDINSTRET, MASK_RDINSTRET, match_opcode, INSN_ALIAS },
-{"rdtime", 0, {"I", 0}, "d", MATCH_RDTIME, MASK_RDTIME, match_opcode, INSN_ALIAS },
-{"rdcycleh", 32, {"I", 0}, "d", MATCH_RDCYCLEH, MASK_RDCYCLEH, match_opcode, INSN_ALIAS },
-{"rdinstreth", 32, {"I", 0}, "d", MATCH_RDINSTRETH, MASK_RDINSTRETH, match_opcode, INSN_ALIAS },
-{"rdtimeh", 32, {"I", 0}, "d", MATCH_RDTIMEH, MASK_RDTIMEH, match_opcode, INSN_ALIAS },
-{"ecall", 0, {"I", 0}, "", MATCH_SCALL, MASK_SCALL, match_opcode, 0 },
-{"scall", 0, {"I", 0}, "", MATCH_SCALL, MASK_SCALL, match_opcode, 0 },
-{"xori", 0, {"I", 0}, "d,s,j", MATCH_XORI, MASK_XORI, match_opcode, 0 },
-{"xor", 0, {"C", 0}, "Cs,Cw,Ct", MATCH_C_XOR, MASK_C_XOR, match_opcode, INSN_ALIAS },
-{"xor", 0, {"C", 0}, "Cs,Ct,Cw", MATCH_C_XOR, MASK_C_XOR, match_opcode, INSN_ALIAS },
-{"xor", 0, {"I", 0}, "d,s,t", MATCH_XOR, MASK_XOR, match_opcode, 0 },
-{"xor", 0, {"I", 0}, "d,s,j", MATCH_XORI, MASK_XORI, match_opcode, INSN_ALIAS },
-{"lwu", 64, {"I", 0}, "d,o(s)", MATCH_LWU, MASK_LWU, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lwu", 64, {"I", 0}, "d,A", 0, (int) M_LWU, match_never, INSN_MACRO },
-{"ld", 64, {"C", 0}, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"ld", 64, {"C", 0}, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"ld", 64, {"I", 0}, "d,o(s)", MATCH_LD, MASK_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"ld", 64, {"I", 0}, "d,A", 0, (int) M_LD, match_never, INSN_MACRO },
-{"sd", 64, {"C", 0}, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"sd", 64, {"C", 0}, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"sd", 64, {"I", 0}, "t,q(s)", MATCH_SD, MASK_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"sd", 64, {"I", 0}, "t,A,s", 0, (int) M_SD, match_never, INSN_MACRO },
-{"sext.w", 64, {"C", 0}, "d,CU", MATCH_C_ADDIW, MASK_C_ADDIW | MASK_RVC_IMM, match_rd_nonzero, INSN_ALIAS },
-{"sext.w", 64, {"I", 0}, "d,s", MATCH_ADDIW, MASK_ADDIW | MASK_IMM, match_opcode, INSN_ALIAS },
-{"addiw", 64, {"C", 0}, "d,CU,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, INSN_ALIAS },
-{"addiw", 64, {"I", 0}, "d,s,j", MATCH_ADDIW, MASK_ADDIW, match_opcode, 0 },
-{"addw", 64, {"C", 0}, "Cs,Cw,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, INSN_ALIAS },
-{"addw", 64, {"C", 0}, "Cs,Ct,Cw", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, INSN_ALIAS },
-{"addw", 64, {"C", 0}, "d,CU,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, INSN_ALIAS },
-{"addw", 64, {"I", 0}, "d,s,t", MATCH_ADDW, MASK_ADDW, match_opcode, 0 },
-{"addw", 64, {"I", 0}, "d,s,j", MATCH_ADDIW, MASK_ADDIW, match_opcode, INSN_ALIAS },
-{"negw", 64, {"I", 0}, "d,t", MATCH_SUBW, MASK_SUBW | MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
-{"slliw", 64, {"I", 0}, "d,s,<", MATCH_SLLIW, MASK_SLLIW, match_opcode, 0 },
-{"sllw", 64, {"I", 0}, "d,s,t", MATCH_SLLW, MASK_SLLW, match_opcode, 0 },
-{"sllw", 64, {"I", 0}, "d,s,<", MATCH_SLLIW, MASK_SLLIW, match_opcode, INSN_ALIAS },
-{"srliw", 64, {"I", 0}, "d,s,<", MATCH_SRLIW, MASK_SRLIW, match_opcode, 0 },
-{"srlw", 64, {"I", 0}, "d,s,t", MATCH_SRLW, MASK_SRLW, match_opcode, 0 },
-{"srlw", 64, {"I", 0}, "d,s,<", MATCH_SRLIW, MASK_SRLIW, match_opcode, INSN_ALIAS },
-{"sraiw", 64, {"I", 0}, "d,s,<", MATCH_SRAIW, MASK_SRAIW, match_opcode, 0 },
-{"sraw", 64, {"I", 0}, "d,s,t", MATCH_SRAW, MASK_SRAW, match_opcode, 0 },
-{"sraw", 64, {"I", 0}, "d,s,<", MATCH_SRAIW, MASK_SRAIW, match_opcode, INSN_ALIAS },
-{"subw", 64, {"C", 0}, "Cs,Cw,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, INSN_ALIAS },
-{"subw", 64, {"I", 0}, "d,s,t", MATCH_SUBW, MASK_SUBW, match_opcode, 0 },
+{"add", 0, INSN_CLASS_I, "d,s,t,1",MATCH_ADD, MASK_ADD, match_opcode, 0 },
+{"add", 0, INSN_CLASS_I, "d,s,j", MATCH_ADDI, MASK_ADDI, match_opcode, INSN_ALIAS },
+{"la", 0, INSN_CLASS_I, "d,B", 0, (int) M_LA, match_never, INSN_MACRO },
+{"lla", 0, INSN_CLASS_I, "d,B", 0, (int) M_LLA, match_never, INSN_MACRO },
+{"la.tls.gd", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_GD, match_never, INSN_MACRO },
+{"la.tls.ie", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_IE, match_never, INSN_MACRO },
+{"neg", 0, INSN_CLASS_I, "d,t", MATCH_SUB, MASK_SUB | MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
+{"slli", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
+{"slli", 0, INSN_CLASS_I, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, 0 },
+{"sll", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
+{"sll", 0, INSN_CLASS_I, "d,s,t", MATCH_SLL, MASK_SLL, match_opcode, 0 },
+{"sll", 0, INSN_CLASS_I, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, INSN_ALIAS },
+{"srli", 0, INSN_CLASS_C, "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_srxi_as_c_srxi, INSN_ALIAS },
+{"srli", 0, INSN_CLASS_I, "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, 0 },
+{"srl", 0, INSN_CLASS_C, "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_srxi_as_c_srxi, INSN_ALIAS },
+{"srl", 0, INSN_CLASS_I, "d,s,t", MATCH_SRL, MASK_SRL, match_opcode, 0 },
+{"srl", 0, INSN_CLASS_I, "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, INSN_ALIAS },
+{"srai", 0, INSN_CLASS_C, "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_srxi_as_c_srxi, INSN_ALIAS },
+{"srai", 0, INSN_CLASS_I, "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, 0 },
+{"sra", 0, INSN_CLASS_C, "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_srxi_as_c_srxi, INSN_ALIAS },
+{"sra", 0, INSN_CLASS_I, "d,s,t", MATCH_SRA, MASK_SRA, match_opcode, 0 },
+{"sra", 0, INSN_CLASS_I, "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, INSN_ALIAS },
+{"sub", 0, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, INSN_ALIAS },
+{"sub", 0, INSN_CLASS_I, "d,s,t", MATCH_SUB, MASK_SUB, match_opcode, 0 },
+{"lb", 0, INSN_CLASS_I, "d,o(s)", MATCH_LB, MASK_LB, match_opcode, INSN_DREF|INSN_1_BYTE },
+{"lb", 0, INSN_CLASS_I, "d,A", 0, (int) M_LB, match_never, INSN_MACRO },
+{"lbu", 0, INSN_CLASS_I, "d,o(s)", MATCH_LBU, MASK_LBU, match_opcode, INSN_DREF|INSN_1_BYTE },
+{"lbu", 0, INSN_CLASS_I, "d,A", 0, (int) M_LBU, match_never, INSN_MACRO },
+{"lh", 0, INSN_CLASS_I, "d,o(s)", MATCH_LH, MASK_LH, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"lh", 0, INSN_CLASS_I, "d,A", 0, (int) M_LH, match_never, INSN_MACRO },
+{"lhu", 0, INSN_CLASS_I, "d,o(s)", MATCH_LHU, MASK_LHU, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"lhu", 0, INSN_CLASS_I, "d,A", 0, (int) M_LHU, match_never, INSN_MACRO },
+{"lw", 0, INSN_CLASS_C, "d,Cm(Cc)", MATCH_C_LWSP, MASK_C_LWSP, match_rd_nonzero, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"lw", 0, INSN_CLASS_C, "Ct,Ck(Cs)", MATCH_C_LW, MASK_C_LW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"lw", 0, INSN_CLASS_I, "d,o(s)", MATCH_LW, MASK_LW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lw", 0, INSN_CLASS_I, "d,A", 0, (int) M_LW, match_never, INSN_MACRO },
+{"not", 0, INSN_CLASS_I, "d,s", MATCH_XORI | MASK_IMM, MASK_XORI | MASK_IMM, match_opcode, INSN_ALIAS },
+{"ori", 0, INSN_CLASS_I, "d,s,j", MATCH_ORI, MASK_ORI, match_opcode, 0 },
+{"or", 0, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_OR, MASK_C_OR, match_opcode, INSN_ALIAS },
+{"or", 0, INSN_CLASS_C, "Cs,Ct,Cw", MATCH_C_OR, MASK_C_OR, match_opcode, INSN_ALIAS },
+{"or", 0, INSN_CLASS_I, "d,s,t", MATCH_OR, MASK_OR, match_opcode, 0 },
+{"or", 0, INSN_CLASS_I, "d,s,j", MATCH_ORI, MASK_ORI, match_opcode, INSN_ALIAS },
+{"auipc", 0, INSN_CLASS_I, "d,u", MATCH_AUIPC, MASK_AUIPC, match_opcode, 0 },
+{"seqz", 0, INSN_CLASS_I, "d,s", MATCH_SLTIU | ENCODE_ITYPE_IMM (1), MASK_SLTIU | MASK_IMM, match_opcode, INSN_ALIAS },
+{"snez", 0, INSN_CLASS_I, "d,t", MATCH_SLTU, MASK_SLTU | MASK_RS1, match_opcode, INSN_ALIAS },
+{"sltz", 0, INSN_CLASS_I, "d,s", MATCH_SLT, MASK_SLT | MASK_RS2, match_opcode, INSN_ALIAS },
+{"sgtz", 0, INSN_CLASS_I, "d,t", MATCH_SLT, MASK_SLT | MASK_RS1, match_opcode, INSN_ALIAS },
+{"slti", 0, INSN_CLASS_I, "d,s,j", MATCH_SLTI, MASK_SLTI, match_opcode, 0 },
+{"slt", 0, INSN_CLASS_I, "d,s,t", MATCH_SLT, MASK_SLT, match_opcode, 0 },
+{"slt", 0, INSN_CLASS_I, "d,s,j", MATCH_SLTI, MASK_SLTI, match_opcode, INSN_ALIAS },
+{"sltiu", 0, INSN_CLASS_I, "d,s,j", MATCH_SLTIU, MASK_SLTIU, match_opcode, 0 },
+{"sltu", 0, INSN_CLASS_I, "d,s,t", MATCH_SLTU, MASK_SLTU, match_opcode, 0 },
+{"sltu", 0, INSN_CLASS_I, "d,s,j", MATCH_SLTIU, MASK_SLTIU, match_opcode, INSN_ALIAS },
+{"sgt", 0, INSN_CLASS_I, "d,t,s", MATCH_SLT, MASK_SLT, match_opcode, INSN_ALIAS },
+{"sgtu", 0, INSN_CLASS_I, "d,t,s", MATCH_SLTU, MASK_SLTU, match_opcode, INSN_ALIAS },
+{"sb", 0, INSN_CLASS_I, "t,q(s)", MATCH_SB, MASK_SB, match_opcode, INSN_DREF|INSN_1_BYTE },
+{"sb", 0, INSN_CLASS_I, "t,A,s", 0, (int) M_SB, match_never, INSN_MACRO },
+{"sh", 0, INSN_CLASS_I, "t,q(s)", MATCH_SH, MASK_SH, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"sh", 0, INSN_CLASS_I, "t,A,s", 0, (int) M_SH, match_never, INSN_MACRO },
+{"sw", 0, INSN_CLASS_C, "CV,CM(Cc)", MATCH_C_SWSP, MASK_C_SWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"sw", 0, INSN_CLASS_C, "Ct,Ck(Cs)", MATCH_C_SW, MASK_C_SW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"sw", 0, INSN_CLASS_I, "t,q(s)", MATCH_SW, MASK_SW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"sw", 0, INSN_CLASS_I, "t,A,s", 0, (int) M_SW, match_never, INSN_MACRO },
+{"fence", 0, INSN_CLASS_I, "", MATCH_FENCE | MASK_PRED | MASK_SUCC, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS },
+{"fence", 0, INSN_CLASS_I, "P,Q", MATCH_FENCE, MASK_FENCE | MASK_RD | MASK_RS1 | (MASK_IMM & ~MASK_PRED & ~MASK_SUCC), match_opcode, 0 },
+{"fence.i", 0, INSN_CLASS_I, "", MATCH_FENCE_I, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, 0 },
+{"fence.tso", 0, INSN_CLASS_I, "", MATCH_FENCE_TSO, MASK_FENCE_TSO | MASK_RD | MASK_RS1, match_opcode, INSN_ALIAS },
+{"rdcycle", 0, INSN_CLASS_I, "d", MATCH_RDCYCLE, MASK_RDCYCLE, match_opcode, INSN_ALIAS },
+{"rdinstret", 0, INSN_CLASS_I, "d", MATCH_RDINSTRET, MASK_RDINSTRET, match_opcode, INSN_ALIAS },
+{"rdtime", 0, INSN_CLASS_I, "d", MATCH_RDTIME, MASK_RDTIME, match_opcode, INSN_ALIAS },
+{"rdcycleh", 32, INSN_CLASS_I, "d", MATCH_RDCYCLEH, MASK_RDCYCLEH, match_opcode, INSN_ALIAS },
+{"rdinstreth", 32, INSN_CLASS_I, "d", MATCH_RDINSTRETH, MASK_RDINSTRETH, match_opcode, INSN_ALIAS },
+{"rdtimeh", 32, INSN_CLASS_I, "d", MATCH_RDTIMEH, MASK_RDTIMEH, match_opcode, INSN_ALIAS },
+{"ecall", 0, INSN_CLASS_I, "", MATCH_SCALL, MASK_SCALL, match_opcode, 0 },
+{"scall", 0, INSN_CLASS_I, "", MATCH_SCALL, MASK_SCALL, match_opcode, 0 },
+{"xori", 0, INSN_CLASS_I, "d,s,j", MATCH_XORI, MASK_XORI, match_opcode, 0 },
+{"xor", 0, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_XOR, MASK_C_XOR, match_opcode, INSN_ALIAS },
+{"xor", 0, INSN_CLASS_C, "Cs,Ct,Cw", MATCH_C_XOR, MASK_C_XOR, match_opcode, INSN_ALIAS },
+{"xor", 0, INSN_CLASS_I, "d,s,t", MATCH_XOR, MASK_XOR, match_opcode, 0 },
+{"xor", 0, INSN_CLASS_I, "d,s,j", MATCH_XORI, MASK_XORI, match_opcode, INSN_ALIAS },
+{"lwu", 64, INSN_CLASS_I, "d,o(s)", MATCH_LWU, MASK_LWU, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lwu", 64, INSN_CLASS_I, "d,A", 0, (int) M_LWU, match_never, INSN_MACRO },
+{"ld", 64, INSN_CLASS_C, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"ld", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"ld", 64, INSN_CLASS_I, "d,o(s)", MATCH_LD, MASK_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"ld", 64, INSN_CLASS_I, "d,A", 0, (int) M_LD, match_never, INSN_MACRO },
+{"sd", 64, INSN_CLASS_C, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"sd", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"sd", 64, INSN_CLASS_I, "t,q(s)", MATCH_SD, MASK_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"sd", 64, INSN_CLASS_I, "t,A,s", 0, (int) M_SD, match_never, INSN_MACRO },
+{"sext.w", 64, INSN_CLASS_C, "d,CU", MATCH_C_ADDIW, MASK_C_ADDIW | MASK_RVC_IMM, match_rd_nonzero, INSN_ALIAS },
+{"sext.w", 64, INSN_CLASS_I, "d,s", MATCH_ADDIW, MASK_ADDIW | MASK_IMM, match_opcode, INSN_ALIAS },
+{"addiw", 64, INSN_CLASS_C, "d,CU,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, INSN_ALIAS },
+{"addiw", 64, INSN_CLASS_I, "d,s,j", MATCH_ADDIW, MASK_ADDIW, match_opcode, 0 },
+{"addw", 64, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, INSN_ALIAS },
+{"addw", 64, INSN_CLASS_C, "Cs,Ct,Cw", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, INSN_ALIAS },
+{"addw", 64, INSN_CLASS_C, "d,CU,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, INSN_ALIAS },
+{"addw", 64, INSN_CLASS_I, "d,s,t", MATCH_ADDW, MASK_ADDW, match_opcode, 0 },
+{"addw", 64, INSN_CLASS_I, "d,s,j", MATCH_ADDIW, MASK_ADDIW, match_opcode, INSN_ALIAS },
+{"negw", 64, INSN_CLASS_I, "d,t", MATCH_SUBW, MASK_SUBW | MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
+{"slliw", 64, INSN_CLASS_I, "d,s,<", MATCH_SLLIW, MASK_SLLIW, match_opcode, 0 },
+{"sllw", 64, INSN_CLASS_I, "d,s,t", MATCH_SLLW, MASK_SLLW, match_opcode, 0 },
+{"sllw", 64, INSN_CLASS_I, "d,s,<", MATCH_SLLIW, MASK_SLLIW, match_opcode, INSN_ALIAS },
+{"srliw", 64, INSN_CLASS_I, "d,s,<", MATCH_SRLIW, MASK_SRLIW, match_opcode, 0 },
+{"srlw", 64, INSN_CLASS_I, "d,s,t", MATCH_SRLW, MASK_SRLW, match_opcode, 0 },
+{"srlw", 64, INSN_CLASS_I, "d,s,<", MATCH_SRLIW, MASK_SRLIW, match_opcode, INSN_ALIAS },
+{"sraiw", 64, INSN_CLASS_I, "d,s,<", MATCH_SRAIW, MASK_SRAIW, match_opcode, 0 },
+{"sraw", 64, INSN_CLASS_I, "d,s,t", MATCH_SRAW, MASK_SRAW, match_opcode, 0 },
+{"sraw", 64, INSN_CLASS_I, "d,s,<", MATCH_SRAIW, MASK_SRAIW, match_opcode, INSN_ALIAS },
+{"subw", 64, INSN_CLASS_C, "Cs,Cw,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, INSN_ALIAS },
+{"subw", 64, INSN_CLASS_I, "d,s,t", MATCH_SUBW, MASK_SUBW, match_opcode, 0 },
/* Atomic memory operation instruction subset */
-{"lr.w", 0, {"A", 0}, "d,0(s)", MATCH_LR_W, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"sc.w", 0, {"A", 0}, "d,t,0(s)", MATCH_SC_W, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoadd.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOADD_W, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoswap.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOSWAP_W, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoand.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOAND_W, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoor.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOOR_W, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoxor.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOXOR_W, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomax.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAX_W, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomaxu.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAXU_W, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomin.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMIN_W, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amominu.w", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMINU_W, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lr.w.aq", 0, {"A", 0}, "d,0(s)", MATCH_LR_W | MASK_AQ, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"sc.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_SC_W | MASK_AQ, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoadd.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOADD_W | MASK_AQ, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoswap.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_AQ, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoand.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOAND_W | MASK_AQ, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoor.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOOR_W | MASK_AQ, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoxor.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOXOR_W | MASK_AQ, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomax.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAX_W | MASK_AQ, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomaxu.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_AQ, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomin.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMIN_W | MASK_AQ, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amominu.w.aq", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMINU_W | MASK_AQ, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lr.w.rl", 0, {"A", 0}, "d,0(s)", MATCH_LR_W | MASK_RL, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"sc.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_SC_W | MASK_RL, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoadd.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOADD_W | MASK_RL, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoswap.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_RL, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoand.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOAND_W | MASK_RL, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoor.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOOR_W | MASK_RL, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoxor.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOXOR_W | MASK_RL, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomax.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAX_W | MASK_RL, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomaxu.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_RL, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomin.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMIN_W | MASK_RL, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amominu.w.rl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMINU_W | MASK_RL, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lr.w.aqrl", 0, {"A", 0}, "d,0(s)", MATCH_LR_W | MASK_AQRL, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"sc.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_SC_W | MASK_AQRL, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoadd.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOADD_W | MASK_AQRL, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoswap.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_AQRL, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoand.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOAND_W | MASK_AQRL, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoor.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOOR_W | MASK_AQRL, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amoxor.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOXOR_W | MASK_AQRL, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomax.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAX_W | MASK_AQRL, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomaxu.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_AQRL, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amomin.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMIN_W | MASK_AQRL, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"amominu.w.aqrl", 0, {"A", 0}, "d,t,0(s)", MATCH_AMOMINU_W | MASK_AQRL, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"lr.d", 64, {"A", 0} , "d,0(s)", MATCH_LR_D, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"sc.d", 64, {"A", 0} , "d,t,0(s)", MATCH_SC_D, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoadd.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOADD_D, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoswap.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOSWAP_D, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoand.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOAND_D, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoor.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOOR_D, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoxor.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOXOR_D, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomax.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAX_D, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomaxu.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAXU_D, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomin.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMIN_D, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amominu.d", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMINU_D, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"lr.d.aq", 64, {"A", 0} , "d,0(s)", MATCH_LR_D | MASK_AQ, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"sc.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_SC_D | MASK_AQ, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoadd.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOADD_D | MASK_AQ, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoswap.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_AQ, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoand.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOAND_D | MASK_AQ, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoor.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOOR_D | MASK_AQ, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoxor.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOXOR_D | MASK_AQ, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomax.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAX_D | MASK_AQ, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomaxu.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_AQ, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomin.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMIN_D | MASK_AQ, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amominu.d.aq", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMINU_D | MASK_AQ, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"lr.d.rl", 64, {"A", 0} , "d,0(s)", MATCH_LR_D | MASK_RL, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"sc.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_SC_D | MASK_RL, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoadd.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOADD_D | MASK_RL, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoswap.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_RL, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoand.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOAND_D | MASK_RL, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoor.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOOR_D | MASK_RL, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoxor.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOXOR_D | MASK_RL, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomax.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAX_D | MASK_RL, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomaxu.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_RL, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomin.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMIN_D | MASK_RL, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amominu.d.rl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMINU_D | MASK_RL, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"lr.d.aqrl", 64, {"A", 0} , "d,0(s)", MATCH_LR_D | MASK_AQRL, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"sc.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_SC_D | MASK_AQRL, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoadd.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOADD_D | MASK_AQRL, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoswap.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_AQRL, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoand.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOAND_D | MASK_AQRL, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoor.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOOR_D | MASK_AQRL, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amoxor.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOXOR_D | MASK_AQRL, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomax.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAX_D | MASK_AQRL, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomaxu.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_AQRL, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amomin.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMIN_D | MASK_AQRL, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"amominu.d.aqrl", 64, {"A", 0} , "d,t,0(s)", MATCH_AMOMINU_D | MASK_AQRL, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"lr.w", 0, INSN_CLASS_A, "d,0(s)", MATCH_LR_W, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"sc.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_SC_W, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoadd.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOADD_W, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoswap.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOSWAP_W, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoand.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOAND_W, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoor.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOOR_W, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoxor.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOXOR_W, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomax.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAX_W, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomaxu.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAXU_W, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomin.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMIN_W, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amominu.w", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMINU_W, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lr.w.aq", 0, INSN_CLASS_A, "d,0(s)", MATCH_LR_W | MASK_AQ, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"sc.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_SC_W | MASK_AQ, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoadd.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOADD_W | MASK_AQ, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoswap.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_AQ, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoand.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOAND_W | MASK_AQ, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoor.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOOR_W | MASK_AQ, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoxor.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOXOR_W | MASK_AQ, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomax.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAX_W | MASK_AQ, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomaxu.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_AQ, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomin.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMIN_W | MASK_AQ, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amominu.w.aq", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMINU_W | MASK_AQ, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lr.w.rl", 0, INSN_CLASS_A, "d,0(s)", MATCH_LR_W | MASK_RL, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"sc.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_SC_W | MASK_RL, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoadd.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOADD_W | MASK_RL, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoswap.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_RL, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoand.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOAND_W | MASK_RL, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoor.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOOR_W | MASK_RL, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoxor.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOXOR_W | MASK_RL, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomax.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAX_W | MASK_RL, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomaxu.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_RL, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomin.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMIN_W | MASK_RL, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amominu.w.rl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMINU_W | MASK_RL, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lr.w.aqrl", 0, INSN_CLASS_A, "d,0(s)", MATCH_LR_W | MASK_AQRL, MASK_LR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"sc.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_SC_W | MASK_AQRL, MASK_SC_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoadd.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOADD_W | MASK_AQRL, MASK_AMOADD_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoswap.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOSWAP_W | MASK_AQRL, MASK_AMOSWAP_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoand.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOAND_W | MASK_AQRL, MASK_AMOAND_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoor.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOOR_W | MASK_AQRL, MASK_AMOOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amoxor.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOXOR_W | MASK_AQRL, MASK_AMOXOR_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomax.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAX_W | MASK_AQRL, MASK_AMOMAX_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomaxu.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMAXU_W | MASK_AQRL, MASK_AMOMAXU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amomin.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMIN_W | MASK_AQRL, MASK_AMOMIN_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"amominu.w.aqrl", 0, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMINU_W | MASK_AQRL, MASK_AMOMINU_W | MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"lr.d", 64, INSN_CLASS_A , "d,0(s)", MATCH_LR_D, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"sc.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_SC_D, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoadd.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOADD_D, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoswap.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOSWAP_D, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoand.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOAND_D, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoor.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOOR_D, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoxor.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOXOR_D, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomax.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAX_D, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomaxu.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAXU_D, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomin.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMIN_D, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amominu.d", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMINU_D, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"lr.d.aq", 64, INSN_CLASS_A , "d,0(s)", MATCH_LR_D | MASK_AQ, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"sc.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_SC_D | MASK_AQ, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoadd.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOADD_D | MASK_AQ, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoswap.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_AQ, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoand.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOAND_D | MASK_AQ, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoor.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOOR_D | MASK_AQ, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoxor.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOXOR_D | MASK_AQ, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomax.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAX_D | MASK_AQ, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomaxu.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_AQ, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomin.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMIN_D | MASK_AQ, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amominu.d.aq", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMINU_D | MASK_AQ, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"lr.d.rl", 64, INSN_CLASS_A , "d,0(s)", MATCH_LR_D | MASK_RL, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"sc.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_SC_D | MASK_RL, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoadd.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOADD_D | MASK_RL, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoswap.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_RL, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoand.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOAND_D | MASK_RL, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoor.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOOR_D | MASK_RL, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoxor.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOXOR_D | MASK_RL, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomax.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAX_D | MASK_RL, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomaxu.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_RL, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomin.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMIN_D | MASK_RL, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amominu.d.rl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMINU_D | MASK_RL, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"lr.d.aqrl", 64, INSN_CLASS_A , "d,0(s)", MATCH_LR_D | MASK_AQRL, MASK_LR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"sc.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_SC_D | MASK_AQRL, MASK_SC_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoadd.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOADD_D | MASK_AQRL, MASK_AMOADD_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoswap.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOSWAP_D | MASK_AQRL, MASK_AMOSWAP_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoand.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOAND_D | MASK_AQRL, MASK_AMOAND_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoor.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOOR_D | MASK_AQRL, MASK_AMOOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amoxor.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOXOR_D | MASK_AQRL, MASK_AMOXOR_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomax.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAX_D | MASK_AQRL, MASK_AMOMAX_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomaxu.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMAXU_D | MASK_AQRL, MASK_AMOMAXU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amomin.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMIN_D | MASK_AQRL, MASK_AMOMIN_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"amominu.d.aqrl", 64, INSN_CLASS_A , "d,t,0(s)", MATCH_AMOMINU_D | MASK_AQRL, MASK_AMOMINU_D | MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
/* Multiply/Divide instruction subset */
-{"mul", 0, {"M", 0}, "d,s,t", MATCH_MUL, MASK_MUL, match_opcode, 0 },
-{"mulh", 0, {"M", 0}, "d,s,t", MATCH_MULH, MASK_MULH, match_opcode, 0 },
-{"mulhu", 0, {"M", 0}, "d,s,t", MATCH_MULHU, MASK_MULHU, match_opcode, 0 },
-{"mulhsu", 0, {"M", 0}, "d,s,t", MATCH_MULHSU, MASK_MULHSU, match_opcode, 0 },
-{"div", 0, {"M", 0}, "d,s,t", MATCH_DIV, MASK_DIV, match_opcode, 0 },
-{"divu", 0, {"M", 0}, "d,s,t", MATCH_DIVU, MASK_DIVU, match_opcode, 0 },
-{"rem", 0, {"M", 0}, "d,s,t", MATCH_REM, MASK_REM, match_opcode, 0 },
-{"remu", 0, {"M", 0}, "d,s,t", MATCH_REMU, MASK_REMU, match_opcode, 0 },
-{"mulw", 64, {"M", 0}, "d,s,t", MATCH_MULW, MASK_MULW, match_opcode, 0 },
-{"divw", 64, {"M", 0}, "d,s,t", MATCH_DIVW, MASK_DIVW, match_opcode, 0 },
-{"divuw", 64, {"M", 0}, "d,s,t", MATCH_DIVUW, MASK_DIVUW, match_opcode, 0 },
-{"remw", 64, {"M", 0}, "d,s,t", MATCH_REMW, MASK_REMW, match_opcode, 0 },
-{"remuw", 64, {"M", 0}, "d,s,t", MATCH_REMUW, MASK_REMUW, match_opcode, 0 },
+{"mul", 0, INSN_CLASS_M, "d,s,t", MATCH_MUL, MASK_MUL, match_opcode, 0 },
+{"mulh", 0, INSN_CLASS_M, "d,s,t", MATCH_MULH, MASK_MULH, match_opcode, 0 },
+{"mulhu", 0, INSN_CLASS_M, "d,s,t", MATCH_MULHU, MASK_MULHU, match_opcode, 0 },
+{"mulhsu", 0, INSN_CLASS_M, "d,s,t", MATCH_MULHSU, MASK_MULHSU, match_opcode, 0 },
+{"div", 0, INSN_CLASS_M, "d,s,t", MATCH_DIV, MASK_DIV, match_opcode, 0 },
+{"divu", 0, INSN_CLASS_M, "d,s,t", MATCH_DIVU, MASK_DIVU, match_opcode, 0 },
+{"rem", 0, INSN_CLASS_M, "d,s,t", MATCH_REM, MASK_REM, match_opcode, 0 },
+{"remu", 0, INSN_CLASS_M, "d,s,t", MATCH_REMU, MASK_REMU, match_opcode, 0 },
+{"mulw", 64, INSN_CLASS_M, "d,s,t", MATCH_MULW, MASK_MULW, match_opcode, 0 },
+{"divw", 64, INSN_CLASS_M, "d,s,t", MATCH_DIVW, MASK_DIVW, match_opcode, 0 },
+{"divuw", 64, INSN_CLASS_M, "d,s,t", MATCH_DIVUW, MASK_DIVUW, match_opcode, 0 },
+{"remw", 64, INSN_CLASS_M, "d,s,t", MATCH_REMW, MASK_REMW, match_opcode, 0 },
+{"remuw", 64, INSN_CLASS_M, "d,s,t", MATCH_REMUW, MASK_REMUW, match_opcode, 0 },
/* Single-precision floating-point instruction subset */
-{"frcsr", 0, {"F", 0}, "d", MATCH_FRCSR, MASK_FRCSR, match_opcode, INSN_ALIAS },
-{"frsr", 0, {"F", 0}, "d", MATCH_FRCSR, MASK_FRCSR, match_opcode, INSN_ALIAS },
-{"fscsr", 0, {"F", 0}, "s", MATCH_FSCSR, MASK_FSCSR | MASK_RD, match_opcode, INSN_ALIAS },
-{"fscsr", 0, {"F", 0}, "d,s", MATCH_FSCSR, MASK_FSCSR, match_opcode, INSN_ALIAS },
-{"fssr", 0, {"F", 0}, "s", MATCH_FSCSR, MASK_FSCSR | MASK_RD, match_opcode, INSN_ALIAS },
-{"fssr", 0, {"F", 0}, "d,s", MATCH_FSCSR, MASK_FSCSR, match_opcode, INSN_ALIAS },
-{"frrm", 0, {"F", 0}, "d", MATCH_FRRM, MASK_FRRM, match_opcode, INSN_ALIAS },
-{"fsrm", 0, {"F", 0}, "s", MATCH_FSRM, MASK_FSRM | MASK_RD, match_opcode, INSN_ALIAS },
-{"fsrm", 0, {"F", 0}, "d,s", MATCH_FSRM, MASK_FSRM, match_opcode, INSN_ALIAS },
-{"fsrmi", 0, {"F", 0}, "d,Z", MATCH_FSRMI, MASK_FSRMI, match_opcode, INSN_ALIAS },
-{"fsrmi", 0, {"F", 0}, "Z", MATCH_FSRMI, MASK_FSRMI | MASK_RD, match_opcode, INSN_ALIAS },
-{"frflags", 0, {"F", 0}, "d", MATCH_FRFLAGS, MASK_FRFLAGS, match_opcode, INSN_ALIAS },
-{"fsflags", 0, {"F", 0}, "s", MATCH_FSFLAGS, MASK_FSFLAGS | MASK_RD, match_opcode, INSN_ALIAS },
-{"fsflags", 0, {"F", 0}, "d,s", MATCH_FSFLAGS, MASK_FSFLAGS, match_opcode, INSN_ALIAS },
-{"fsflagsi", 0, {"F", 0}, "d,Z", MATCH_FSFLAGSI, MASK_FSFLAGSI, match_opcode, INSN_ALIAS },
-{"fsflagsi", 0, {"F", 0}, "Z", MATCH_FSFLAGSI, MASK_FSFLAGSI | MASK_RD, match_opcode, INSN_ALIAS },
-{"flw", 32, {"F", "C", 0}, "D,Cm(Cc)", MATCH_C_FLWSP, MASK_C_FLWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"flw", 32, {"F", "C", 0}, "CD,Ck(Cs)", MATCH_C_FLW, MASK_C_FLW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"flw", 0, {"F", 0}, "D,o(s)", MATCH_FLW, MASK_FLW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"flw", 0, {"F", 0}, "D,A,s", 0, (int) M_FLW, match_never, INSN_MACRO },
-{"fsw", 32, {"F", "C", 0}, "CT,CM(Cc)", MATCH_C_FSWSP, MASK_C_FSWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"fsw", 32, {"F", "C", 0}, "CD,Ck(Cs)", MATCH_C_FSW, MASK_C_FSW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
-{"fsw", 0, {"F", 0}, "T,q(s)", MATCH_FSW, MASK_FSW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"fsw", 0, {"F", 0}, "T,A,s", 0, (int) M_FSW, match_never, INSN_MACRO },
-
-{"fmv.x.w", 0, {"F", 0}, "d,S", MATCH_FMV_X_S, MASK_FMV_X_S, match_opcode, 0 },
-{"fmv.w.x", 0, {"F", 0}, "D,s", MATCH_FMV_S_X, MASK_FMV_S_X, match_opcode, 0 },
-
-{"fmv.x.s", 0, {"F", 0}, "d,S", MATCH_FMV_X_S, MASK_FMV_X_S, match_opcode, 0 },
-{"fmv.s.x", 0, {"F", 0}, "D,s", MATCH_FMV_S_X, MASK_FMV_S_X, match_opcode, 0 },
-
-{"fmv.s", 0, {"F", 0}, "D,U", MATCH_FSGNJ_S, MASK_FSGNJ_S, match_rs1_eq_rs2, INSN_ALIAS },
-{"fneg.s", 0, {"F", 0}, "D,U", MATCH_FSGNJN_S, MASK_FSGNJN_S, match_rs1_eq_rs2, INSN_ALIAS },
-{"fabs.s", 0, {"F", 0}, "D,U", MATCH_FSGNJX_S, MASK_FSGNJX_S, match_rs1_eq_rs2, INSN_ALIAS },
-{"fsgnj.s", 0, {"F", 0}, "D,S,T", MATCH_FSGNJ_S, MASK_FSGNJ_S, match_opcode, 0 },
-{"fsgnjn.s", 0, {"F", 0}, "D,S,T", MATCH_FSGNJN_S, MASK_FSGNJN_S, match_opcode, 0 },
-{"fsgnjx.s", 0, {"F", 0}, "D,S,T", MATCH_FSGNJX_S, MASK_FSGNJX_S, match_opcode, 0 },
-{"fadd.s", 0, {"F", 0}, "D,S,T", MATCH_FADD_S | MASK_RM, MASK_FADD_S | MASK_RM, match_opcode, 0 },
-{"fadd.s", 0, {"F", 0}, "D,S,T,m", MATCH_FADD_S, MASK_FADD_S, match_opcode, 0 },
-{"fsub.s", 0, {"F", 0}, "D,S,T", MATCH_FSUB_S | MASK_RM, MASK_FSUB_S | MASK_RM, match_opcode, 0 },
-{"fsub.s", 0, {"F", 0}, "D,S,T,m", MATCH_FSUB_S, MASK_FSUB_S, match_opcode, 0 },
-{"fmul.s", 0, {"F", 0}, "D,S,T", MATCH_FMUL_S | MASK_RM, MASK_FMUL_S | MASK_RM, match_opcode, 0 },
-{"fmul.s", 0, {"F", 0}, "D,S,T,m", MATCH_FMUL_S, MASK_FMUL_S, match_opcode, 0 },
-{"fdiv.s", 0, {"F", 0}, "D,S,T", MATCH_FDIV_S | MASK_RM, MASK_FDIV_S | MASK_RM, match_opcode, 0 },
-{"fdiv.s", 0, {"F", 0}, "D,S,T,m", MATCH_FDIV_S, MASK_FDIV_S, match_opcode, 0 },
-{"fsqrt.s", 0, {"F", 0}, "D,S", MATCH_FSQRT_S | MASK_RM, MASK_FSQRT_S | MASK_RM, match_opcode, 0 },
-{"fsqrt.s", 0, {"F", 0}, "D,S,m", MATCH_FSQRT_S, MASK_FSQRT_S, match_opcode, 0 },
-{"fmin.s", 0, {"F", 0}, "D,S,T", MATCH_FMIN_S, MASK_FMIN_S, match_opcode, 0 },
-{"fmax.s", 0, {"F", 0}, "D,S,T", MATCH_FMAX_S, MASK_FMAX_S, match_opcode, 0 },
-{"fmadd.s", 0, {"F", 0}, "D,S,T,R", MATCH_FMADD_S | MASK_RM, MASK_FMADD_S | MASK_RM, match_opcode, 0 },
-{"fmadd.s", 0, {"F", 0}, "D,S,T,R,m", MATCH_FMADD_S, MASK_FMADD_S, match_opcode, 0 },
-{"fnmadd.s", 0, {"F", 0}, "D,S,T,R", MATCH_FNMADD_S | MASK_RM, MASK_FNMADD_S | MASK_RM, match_opcode, 0 },
-{"fnmadd.s", 0, {"F", 0}, "D,S,T,R,m", MATCH_FNMADD_S, MASK_FNMADD_S, match_opcode, 0 },
-{"fmsub.s", 0, {"F", 0}, "D,S,T,R", MATCH_FMSUB_S | MASK_RM, MASK_FMSUB_S | MASK_RM, match_opcode, 0 },
-{"fmsub.s", 0, {"F", 0}, "D,S,T,R,m", MATCH_FMSUB_S, MASK_FMSUB_S, match_opcode, 0 },
-{"fnmsub.s", 0, {"F", 0}, "D,S,T,R", MATCH_FNMSUB_S | MASK_RM, MASK_FNMSUB_S | MASK_RM, match_opcode, 0 },
-{"fnmsub.s", 0, {"F", 0}, "D,S,T,R,m", MATCH_FNMSUB_S, MASK_FNMSUB_S, match_opcode, 0 },
-{"fcvt.w.s", 0, {"F", 0}, "d,S", MATCH_FCVT_W_S | MASK_RM, MASK_FCVT_W_S | MASK_RM, match_opcode, 0 },
-{"fcvt.w.s", 0, {"F", 0}, "d,S,m", MATCH_FCVT_W_S, MASK_FCVT_W_S, match_opcode, 0 },
-{"fcvt.wu.s", 0, {"F", 0}, "d,S", MATCH_FCVT_WU_S | MASK_RM, MASK_FCVT_WU_S | MASK_RM, match_opcode, 0 },
-{"fcvt.wu.s", 0, {"F", 0}, "d,S,m", MATCH_FCVT_WU_S, MASK_FCVT_WU_S, match_opcode, 0 },
-{"fcvt.s.w", 0, {"F", 0}, "D,s", MATCH_FCVT_S_W | MASK_RM, MASK_FCVT_S_W | MASK_RM, match_opcode, 0 },
-{"fcvt.s.w", 0, {"F", 0}, "D,s,m", MATCH_FCVT_S_W, MASK_FCVT_S_W, match_opcode, 0 },
-{"fcvt.s.wu", 0, {"F", 0}, "D,s", MATCH_FCVT_S_WU | MASK_RM, MASK_FCVT_S_W | MASK_RM, match_opcode, 0 },
-{"fcvt.s.wu", 0, {"F", 0}, "D,s,m", MATCH_FCVT_S_WU, MASK_FCVT_S_WU, match_opcode, 0 },
-{"fclass.s", 0, {"F", 0}, "d,S", MATCH_FCLASS_S, MASK_FCLASS_S, match_opcode, 0 },
-{"feq.s", 0, {"F", 0}, "d,S,T", MATCH_FEQ_S, MASK_FEQ_S, match_opcode, 0 },
-{"flt.s", 0, {"F", 0}, "d,S,T", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
-{"fle.s", 0, {"F", 0}, "d,S,T", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
-{"fgt.s", 0, {"F", 0}, "d,T,S", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
-{"fge.s", 0, {"F", 0}, "d,T,S", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
-{"fcvt.l.s", 64, {"F", 0}, "d,S", MATCH_FCVT_L_S | MASK_RM, MASK_FCVT_L_S | MASK_RM, match_opcode, 0 },
-{"fcvt.l.s", 64, {"F", 0}, "d,S,m", MATCH_FCVT_L_S, MASK_FCVT_L_S, match_opcode, 0 },
-{"fcvt.lu.s", 64, {"F", 0}, "d,S", MATCH_FCVT_LU_S | MASK_RM, MASK_FCVT_LU_S | MASK_RM, match_opcode, 0 },
-{"fcvt.lu.s", 64, {"F", 0}, "d,S,m", MATCH_FCVT_LU_S, MASK_FCVT_LU_S, match_opcode, 0 },
-{"fcvt.s.l", 64, {"F", 0}, "D,s", MATCH_FCVT_S_L | MASK_RM, MASK_FCVT_S_L | MASK_RM, match_opcode, 0 },
-{"fcvt.s.l", 64, {"F", 0}, "D,s,m", MATCH_FCVT_S_L, MASK_FCVT_S_L, match_opcode, 0 },
-{"fcvt.s.lu", 64, {"F", 0}, "D,s", MATCH_FCVT_S_LU | MASK_RM, MASK_FCVT_S_L | MASK_RM, match_opcode, 0 },
-{"fcvt.s.lu", 64, {"F", 0}, "D,s,m", MATCH_FCVT_S_LU, MASK_FCVT_S_LU, match_opcode, 0 },
+{"frcsr", 0, INSN_CLASS_F, "d", MATCH_FRCSR, MASK_FRCSR, match_opcode, INSN_ALIAS },
+{"frsr", 0, INSN_CLASS_F, "d", MATCH_FRCSR, MASK_FRCSR, match_opcode, INSN_ALIAS },
+{"fscsr", 0, INSN_CLASS_F, "s", MATCH_FSCSR, MASK_FSCSR | MASK_RD, match_opcode, INSN_ALIAS },
+{"fscsr", 0, INSN_CLASS_F, "d,s", MATCH_FSCSR, MASK_FSCSR, match_opcode, INSN_ALIAS },
+{"fssr", 0, INSN_CLASS_F, "s", MATCH_FSCSR, MASK_FSCSR | MASK_RD, match_opcode, INSN_ALIAS },
+{"fssr", 0, INSN_CLASS_F, "d,s", MATCH_FSCSR, MASK_FSCSR, match_opcode, INSN_ALIAS },
+{"frrm", 0, INSN_CLASS_F, "d", MATCH_FRRM, MASK_FRRM, match_opcode, INSN_ALIAS },
+{"fsrm", 0, INSN_CLASS_F, "s", MATCH_FSRM, MASK_FSRM | MASK_RD, match_opcode, INSN_ALIAS },
+{"fsrm", 0, INSN_CLASS_F, "d,s", MATCH_FSRM, MASK_FSRM, match_opcode, INSN_ALIAS },
+{"fsrmi", 0, INSN_CLASS_F, "d,Z", MATCH_FSRMI, MASK_FSRMI, match_opcode, INSN_ALIAS },
+{"fsrmi", 0, INSN_CLASS_F, "Z", MATCH_FSRMI, MASK_FSRMI | MASK_RD, match_opcode, INSN_ALIAS },
+{"frflags", 0, INSN_CLASS_F, "d", MATCH_FRFLAGS, MASK_FRFLAGS, match_opcode, INSN_ALIAS },
+{"fsflags", 0, INSN_CLASS_F, "s", MATCH_FSFLAGS, MASK_FSFLAGS | MASK_RD, match_opcode, INSN_ALIAS },
+{"fsflags", 0, INSN_CLASS_F, "d,s", MATCH_FSFLAGS, MASK_FSFLAGS, match_opcode, INSN_ALIAS },
+{"fsflagsi", 0, INSN_CLASS_F, "d,Z", MATCH_FSFLAGSI, MASK_FSFLAGSI, match_opcode, INSN_ALIAS },
+{"fsflagsi", 0, INSN_CLASS_F, "Z", MATCH_FSFLAGSI, MASK_FSFLAGSI | MASK_RD, match_opcode, INSN_ALIAS },
+{"flw", 32, INSN_CLASS_F_AND_C, "D,Cm(Cc)", MATCH_C_FLWSP, MASK_C_FLWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"flw", 32, INSN_CLASS_F_AND_C, "CD,Ck(Cs)", MATCH_C_FLW, MASK_C_FLW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"flw", 0, INSN_CLASS_F, "D,o(s)", MATCH_FLW, MASK_FLW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"flw", 0, INSN_CLASS_F, "D,A,s", 0, (int) M_FLW, match_never, INSN_MACRO },
+{"fsw", 32, INSN_CLASS_F_AND_C, "CT,CM(Cc)", MATCH_C_FSWSP, MASK_C_FSWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"fsw", 32, INSN_CLASS_F_AND_C, "CD,Ck(Cs)", MATCH_C_FSW, MASK_C_FSW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
+{"fsw", 0, INSN_CLASS_F, "T,q(s)", MATCH_FSW, MASK_FSW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"fsw", 0, INSN_CLASS_F, "T,A,s", 0, (int) M_FSW, match_never, INSN_MACRO },
+
+{"fmv.x.w", 0, INSN_CLASS_F, "d,S", MATCH_FMV_X_S, MASK_FMV_X_S, match_opcode, 0 },
+{"fmv.w.x", 0, INSN_CLASS_F, "D,s", MATCH_FMV_S_X, MASK_FMV_S_X, match_opcode, 0 },
+
+{"fmv.x.s", 0, INSN_CLASS_F, "d,S", MATCH_FMV_X_S, MASK_FMV_X_S, match_opcode, 0 },
+{"fmv.s.x", 0, INSN_CLASS_F, "D,s", MATCH_FMV_S_X, MASK_FMV_S_X, match_opcode, 0 },
+
+{"fmv.s", 0, INSN_CLASS_F, "D,U", MATCH_FSGNJ_S, MASK_FSGNJ_S, match_rs1_eq_rs2, INSN_ALIAS },
+{"fneg.s", 0, INSN_CLASS_F, "D,U", MATCH_FSGNJN_S, MASK_FSGNJN_S, match_rs1_eq_rs2, INSN_ALIAS },
+{"fabs.s", 0, INSN_CLASS_F, "D,U", MATCH_FSGNJX_S, MASK_FSGNJX_S, match_rs1_eq_rs2, INSN_ALIAS },
+{"fsgnj.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FSGNJ_S, MASK_FSGNJ_S, match_opcode, 0 },
+{"fsgnjn.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FSGNJN_S, MASK_FSGNJN_S, match_opcode, 0 },
+{"fsgnjx.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FSGNJX_S, MASK_FSGNJX_S, match_opcode, 0 },
+{"fadd.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FADD_S | MASK_RM, MASK_FADD_S | MASK_RM, match_opcode, 0 },
+{"fadd.s", 0, INSN_CLASS_F, "D,S,T,m", MATCH_FADD_S, MASK_FADD_S, match_opcode, 0 },
+{"fsub.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FSUB_S | MASK_RM, MASK_FSUB_S | MASK_RM, match_opcode, 0 },
+{"fsub.s", 0, INSN_CLASS_F, "D,S,T,m", MATCH_FSUB_S, MASK_FSUB_S, match_opcode, 0 },
+{"fmul.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FMUL_S | MASK_RM, MASK_FMUL_S | MASK_RM, match_opcode, 0 },
+{"fmul.s", 0, INSN_CLASS_F, "D,S,T,m", MATCH_FMUL_S, MASK_FMUL_S, match_opcode, 0 },
+{"fdiv.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FDIV_S | MASK_RM, MASK_FDIV_S | MASK_RM, match_opcode, 0 },
+{"fdiv.s", 0, INSN_CLASS_F, "D,S,T,m", MATCH_FDIV_S, MASK_FDIV_S, match_opcode, 0 },
+{"fsqrt.s", 0, INSN_CLASS_F, "D,S", MATCH_FSQRT_S | MASK_RM, MASK_FSQRT_S | MASK_RM, match_opcode, 0 },
+{"fsqrt.s", 0, INSN_CLASS_F, "D,S,m", MATCH_FSQRT_S, MASK_FSQRT_S, match_opcode, 0 },
+{"fmin.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FMIN_S, MASK_FMIN_S, match_opcode, 0 },
+{"fmax.s", 0, INSN_CLASS_F, "D,S,T", MATCH_FMAX_S, MASK_FMAX_S, match_opcode, 0 },
+{"fmadd.s", 0, INSN_CLASS_F, "D,S,T,R", MATCH_FMADD_S | MASK_RM, MASK_FMADD_S | MASK_RM, match_opcode, 0 },
+{"fmadd.s", 0, INSN_CLASS_F, "D,S,T,R,m", MATCH_FMADD_S, MASK_FMADD_S, match_opcode, 0 },
+{"fnmadd.s", 0, INSN_CLASS_F, "D,S,T,R", MATCH_FNMADD_S | MASK_RM, MASK_FNMADD_S | MASK_RM, match_opcode, 0 },
+{"fnmadd.s", 0, INSN_CLASS_F, "D,S,T,R,m", MATCH_FNMADD_S, MASK_FNMADD_S, match_opcode, 0 },
+{"fmsub.s", 0, INSN_CLASS_F, "D,S,T,R", MATCH_FMSUB_S | MASK_RM, MASK_FMSUB_S | MASK_RM, match_opcode, 0 },
+{"fmsub.s", 0, INSN_CLASS_F, "D,S,T,R,m", MATCH_FMSUB_S, MASK_FMSUB_S, match_opcode, 0 },
+{"fnmsub.s", 0, INSN_CLASS_F, "D,S,T,R", MATCH_FNMSUB_S | MASK_RM, MASK_FNMSUB_S | MASK_RM, match_opcode, 0 },
+{"fnmsub.s", 0, INSN_CLASS_F, "D,S,T,R,m", MATCH_FNMSUB_S, MASK_FNMSUB_S, match_opcode, 0 },
+{"fcvt.w.s", 0, INSN_CLASS_F, "d,S", MATCH_FCVT_W_S | MASK_RM, MASK_FCVT_W_S | MASK_RM, match_opcode, 0 },
+{"fcvt.w.s", 0, INSN_CLASS_F, "d,S,m", MATCH_FCVT_W_S, MASK_FCVT_W_S, match_opcode, 0 },
+{"fcvt.wu.s", 0, INSN_CLASS_F, "d,S", MATCH_FCVT_WU_S | MASK_RM, MASK_FCVT_WU_S | MASK_RM, match_opcode, 0 },
+{"fcvt.wu.s", 0, INSN_CLASS_F, "d,S,m", MATCH_FCVT_WU_S, MASK_FCVT_WU_S, match_opcode, 0 },
+{"fcvt.s.w", 0, INSN_CLASS_F, "D,s", MATCH_FCVT_S_W | MASK_RM, MASK_FCVT_S_W | MASK_RM, match_opcode, 0 },
+{"fcvt.s.w", 0, INSN_CLASS_F, "D,s,m", MATCH_FCVT_S_W, MASK_FCVT_S_W, match_opcode, 0 },
+{"fcvt.s.wu", 0, INSN_CLASS_F, "D,s", MATCH_FCVT_S_WU | MASK_RM, MASK_FCVT_S_W | MASK_RM, match_opcode, 0 },
+{"fcvt.s.wu", 0, INSN_CLASS_F, "D,s,m", MATCH_FCVT_S_WU, MASK_FCVT_S_WU, match_opcode, 0 },
+{"fclass.s", 0, INSN_CLASS_F, "d,S", MATCH_FCLASS_S, MASK_FCLASS_S, match_opcode, 0 },
+{"feq.s", 0, INSN_CLASS_F, "d,S,T", MATCH_FEQ_S, MASK_FEQ_S, match_opcode, 0 },
+{"flt.s", 0, INSN_CLASS_F, "d,S,T", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
+{"fle.s", 0, INSN_CLASS_F, "d,S,T", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
+{"fgt.s", 0, INSN_CLASS_F, "d,T,S", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
+{"fge.s", 0, INSN_CLASS_F, "d,T,S", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
+{"fcvt.l.s", 64, INSN_CLASS_F, "d,S", MATCH_FCVT_L_S | MASK_RM, MASK_FCVT_L_S | MASK_RM, match_opcode, 0 },
+{"fcvt.l.s", 64, INSN_CLASS_F, "d,S,m", MATCH_FCVT_L_S, MASK_FCVT_L_S, match_opcode, 0 },
+{"fcvt.lu.s", 64, INSN_CLASS_F, "d,S", MATCH_FCVT_LU_S | MASK_RM, MASK_FCVT_LU_S | MASK_RM, match_opcode, 0 },
+{"fcvt.lu.s", 64, INSN_CLASS_F, "d,S,m", MATCH_FCVT_LU_S, MASK_FCVT_LU_S, match_opcode, 0 },
+{"fcvt.s.l", 64, INSN_CLASS_F, "D,s", MATCH_FCVT_S_L | MASK_RM, MASK_FCVT_S_L | MASK_RM, match_opcode, 0 },
+{"fcvt.s.l", 64, INSN_CLASS_F, "D,s,m", MATCH_FCVT_S_L, MASK_FCVT_S_L, match_opcode, 0 },
+{"fcvt.s.lu", 64, INSN_CLASS_F, "D,s", MATCH_FCVT_S_LU | MASK_RM, MASK_FCVT_S_L | MASK_RM, match_opcode, 0 },
+{"fcvt.s.lu", 64, INSN_CLASS_F, "D,s,m", MATCH_FCVT_S_LU, MASK_FCVT_S_LU, match_opcode, 0 },
/* Double-precision floating-point instruction subset */
-{"fld", 0, {"D", "C", 0}, "D,Cn(Cc)", MATCH_C_FLDSP, MASK_C_FLDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"fld", 0, {"D", "C", 0}, "CD,Cl(Cs)", MATCH_C_FLD, MASK_C_FLD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"fld", 0, {"D", 0}, "D,o(s)", MATCH_FLD, MASK_FLD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"fld", 0, {"D", 0}, "D,A,s", 0, (int) M_FLD, match_never, INSN_MACRO },
-{"fsd", 0, {"D", "C", 0}, "CT,CN(Cc)", MATCH_C_FSDSP, MASK_C_FSDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"fsd", 0, {"D", "C", 0}, "CD,Cl(Cs)", MATCH_C_FSD, MASK_C_FSD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
-{"fsd", 0, {"D", 0}, "T,q(s)", MATCH_FSD, MASK_FSD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"fsd", 0, {"D", 0}, "T,A,s", 0, (int) M_FSD, match_never, INSN_MACRO },
-{"fmv.d", 0, {"D", 0}, "D,U", MATCH_FSGNJ_D, MASK_FSGNJ_D, match_rs1_eq_rs2, INSN_ALIAS },
-{"fneg.d", 0, {"D", 0}, "D,U", MATCH_FSGNJN_D, MASK_FSGNJN_D, match_rs1_eq_rs2, INSN_ALIAS },
-{"fabs.d", 0, {"D", 0}, "D,U", MATCH_FSGNJX_D, MASK_FSGNJX_D, match_rs1_eq_rs2, INSN_ALIAS },
-{"fsgnj.d", 0, {"D", 0}, "D,S,T", MATCH_FSGNJ_D, MASK_FSGNJ_D, match_opcode, 0 },
-{"fsgnjn.d", 0, {"D", 0}, "D,S,T", MATCH_FSGNJN_D, MASK_FSGNJN_D, match_opcode, 0 },
-{"fsgnjx.d", 0, {"D", 0}, "D,S,T", MATCH_FSGNJX_D, MASK_FSGNJX_D, match_opcode, 0 },
-{"fadd.d", 0, {"D", 0}, "D,S,T", MATCH_FADD_D | MASK_RM, MASK_FADD_D | MASK_RM, match_opcode, 0 },
-{"fadd.d", 0, {"D", 0}, "D,S,T,m", MATCH_FADD_D, MASK_FADD_D, match_opcode, 0 },
-{"fsub.d", 0, {"D", 0}, "D,S,T", MATCH_FSUB_D | MASK_RM, MASK_FSUB_D | MASK_RM, match_opcode, 0 },
-{"fsub.d", 0, {"D", 0}, "D,S,T,m", MATCH_FSUB_D, MASK_FSUB_D, match_opcode, 0 },
-{"fmul.d", 0, {"D", 0}, "D,S,T", MATCH_FMUL_D | MASK_RM, MASK_FMUL_D | MASK_RM, match_opcode, 0 },
-{"fmul.d", 0, {"D", 0}, "D,S,T,m", MATCH_FMUL_D, MASK_FMUL_D, match_opcode, 0 },
-{"fdiv.d", 0, {"D", 0}, "D,S,T", MATCH_FDIV_D | MASK_RM, MASK_FDIV_D | MASK_RM, match_opcode, 0 },
-{"fdiv.d", 0, {"D", 0}, "D,S,T,m", MATCH_FDIV_D, MASK_FDIV_D, match_opcode, 0 },
-{"fsqrt.d", 0, {"D", 0}, "D,S", MATCH_FSQRT_D | MASK_RM, MASK_FSQRT_D | MASK_RM, match_opcode, 0 },
-{"fsqrt.d", 0, {"D", 0}, "D,S,m", MATCH_FSQRT_D, MASK_FSQRT_D, match_opcode, 0 },
-{"fmin.d", 0, {"D", 0}, "D,S,T", MATCH_FMIN_D, MASK_FMIN_D, match_opcode, 0 },
-{"fmax.d", 0, {"D", 0}, "D,S,T", MATCH_FMAX_D, MASK_FMAX_D, match_opcode, 0 },
-{"fmadd.d", 0, {"D", 0}, "D,S,T,R", MATCH_FMADD_D | MASK_RM, MASK_FMADD_D | MASK_RM, match_opcode, 0 },
-{"fmadd.d", 0, {"D", 0}, "D,S,T,R,m", MATCH_FMADD_D, MASK_FMADD_D, match_opcode, 0 },
-{"fnmadd.d", 0, {"D", 0}, "D,S,T,R", MATCH_FNMADD_D | MASK_RM, MASK_FNMADD_D | MASK_RM, match_opcode, 0 },
-{"fnmadd.d", 0, {"D", 0}, "D,S,T,R,m", MATCH_FNMADD_D, MASK_FNMADD_D, match_opcode, 0 },
-{"fmsub.d", 0, {"D", 0}, "D,S,T,R", MATCH_FMSUB_D | MASK_RM, MASK_FMSUB_D | MASK_RM, match_opcode, 0 },
-{"fmsub.d", 0, {"D", 0}, "D,S,T,R,m", MATCH_FMSUB_D, MASK_FMSUB_D, match_opcode, 0 },
-{"fnmsub.d", 0, {"D", 0}, "D,S,T,R", MATCH_FNMSUB_D | MASK_RM, MASK_FNMSUB_D | MASK_RM, match_opcode, 0 },
-{"fnmsub.d", 0, {"D", 0}, "D,S,T,R,m", MATCH_FNMSUB_D, MASK_FNMSUB_D, match_opcode, 0 },
-{"fcvt.w.d", 0, {"D", 0}, "d,S", MATCH_FCVT_W_D | MASK_RM, MASK_FCVT_W_D | MASK_RM, match_opcode, 0 },
-{"fcvt.w.d", 0, {"D", 0}, "d,S,m", MATCH_FCVT_W_D, MASK_FCVT_W_D, match_opcode, 0 },
-{"fcvt.wu.d", 0, {"D", 0}, "d,S", MATCH_FCVT_WU_D | MASK_RM, MASK_FCVT_WU_D | MASK_RM, match_opcode, 0 },
-{"fcvt.wu.d", 0, {"D", 0}, "d,S,m", MATCH_FCVT_WU_D, MASK_FCVT_WU_D, match_opcode, 0 },
-{"fcvt.d.w", 0, {"D", 0}, "D,s", MATCH_FCVT_D_W, MASK_FCVT_D_W | MASK_RM, match_opcode, 0 },
-{"fcvt.d.wu", 0, {"D", 0}, "D,s", MATCH_FCVT_D_WU, MASK_FCVT_D_WU | MASK_RM, match_opcode, 0 },
-{"fcvt.d.s", 0, {"D", 0}, "D,S", MATCH_FCVT_D_S, MASK_FCVT_D_S | MASK_RM, match_opcode, 0 },
-{"fcvt.s.d", 0, {"D", 0}, "D,S", MATCH_FCVT_S_D | MASK_RM, MASK_FCVT_S_D | MASK_RM, match_opcode, 0 },
-{"fcvt.s.d", 0, {"D", 0}, "D,S,m", MATCH_FCVT_S_D, MASK_FCVT_S_D, match_opcode, 0 },
-{"fclass.d", 0, {"D", 0}, "d,S", MATCH_FCLASS_D, MASK_FCLASS_D, match_opcode, 0 },
-{"feq.d", 0, {"D", 0}, "d,S,T", MATCH_FEQ_D, MASK_FEQ_D, match_opcode, 0 },
-{"flt.d", 0, {"D", 0}, "d,S,T", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
-{"fle.d", 0, {"D", 0}, "d,S,T", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
-{"fgt.d", 0, {"D", 0}, "d,T,S", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
-{"fge.d", 0, {"D", 0}, "d,T,S", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
-{"fmv.x.d", 64, {"D", 0}, "d,S", MATCH_FMV_X_D, MASK_FMV_X_D, match_opcode, 0 },
-{"fmv.d.x", 64, {"D", 0}, "D,s", MATCH_FMV_D_X, MASK_FMV_D_X, match_opcode, 0 },
-{"fcvt.l.d", 64, {"D", 0}, "d,S", MATCH_FCVT_L_D | MASK_RM, MASK_FCVT_L_D | MASK_RM, match_opcode, 0 },
-{"fcvt.l.d", 64, {"D", 0}, "d,S,m", MATCH_FCVT_L_D, MASK_FCVT_L_D, match_opcode, 0 },
-{"fcvt.lu.d", 64, {"D", 0}, "d,S", MATCH_FCVT_LU_D | MASK_RM, MASK_FCVT_LU_D | MASK_RM, match_opcode, 0 },
-{"fcvt.lu.d", 64, {"D", 0}, "d,S,m", MATCH_FCVT_LU_D, MASK_FCVT_LU_D, match_opcode, 0 },
-{"fcvt.d.l", 64, {"D", 0}, "D,s", MATCH_FCVT_D_L | MASK_RM, MASK_FCVT_D_L | MASK_RM, match_opcode, 0 },
-{"fcvt.d.l", 64, {"D", 0}, "D,s,m", MATCH_FCVT_D_L, MASK_FCVT_D_L, match_opcode, 0 },
-{"fcvt.d.lu", 64, {"D", 0}, "D,s", MATCH_FCVT_D_LU | MASK_RM, MASK_FCVT_D_L | MASK_RM, match_opcode, 0 },
-{"fcvt.d.lu", 64, {"D", 0}, "D,s,m", MATCH_FCVT_D_LU, MASK_FCVT_D_LU, match_opcode, 0 },
+{"fld", 0, INSN_CLASS_D_AND_C, "D,Cn(Cc)", MATCH_C_FLDSP, MASK_C_FLDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"fld", 0, INSN_CLASS_D_AND_C, "CD,Cl(Cs)", MATCH_C_FLD, MASK_C_FLD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"fld", 0, INSN_CLASS_D, "D,o(s)", MATCH_FLD, MASK_FLD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"fld", 0, INSN_CLASS_D, "D,A,s", 0, (int) M_FLD, match_never, INSN_MACRO },
+{"fsd", 0, INSN_CLASS_D_AND_C, "CT,CN(Cc)", MATCH_C_FSDSP, MASK_C_FSDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"fsd", 0, INSN_CLASS_D_AND_C, "CD,Cl(Cs)", MATCH_C_FSD, MASK_C_FSD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"fsd", 0, INSN_CLASS_D, "T,q(s)", MATCH_FSD, MASK_FSD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"fsd", 0, INSN_CLASS_D, "T,A,s", 0, (int) M_FSD, match_never, INSN_MACRO },
+{"fmv.d", 0, INSN_CLASS_D, "D,U", MATCH_FSGNJ_D, MASK_FSGNJ_D, match_rs1_eq_rs2, INSN_ALIAS },
+{"fneg.d", 0, INSN_CLASS_D, "D,U", MATCH_FSGNJN_D, MASK_FSGNJN_D, match_rs1_eq_rs2, INSN_ALIAS },
+{"fabs.d", 0, INSN_CLASS_D, "D,U", MATCH_FSGNJX_D, MASK_FSGNJX_D, match_rs1_eq_rs2, INSN_ALIAS },
+{"fsgnj.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FSGNJ_D, MASK_FSGNJ_D, match_opcode, 0 },
+{"fsgnjn.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FSGNJN_D, MASK_FSGNJN_D, match_opcode, 0 },
+{"fsgnjx.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FSGNJX_D, MASK_FSGNJX_D, match_opcode, 0 },
+{"fadd.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FADD_D | MASK_RM, MASK_FADD_D | MASK_RM, match_opcode, 0 },
+{"fadd.d", 0, INSN_CLASS_D, "D,S,T,m", MATCH_FADD_D, MASK_FADD_D, match_opcode, 0 },
+{"fsub.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FSUB_D | MASK_RM, MASK_FSUB_D | MASK_RM, match_opcode, 0 },
+{"fsub.d", 0, INSN_CLASS_D, "D,S,T,m", MATCH_FSUB_D, MASK_FSUB_D, match_opcode, 0 },
+{"fmul.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FMUL_D | MASK_RM, MASK_FMUL_D | MASK_RM, match_opcode, 0 },
+{"fmul.d", 0, INSN_CLASS_D, "D,S,T,m", MATCH_FMUL_D, MASK_FMUL_D, match_opcode, 0 },
+{"fdiv.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FDIV_D | MASK_RM, MASK_FDIV_D | MASK_RM, match_opcode, 0 },
+{"fdiv.d", 0, INSN_CLASS_D, "D,S,T,m", MATCH_FDIV_D, MASK_FDIV_D, match_opcode, 0 },
+{"fsqrt.d", 0, INSN_CLASS_D, "D,S", MATCH_FSQRT_D | MASK_RM, MASK_FSQRT_D | MASK_RM, match_opcode, 0 },
+{"fsqrt.d", 0, INSN_CLASS_D, "D,S,m", MATCH_FSQRT_D, MASK_FSQRT_D, match_opcode, 0 },
+{"fmin.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FMIN_D, MASK_FMIN_D, match_opcode, 0 },
+{"fmax.d", 0, INSN_CLASS_D, "D,S,T", MATCH_FMAX_D, MASK_FMAX_D, match_opcode, 0 },
+{"fmadd.d", 0, INSN_CLASS_D, "D,S,T,R", MATCH_FMADD_D | MASK_RM, MASK_FMADD_D | MASK_RM, match_opcode, 0 },
+{"fmadd.d", 0, INSN_CLASS_D, "D,S,T,R,m", MATCH_FMADD_D, MASK_FMADD_D, match_opcode, 0 },
+{"fnmadd.d", 0, INSN_CLASS_D, "D,S,T,R", MATCH_FNMADD_D | MASK_RM, MASK_FNMADD_D | MASK_RM, match_opcode, 0 },
+{"fnmadd.d", 0, INSN_CLASS_D, "D,S,T,R,m", MATCH_FNMADD_D, MASK_FNMADD_D, match_opcode, 0 },
+{"fmsub.d", 0, INSN_CLASS_D, "D,S,T,R", MATCH_FMSUB_D | MASK_RM, MASK_FMSUB_D | MASK_RM, match_opcode, 0 },
+{"fmsub.d", 0, INSN_CLASS_D, "D,S,T,R,m", MATCH_FMSUB_D, MASK_FMSUB_D, match_opcode, 0 },
+{"fnmsub.d", 0, INSN_CLASS_D, "D,S,T,R", MATCH_FNMSUB_D | MASK_RM, MASK_FNMSUB_D | MASK_RM, match_opcode, 0 },
+{"fnmsub.d", 0, INSN_CLASS_D, "D,S,T,R,m", MATCH_FNMSUB_D, MASK_FNMSUB_D, match_opcode, 0 },
+{"fcvt.w.d", 0, INSN_CLASS_D, "d,S", MATCH_FCVT_W_D | MASK_RM, MASK_FCVT_W_D | MASK_RM, match_opcode, 0 },
+{"fcvt.w.d", 0, INSN_CLASS_D, "d,S,m", MATCH_FCVT_W_D, MASK_FCVT_W_D, match_opcode, 0 },
+{"fcvt.wu.d", 0, INSN_CLASS_D, "d,S", MATCH_FCVT_WU_D | MASK_RM, MASK_FCVT_WU_D | MASK_RM, match_opcode, 0 },
+{"fcvt.wu.d", 0, INSN_CLASS_D, "d,S,m", MATCH_FCVT_WU_D, MASK_FCVT_WU_D, match_opcode, 0 },
+{"fcvt.d.w", 0, INSN_CLASS_D, "D,s", MATCH_FCVT_D_W, MASK_FCVT_D_W | MASK_RM, match_opcode, 0 },
+{"fcvt.d.wu", 0, INSN_CLASS_D, "D,s", MATCH_FCVT_D_WU, MASK_FCVT_D_WU | MASK_RM, match_opcode, 0 },
+{"fcvt.d.s", 0, INSN_CLASS_D, "D,S", MATCH_FCVT_D_S, MASK_FCVT_D_S | MASK_RM, match_opcode, 0 },
+{"fcvt.s.d", 0, INSN_CLASS_D, "D,S", MATCH_FCVT_S_D | MASK_RM, MASK_FCVT_S_D | MASK_RM, match_opcode, 0 },
+{"fcvt.s.d", 0, INSN_CLASS_D, "D,S,m", MATCH_FCVT_S_D, MASK_FCVT_S_D, match_opcode, 0 },
+{"fclass.d", 0, INSN_CLASS_D, "d,S", MATCH_FCLASS_D, MASK_FCLASS_D, match_opcode, 0 },
+{"feq.d", 0, INSN_CLASS_D, "d,S,T", MATCH_FEQ_D, MASK_FEQ_D, match_opcode, 0 },
+{"flt.d", 0, INSN_CLASS_D, "d,S,T", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
+{"fle.d", 0, INSN_CLASS_D, "d,S,T", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
+{"fgt.d", 0, INSN_CLASS_D, "d,T,S", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
+{"fge.d", 0, INSN_CLASS_D, "d,T,S", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
+{"fmv.x.d", 64, INSN_CLASS_D, "d,S", MATCH_FMV_X_D, MASK_FMV_X_D, match_opcode, 0 },
+{"fmv.d.x", 64, INSN_CLASS_D, "D,s", MATCH_FMV_D_X, MASK_FMV_D_X, match_opcode, 0 },
+{"fcvt.l.d", 64, INSN_CLASS_D, "d,S", MATCH_FCVT_L_D | MASK_RM, MASK_FCVT_L_D | MASK_RM, match_opcode, 0 },
+{"fcvt.l.d", 64, INSN_CLASS_D, "d,S,m", MATCH_FCVT_L_D, MASK_FCVT_L_D, match_opcode, 0 },
+{"fcvt.lu.d", 64, INSN_CLASS_D, "d,S", MATCH_FCVT_LU_D | MASK_RM, MASK_FCVT_LU_D | MASK_RM, match_opcode, 0 },
+{"fcvt.lu.d", 64, INSN_CLASS_D, "d,S,m", MATCH_FCVT_LU_D, MASK_FCVT_LU_D, match_opcode, 0 },
+{"fcvt.d.l", 64, INSN_CLASS_D, "D,s", MATCH_FCVT_D_L | MASK_RM, MASK_FCVT_D_L | MASK_RM, match_opcode, 0 },
+{"fcvt.d.l", 64, INSN_CLASS_D, "D,s,m", MATCH_FCVT_D_L, MASK_FCVT_D_L, match_opcode, 0 },
+{"fcvt.d.lu", 64, INSN_CLASS_D, "D,s", MATCH_FCVT_D_LU | MASK_RM, MASK_FCVT_D_L | MASK_RM, match_opcode, 0 },
+{"fcvt.d.lu", 64, INSN_CLASS_D, "D,s,m", MATCH_FCVT_D_LU, MASK_FCVT_D_LU, match_opcode, 0 },
/* Quad-precision floating-point instruction subset */
-{"flq", 0, {"Q", 0}, "D,o(s)", MATCH_FLQ, MASK_FLQ, match_opcode, INSN_DREF|INSN_16_BYTE },
-{"flq", 0, {"Q", 0}, "D,A,s", 0, (int) M_FLQ, match_never, INSN_MACRO },
-{"fsq", 0, {"Q", 0}, "T,q(s)", MATCH_FSQ, MASK_FSQ, match_opcode, INSN_DREF|INSN_16_BYTE },
-{"fsq", 0, {"Q", 0}, "T,A,s", 0, (int) M_FSQ, match_never, INSN_MACRO },
-{"fmv.q", 0, {"Q", 0}, "D,U", MATCH_FSGNJ_Q, MASK_FSGNJ_Q, match_rs1_eq_rs2, INSN_ALIAS },
-{"fneg.q", 0, {"Q", 0}, "D,U", MATCH_FSGNJN_Q, MASK_FSGNJN_Q, match_rs1_eq_rs2, INSN_ALIAS },
-{"fabs.q", 0, {"Q", 0}, "D,U", MATCH_FSGNJX_Q, MASK_FSGNJX_Q, match_rs1_eq_rs2, INSN_ALIAS },
-{"fsgnj.q", 0, {"Q", 0}, "D,S,T", MATCH_FSGNJ_Q, MASK_FSGNJ_Q, match_opcode, 0 },
-{"fsgnjn.q", 0, {"Q", 0}, "D,S,T", MATCH_FSGNJN_Q, MASK_FSGNJN_Q, match_opcode, 0 },
-{"fsgnjx.q", 0, {"Q", 0}, "D,S,T", MATCH_FSGNJX_Q, MASK_FSGNJX_Q, match_opcode, 0 },
-{"fadd.q", 0, {"Q", 0}, "D,S,T", MATCH_FADD_Q | MASK_RM, MASK_FADD_Q | MASK_RM, match_opcode, 0 },
-{"fadd.q", 0, {"Q", 0}, "D,S,T,m", MATCH_FADD_Q, MASK_FADD_Q, match_opcode, 0 },
-{"fsub.q", 0, {"Q", 0}, "D,S,T", MATCH_FSUB_Q | MASK_RM, MASK_FSUB_Q | MASK_RM, match_opcode, 0 },
-{"fsub.q", 0, {"Q", 0}, "D,S,T,m", MATCH_FSUB_Q, MASK_FSUB_Q, match_opcode, 0 },
-{"fmul.q", 0, {"Q", 0}, "D,S,T", MATCH_FMUL_Q | MASK_RM, MASK_FMUL_Q | MASK_RM, match_opcode, 0 },
-{"fmul.q", 0, {"Q", 0}, "D,S,T,m", MATCH_FMUL_Q, MASK_FMUL_Q, match_opcode, 0 },
-{"fdiv.q", 0, {"Q", 0}, "D,S,T", MATCH_FDIV_Q | MASK_RM, MASK_FDIV_Q | MASK_RM, match_opcode, 0 },
-{"fdiv.q", 0, {"Q", 0}, "D,S,T,m", MATCH_FDIV_Q, MASK_FDIV_Q, match_opcode, 0 },
-{"fsqrt.q", 0, {"Q", 0}, "D,S", MATCH_FSQRT_Q | MASK_RM, MASK_FSQRT_Q | MASK_RM, match_opcode, 0 },
-{"fsqrt.q", 0, {"Q", 0}, "D,S,m", MATCH_FSQRT_Q, MASK_FSQRT_Q, match_opcode, 0 },
-{"fmin.q", 0, {"Q", 0}, "D,S,T", MATCH_FMIN_Q, MASK_FMIN_Q, match_opcode, 0 },
-{"fmax.q", 0, {"Q", 0}, "D,S,T", MATCH_FMAX_Q, MASK_FMAX_Q, match_opcode, 0 },
-{"fmadd.q", 0, {"Q", 0}, "D,S,T,R", MATCH_FMADD_Q | MASK_RM, MASK_FMADD_Q | MASK_RM, match_opcode, 0 },
-{"fmadd.q", 0, {"Q", 0}, "D,S,T,R,m", MATCH_FMADD_Q, MASK_FMADD_Q, match_opcode, 0 },
-{"fnmadd.q", 0, {"Q", 0}, "D,S,T,R", MATCH_FNMADD_Q | MASK_RM, MASK_FNMADD_Q | MASK_RM, match_opcode, 0 },
-{"fnmadd.q", 0, {"Q", 0}, "D,S,T,R,m", MATCH_FNMADD_Q, MASK_FNMADD_Q, match_opcode, 0 },
-{"fmsub.q", 0, {"Q", 0}, "D,S,T,R", MATCH_FMSUB_Q | MASK_RM, MASK_FMSUB_Q | MASK_RM, match_opcode, 0 },
-{"fmsub.q", 0, {"Q", 0}, "D,S,T,R,m", MATCH_FMSUB_Q, MASK_FMSUB_Q, match_opcode, 0 },
-{"fnmsub.q", 0, {"Q", 0}, "D,S,T,R", MATCH_FNMSUB_Q | MASK_RM, MASK_FNMSUB_Q | MASK_RM, match_opcode, 0 },
-{"fnmsub.q", 0, {"Q", 0}, "D,S,T,R,m", MATCH_FNMSUB_Q, MASK_FNMSUB_Q, match_opcode, 0 },
-{"fcvt.w.q", 0, {"Q", 0}, "d,S", MATCH_FCVT_W_Q | MASK_RM, MASK_FCVT_W_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.w.q", 0, {"Q", 0}, "d,S,m", MATCH_FCVT_W_Q, MASK_FCVT_W_Q, match_opcode, 0 },
-{"fcvt.wu.q", 0, {"Q", 0}, "d,S", MATCH_FCVT_WU_Q | MASK_RM, MASK_FCVT_WU_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.wu.q", 0, {"Q", 0}, "d,S,m", MATCH_FCVT_WU_Q, MASK_FCVT_WU_Q, match_opcode, 0 },
-{"fcvt.q.w", 0, {"Q", 0}, "D,s", MATCH_FCVT_Q_W, MASK_FCVT_Q_W | MASK_RM, match_opcode, 0 },
-{"fcvt.q.wu", 0, {"Q", 0}, "D,s", MATCH_FCVT_Q_WU, MASK_FCVT_Q_WU | MASK_RM, match_opcode, 0 },
-{"fcvt.q.s", 0, {"Q", 0}, "D,S", MATCH_FCVT_Q_S, MASK_FCVT_Q_S | MASK_RM, match_opcode, 0 },
-{"fcvt.q.d", 0, {"Q", 0}, "D,S", MATCH_FCVT_Q_D, MASK_FCVT_Q_D | MASK_RM, match_opcode, 0 },
-{"fcvt.s.q", 0, {"Q", 0}, "D,S", MATCH_FCVT_S_Q | MASK_RM, MASK_FCVT_S_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.s.q", 0, {"Q", 0}, "D,S,m", MATCH_FCVT_S_Q, MASK_FCVT_S_Q, match_opcode, 0 },
-{"fcvt.d.q", 0, {"Q", 0}, "D,S", MATCH_FCVT_D_Q | MASK_RM, MASK_FCVT_D_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.d.q", 0, {"Q", 0}, "D,S,m", MATCH_FCVT_D_Q, MASK_FCVT_D_Q, match_opcode, 0 },
-{"fclass.q", 0, {"Q", 0}, "d,S", MATCH_FCLASS_Q, MASK_FCLASS_Q, match_opcode, 0 },
-{"feq.q", 0, {"Q", 0}, "d,S,T", MATCH_FEQ_Q, MASK_FEQ_Q, match_opcode, 0 },
-{"flt.q", 0, {"Q", 0}, "d,S,T", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
-{"fle.q", 0, {"Q", 0}, "d,S,T", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
-{"fgt.q", 0, {"Q", 0}, "d,T,S", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
-{"fge.q", 0, {"Q", 0}, "d,T,S", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
-{"fmv.x.q", 64, {"Q", 0}, "d,S", MATCH_FMV_X_Q, MASK_FMV_X_Q, match_opcode, 0 },
-{"fmv.q.x", 64, {"Q", 0}, "D,s", MATCH_FMV_Q_X, MASK_FMV_Q_X, match_opcode, 0 },
-{"fcvt.l.q", 64, {"Q", 0}, "d,S", MATCH_FCVT_L_Q | MASK_RM, MASK_FCVT_L_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.l.q", 64, {"Q", 0}, "d,S,m", MATCH_FCVT_L_Q, MASK_FCVT_L_Q, match_opcode, 0 },
-{"fcvt.lu.q", 64, {"Q", 0}, "d,S", MATCH_FCVT_LU_Q | MASK_RM, MASK_FCVT_LU_Q | MASK_RM, match_opcode, 0 },
-{"fcvt.lu.q", 64, {"Q", 0}, "d,S,m", MATCH_FCVT_LU_Q, MASK_FCVT_LU_Q, match_opcode, 0 },
-{"fcvt.q.l", 64, {"Q", 0}, "D,s", MATCH_FCVT_Q_L | MASK_RM, MASK_FCVT_Q_L | MASK_RM, match_opcode, 0 },
-{"fcvt.q.l", 64, {"Q", 0}, "D,s,m", MATCH_FCVT_Q_L, MASK_FCVT_Q_L, match_opcode, 0 },
-{"fcvt.q.lu", 64, {"Q", 0}, "D,s", MATCH_FCVT_Q_LU | MASK_RM, MASK_FCVT_Q_L | MASK_RM, match_opcode, 0 },
-{"fcvt.q.lu", 64, {"Q", 0}, "D,s,m", MATCH_FCVT_Q_LU, MASK_FCVT_Q_LU, match_opcode, 0 },
+{"flq", 0, INSN_CLASS_Q, "D,o(s)", MATCH_FLQ, MASK_FLQ, match_opcode, INSN_DREF|INSN_16_BYTE },
+{"flq", 0, INSN_CLASS_Q, "D,A,s", 0, (int) M_FLQ, match_never, INSN_MACRO },
+{"fsq", 0, INSN_CLASS_Q, "T,q(s)", MATCH_FSQ, MASK_FSQ, match_opcode, INSN_DREF|INSN_16_BYTE },
+{"fsq", 0, INSN_CLASS_Q, "T,A,s", 0, (int) M_FSQ, match_never, INSN_MACRO },
+{"fmv.q", 0, INSN_CLASS_Q, "D,U", MATCH_FSGNJ_Q, MASK_FSGNJ_Q, match_rs1_eq_rs2, INSN_ALIAS },
+{"fneg.q", 0, INSN_CLASS_Q, "D,U", MATCH_FSGNJN_Q, MASK_FSGNJN_Q, match_rs1_eq_rs2, INSN_ALIAS },
+{"fabs.q", 0, INSN_CLASS_Q, "D,U", MATCH_FSGNJX_Q, MASK_FSGNJX_Q, match_rs1_eq_rs2, INSN_ALIAS },
+{"fsgnj.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FSGNJ_Q, MASK_FSGNJ_Q, match_opcode, 0 },
+{"fsgnjn.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FSGNJN_Q, MASK_FSGNJN_Q, match_opcode, 0 },
+{"fsgnjx.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FSGNJX_Q, MASK_FSGNJX_Q, match_opcode, 0 },
+{"fadd.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FADD_Q | MASK_RM, MASK_FADD_Q | MASK_RM, match_opcode, 0 },
+{"fadd.q", 0, INSN_CLASS_Q, "D,S,T,m", MATCH_FADD_Q, MASK_FADD_Q, match_opcode, 0 },
+{"fsub.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FSUB_Q | MASK_RM, MASK_FSUB_Q | MASK_RM, match_opcode, 0 },
+{"fsub.q", 0, INSN_CLASS_Q, "D,S,T,m", MATCH_FSUB_Q, MASK_FSUB_Q, match_opcode, 0 },
+{"fmul.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FMUL_Q | MASK_RM, MASK_FMUL_Q | MASK_RM, match_opcode, 0 },
+{"fmul.q", 0, INSN_CLASS_Q, "D,S,T,m", MATCH_FMUL_Q, MASK_FMUL_Q, match_opcode, 0 },
+{"fdiv.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FDIV_Q | MASK_RM, MASK_FDIV_Q | MASK_RM, match_opcode, 0 },
+{"fdiv.q", 0, INSN_CLASS_Q, "D,S,T,m", MATCH_FDIV_Q, MASK_FDIV_Q, match_opcode, 0 },
+{"fsqrt.q", 0, INSN_CLASS_Q, "D,S", MATCH_FSQRT_Q | MASK_RM, MASK_FSQRT_Q | MASK_RM, match_opcode, 0 },
+{"fsqrt.q", 0, INSN_CLASS_Q, "D,S,m", MATCH_FSQRT_Q, MASK_FSQRT_Q, match_opcode, 0 },
+{"fmin.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FMIN_Q, MASK_FMIN_Q, match_opcode, 0 },
+{"fmax.q", 0, INSN_CLASS_Q, "D,S,T", MATCH_FMAX_Q, MASK_FMAX_Q, match_opcode, 0 },
+{"fmadd.q", 0, INSN_CLASS_Q, "D,S,T,R", MATCH_FMADD_Q | MASK_RM, MASK_FMADD_Q | MASK_RM, match_opcode, 0 },
+{"fmadd.q", 0, INSN_CLASS_Q, "D,S,T,R,m", MATCH_FMADD_Q, MASK_FMADD_Q, match_opcode, 0 },
+{"fnmadd.q", 0, INSN_CLASS_Q, "D,S,T,R", MATCH_FNMADD_Q | MASK_RM, MASK_FNMADD_Q | MASK_RM, match_opcode, 0 },
+{"fnmadd.q", 0, INSN_CLASS_Q, "D,S,T,R,m", MATCH_FNMADD_Q, MASK_FNMADD_Q, match_opcode, 0 },
+{"fmsub.q", 0, INSN_CLASS_Q, "D,S,T,R", MATCH_FMSUB_Q | MASK_RM, MASK_FMSUB_Q | MASK_RM, match_opcode, 0 },
+{"fmsub.q", 0, INSN_CLASS_Q, "D,S,T,R,m", MATCH_FMSUB_Q, MASK_FMSUB_Q, match_opcode, 0 },
+{"fnmsub.q", 0, INSN_CLASS_Q, "D,S,T,R", MATCH_FNMSUB_Q | MASK_RM, MASK_FNMSUB_Q | MASK_RM, match_opcode, 0 },
+{"fnmsub.q", 0, INSN_CLASS_Q, "D,S,T,R,m", MATCH_FNMSUB_Q, MASK_FNMSUB_Q, match_opcode, 0 },
+{"fcvt.w.q", 0, INSN_CLASS_Q, "d,S", MATCH_FCVT_W_Q | MASK_RM, MASK_FCVT_W_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.w.q", 0, INSN_CLASS_Q, "d,S,m", MATCH_FCVT_W_Q, MASK_FCVT_W_Q, match_opcode, 0 },
+{"fcvt.wu.q", 0, INSN_CLASS_Q, "d,S", MATCH_FCVT_WU_Q | MASK_RM, MASK_FCVT_WU_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.wu.q", 0, INSN_CLASS_Q, "d,S,m", MATCH_FCVT_WU_Q, MASK_FCVT_WU_Q, match_opcode, 0 },
+{"fcvt.q.w", 0, INSN_CLASS_Q, "D,s", MATCH_FCVT_Q_W, MASK_FCVT_Q_W | MASK_RM, match_opcode, 0 },
+{"fcvt.q.wu", 0, INSN_CLASS_Q, "D,s", MATCH_FCVT_Q_WU, MASK_FCVT_Q_WU | MASK_RM, match_opcode, 0 },
+{"fcvt.q.s", 0, INSN_CLASS_Q, "D,S", MATCH_FCVT_Q_S, MASK_FCVT_Q_S | MASK_RM, match_opcode, 0 },
+{"fcvt.q.d", 0, INSN_CLASS_Q, "D,S", MATCH_FCVT_Q_D, MASK_FCVT_Q_D | MASK_RM, match_opcode, 0 },
+{"fcvt.s.q", 0, INSN_CLASS_Q, "D,S", MATCH_FCVT_S_Q | MASK_RM, MASK_FCVT_S_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.s.q", 0, INSN_CLASS_Q, "D,S,m", MATCH_FCVT_S_Q, MASK_FCVT_S_Q, match_opcode, 0 },
+{"fcvt.d.q", 0, INSN_CLASS_Q, "D,S", MATCH_FCVT_D_Q | MASK_RM, MASK_FCVT_D_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.d.q", 0, INSN_CLASS_Q, "D,S,m", MATCH_FCVT_D_Q, MASK_FCVT_D_Q, match_opcode, 0 },
+{"fclass.q", 0, INSN_CLASS_Q, "d,S", MATCH_FCLASS_Q, MASK_FCLASS_Q, match_opcode, 0 },
+{"feq.q", 0, INSN_CLASS_Q, "d,S,T", MATCH_FEQ_Q, MASK_FEQ_Q, match_opcode, 0 },
+{"flt.q", 0, INSN_CLASS_Q, "d,S,T", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
+{"fle.q", 0, INSN_CLASS_Q, "d,S,T", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
+{"fgt.q", 0, INSN_CLASS_Q, "d,T,S", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
+{"fge.q", 0, INSN_CLASS_Q, "d,T,S", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
+{"fmv.x.q", 64, INSN_CLASS_Q, "d,S", MATCH_FMV_X_Q, MASK_FMV_X_Q, match_opcode, 0 },
+{"fmv.q.x", 64, INSN_CLASS_Q, "D,s", MATCH_FMV_Q_X, MASK_FMV_Q_X, match_opcode, 0 },
+{"fcvt.l.q", 64, INSN_CLASS_Q, "d,S", MATCH_FCVT_L_Q | MASK_RM, MASK_FCVT_L_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.l.q", 64, INSN_CLASS_Q, "d,S,m", MATCH_FCVT_L_Q, MASK_FCVT_L_Q, match_opcode, 0 },
+{"fcvt.lu.q", 64, INSN_CLASS_Q, "d,S", MATCH_FCVT_LU_Q | MASK_RM, MASK_FCVT_LU_Q | MASK_RM, match_opcode, 0 },
+{"fcvt.lu.q", 64, INSN_CLASS_Q, "d,S,m", MATCH_FCVT_LU_Q, MASK_FCVT_LU_Q, match_opcode, 0 },
+{"fcvt.q.l", 64, INSN_CLASS_Q, "D,s", MATCH_FCVT_Q_L | MASK_RM, MASK_FCVT_Q_L | MASK_RM, match_opcode, 0 },
+{"fcvt.q.l", 64, INSN_CLASS_Q, "D,s,m", MATCH_FCVT_Q_L, MASK_FCVT_Q_L, match_opcode, 0 },
+{"fcvt.q.lu", 64, INSN_CLASS_Q, "D,s", MATCH_FCVT_Q_LU | MASK_RM, MASK_FCVT_Q_L | MASK_RM, match_opcode, 0 },
+{"fcvt.q.lu", 64, INSN_CLASS_Q, "D,s,m", MATCH_FCVT_Q_LU, MASK_FCVT_Q_LU, match_opcode, 0 },
/* Compressed instructions. */
-{"c.unimp", 0, {"C", 0}, "", 0, 0xffffU, match_opcode, 0 },
-{"c.ebreak", 0, {"C", 0}, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, 0 },
-{"c.jr", 0, {"C", 0}, "d", MATCH_C_JR, MASK_C_JR, match_rd_nonzero, INSN_BRANCH },
-{"c.jalr", 0, {"C", 0}, "d", MATCH_C_JALR, MASK_C_JALR, match_rd_nonzero, INSN_JSR },
-{"c.j", 0, {"C", 0}, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_BRANCH },
-{"c.jal", 32, {"C", 0}, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_JSR },
-{"c.beqz", 0, {"C", 0}, "Cs,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_CONDBRANCH },
-{"c.bnez", 0, {"C", 0}, "Cs,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_CONDBRANCH },
-{"c.lwsp", 0, {"C", 0}, "d,Cm(Cc)", MATCH_C_LWSP, MASK_C_LWSP, match_rd_nonzero, 0 },
-{"c.lw", 0, {"C", 0}, "Ct,Ck(Cs)", MATCH_C_LW, MASK_C_LW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.swsp", 0, {"C", 0}, "CV,CM(Cc)", MATCH_C_SWSP, MASK_C_SWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.sw", 0, {"C", 0}, "Ct,Ck(Cs)", MATCH_C_SW, MASK_C_SW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.nop", 0, {"C", 0}, "", MATCH_C_ADDI, 0xffff, match_opcode, INSN_ALIAS },
-{"c.nop", 0, {"C", 0}, "Cj", MATCH_C_ADDI, MASK_C_ADDI | MASK_RD, match_opcode, INSN_ALIAS },
-{"c.mv", 0, {"C", 0}, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add_with_hint, 0 },
-{"c.lui", 0, {"C", 0}, "d,Cu", MATCH_C_LUI, MASK_C_LUI, match_c_lui_with_hint, 0 },
-{"c.li", 0, {"C", 0}, "d,Co", MATCH_C_LI, MASK_C_LI, match_opcode, 0 },
-{"c.addi4spn", 0, {"C", 0}, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, 0 },
-{"c.addi16sp", 0, {"C", 0}, "Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, 0 },
-{"c.addi", 0, {"C", 0}, "d,Co", MATCH_C_ADDI, MASK_C_ADDI, match_opcode, 0 },
-{"c.add", 0, {"C", 0}, "d,CV", MATCH_C_ADD, MASK_C_ADD, match_c_add_with_hint, 0 },
-{"c.sub", 0, {"C", 0}, "Cs,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, 0 },
-{"c.and", 0, {"C", 0}, "Cs,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, 0 },
-{"c.or", 0, {"C", 0}, "Cs,Ct", MATCH_C_OR, MASK_C_OR, match_opcode, 0 },
-{"c.xor", 0, {"C", 0}, "Cs,Ct", MATCH_C_XOR, MASK_C_XOR, match_opcode, 0 },
-{"c.slli", 0, {"C", 0}, "d,C>", MATCH_C_SLLI, MASK_C_SLLI, match_c_slli, 0 },
-{"c.srli", 0, {"C", 0}, "Cs,C>", MATCH_C_SRLI, MASK_C_SRLI, match_c_slli, 0 },
-{"c.srai", 0, {"C", 0}, "Cs,C>", MATCH_C_SRAI, MASK_C_SRAI, match_c_slli, 0 },
-{"c.slli64", 0, {"C", 0}, "d", MATCH_C_SLLI64, MASK_C_SLLI64, match_c_slli64, 0 },
-{"c.srli64", 0, {"C", 0}, "Cs", MATCH_C_SRLI64, MASK_C_SRLI64, match_c_slli64, 0 },
-{"c.srai64", 0, {"C", 0}, "Cs", MATCH_C_SRAI64, MASK_C_SRAI64, match_c_slli64, 0 },
-{"c.andi", 0, {"C", 0}, "Cs,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, 0 },
-{"c.addiw", 64, {"C", 0}, "d,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
-{"c.addw", 64, {"C", 0}, "Cs,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, 0 },
-{"c.subw", 64, {"C", 0}, "Cs,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, 0 },
-{"c.ldsp", 64, {"C", 0}, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, INSN_DREF|INSN_8_BYTE },
-{"c.ld", 64, {"C", 0}, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.sdsp", 64, {"C", 0}, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.sd", 64, {"C", 0}, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.fldsp", 0, {"D", "C", 0}, "D,Cn(Cc)", MATCH_C_FLDSP, MASK_C_FLDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.fld", 0, {"D", "C", 0}, "CD,Cl(Cs)", MATCH_C_FLD, MASK_C_FLD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.fsdsp", 0, {"D", "C", 0}, "CT,CN(Cc)", MATCH_C_FSDSP, MASK_C_FSDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.fsd", 0, {"D", "C", 0}, "CD,Cl(Cs)", MATCH_C_FSD, MASK_C_FSD, match_opcode, INSN_DREF|INSN_8_BYTE },
-{"c.flwsp", 32, {"F", "C", 0}, "D,Cm(Cc)", MATCH_C_FLWSP, MASK_C_FLWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.flw", 32, {"F", "C", 0}, "CD,Ck(Cs)", MATCH_C_FLW, MASK_C_FLW, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.fswsp", 32, {"F", "C", 0}, "CT,CM(Cc)", MATCH_C_FSWSP, MASK_C_FSWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"c.fsw", 32, {"F", "C", 0}, "CD,Ck(Cs)", MATCH_C_FSW, MASK_C_FSW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.unimp", 0, INSN_CLASS_C, "", 0, 0xffffU, match_opcode, 0 },
+{"c.ebreak", 0, INSN_CLASS_C, "", MATCH_C_EBREAK, MASK_C_EBREAK, match_opcode, 0 },
+{"c.jr", 0, INSN_CLASS_C, "d", MATCH_C_JR, MASK_C_JR, match_rd_nonzero, INSN_BRANCH },
+{"c.jalr", 0, INSN_CLASS_C, "d", MATCH_C_JALR, MASK_C_JALR, match_rd_nonzero, INSN_JSR },
+{"c.j", 0, INSN_CLASS_C, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_BRANCH },
+{"c.jal", 32, INSN_CLASS_C, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_JSR },
+{"c.beqz", 0, INSN_CLASS_C, "Cs,Cp", MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_CONDBRANCH },
+{"c.bnez", 0, INSN_CLASS_C, "Cs,Cp", MATCH_C_BNEZ, MASK_C_BNEZ, match_opcode, INSN_CONDBRANCH },
+{"c.lwsp", 0, INSN_CLASS_C, "d,Cm(Cc)", MATCH_C_LWSP, MASK_C_LWSP, match_rd_nonzero, 0 },
+{"c.lw", 0, INSN_CLASS_C, "Ct,Ck(Cs)", MATCH_C_LW, MASK_C_LW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.swsp", 0, INSN_CLASS_C, "CV,CM(Cc)", MATCH_C_SWSP, MASK_C_SWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.sw", 0, INSN_CLASS_C, "Ct,Ck(Cs)", MATCH_C_SW, MASK_C_SW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.nop", 0, INSN_CLASS_C, "", MATCH_C_ADDI, 0xffff, match_opcode, INSN_ALIAS },
+{"c.nop", 0, INSN_CLASS_C, "Cj", MATCH_C_ADDI, MASK_C_ADDI | MASK_RD, match_opcode, INSN_ALIAS },
+{"c.mv", 0, INSN_CLASS_C, "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add_with_hint, 0 },
+{"c.lui", 0, INSN_CLASS_C, "d,Cu", MATCH_C_LUI, MASK_C_LUI, match_c_lui_with_hint, 0 },
+{"c.li", 0, INSN_CLASS_C, "d,Co", MATCH_C_LI, MASK_C_LI, match_opcode, 0 },
+{"c.addi4spn", 0, INSN_CLASS_C, "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_c_addi4spn, 0 },
+{"c.addi16sp", 0, INSN_CLASS_C, "Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_c_addi16sp, 0 },
+{"c.addi", 0, INSN_CLASS_C, "d,Co", MATCH_C_ADDI, MASK_C_ADDI, match_opcode, 0 },
+{"c.add", 0, INSN_CLASS_C, "d,CV", MATCH_C_ADD, MASK_C_ADD, match_c_add_with_hint, 0 },
+{"c.sub", 0, INSN_CLASS_C, "Cs,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, 0 },
+{"c.and", 0, INSN_CLASS_C, "Cs,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, 0 },
+{"c.or", 0, INSN_CLASS_C, "Cs,Ct", MATCH_C_OR, MASK_C_OR, match_opcode, 0 },
+{"c.xor", 0, INSN_CLASS_C, "Cs,Ct", MATCH_C_XOR, MASK_C_XOR, match_opcode, 0 },
+{"c.slli", 0, INSN_CLASS_C, "d,C>", MATCH_C_SLLI, MASK_C_SLLI, match_c_slli, 0 },
+{"c.srli", 0, INSN_CLASS_C, "Cs,C>", MATCH_C_SRLI, MASK_C_SRLI, match_c_slli, 0 },
+{"c.srai", 0, INSN_CLASS_C, "Cs,C>", MATCH_C_SRAI, MASK_C_SRAI, match_c_slli, 0 },
+{"c.slli64", 0, INSN_CLASS_C, "d", MATCH_C_SLLI64, MASK_C_SLLI64, match_c_slli64, 0 },
+{"c.srli64", 0, INSN_CLASS_C, "Cs", MATCH_C_SRLI64, MASK_C_SRLI64, match_c_slli64, 0 },
+{"c.srai64", 0, INSN_CLASS_C, "Cs", MATCH_C_SRAI64, MASK_C_SRAI64, match_c_slli64, 0 },
+{"c.andi", 0, INSN_CLASS_C, "Cs,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, 0 },
+{"c.addiw", 64, INSN_CLASS_C, "d,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
+{"c.addw", 64, INSN_CLASS_C, "Cs,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, 0 },
+{"c.subw", 64, INSN_CLASS_C, "Cs,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, 0 },
+{"c.ldsp", 64, INSN_CLASS_C, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, INSN_DREF|INSN_8_BYTE },
+{"c.ld", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.sdsp", 64, INSN_CLASS_C, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.sd", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.fldsp", 0, INSN_CLASS_D_AND_C, "D,Cn(Cc)", MATCH_C_FLDSP, MASK_C_FLDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.fld", 0, INSN_CLASS_D_AND_C, "CD,Cl(Cs)", MATCH_C_FLD, MASK_C_FLD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.fsdsp", 0, INSN_CLASS_D_AND_C, "CT,CN(Cc)", MATCH_C_FSDSP, MASK_C_FSDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.fsd", 0, INSN_CLASS_D_AND_C, "CD,Cl(Cs)", MATCH_C_FSD, MASK_C_FSD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.flwsp", 32, INSN_CLASS_F_AND_C, "D,Cm(Cc)", MATCH_C_FLWSP, MASK_C_FLWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.flw", 32, INSN_CLASS_F_AND_C, "CD,Ck(Cs)", MATCH_C_FLW, MASK_C_FLW, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.fswsp", 32, INSN_CLASS_F_AND_C, "CT,CM(Cc)", MATCH_C_FSWSP, MASK_C_FSWSP, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"c.fsw", 32, INSN_CLASS_F_AND_C, "CD,Ck(Cs)", MATCH_C_FSW, MASK_C_FSW, match_opcode, INSN_DREF|INSN_4_BYTE },
/* Supervisor instructions */
-{"csrr", 0, {"I", 0}, "d,E", MATCH_CSRRS, MASK_CSRRS | MASK_RS1, match_opcode, INSN_ALIAS },
-{"csrwi", 0, {"I", 0}, "E,Z", MATCH_CSRRWI, MASK_CSRRWI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrsi", 0, {"I", 0}, "E,Z", MATCH_CSRRSI, MASK_CSRRSI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrci", 0, {"I", 0}, "E,Z", MATCH_CSRRCI, MASK_CSRRCI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrw", 0, {"I", 0}, "E,s", MATCH_CSRRW, MASK_CSRRW | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrw", 0, {"I", 0}, "E,Z", MATCH_CSRRWI, MASK_CSRRWI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrs", 0, {"I", 0}, "E,s", MATCH_CSRRS, MASK_CSRRS | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrs", 0, {"I", 0}, "E,Z", MATCH_CSRRSI, MASK_CSRRSI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrc", 0, {"I", 0}, "E,s", MATCH_CSRRC, MASK_CSRRC | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrc", 0, {"I", 0}, "E,Z", MATCH_CSRRCI, MASK_CSRRCI | MASK_RD, match_opcode, INSN_ALIAS },
-{"csrrwi", 0, {"I", 0}, "d,E,Z", MATCH_CSRRWI, MASK_CSRRWI, match_opcode, 0 },
-{"csrrsi", 0, {"I", 0}, "d,E,Z", MATCH_CSRRSI, MASK_CSRRSI, match_opcode, 0 },
-{"csrrci", 0, {"I", 0}, "d,E,Z", MATCH_CSRRCI, MASK_CSRRCI, match_opcode, 0 },
-{"csrrw", 0, {"I", 0}, "d,E,s", MATCH_CSRRW, MASK_CSRRW, match_opcode, 0 },
-{"csrrw", 0, {"I", 0}, "d,E,Z", MATCH_CSRRWI, MASK_CSRRWI, match_opcode, INSN_ALIAS },
-{"csrrs", 0, {"I", 0}, "d,E,s", MATCH_CSRRS, MASK_CSRRS, match_opcode, 0 },
-{"csrrs", 0, {"I", 0}, "d,E,Z", MATCH_CSRRSI, MASK_CSRRSI, match_opcode, INSN_ALIAS },
-{"csrrc", 0, {"I", 0}, "d,E,s", MATCH_CSRRC, MASK_CSRRC, match_opcode, 0 },
-{"csrrc", 0, {"I", 0}, "d,E,Z", MATCH_CSRRCI, MASK_CSRRCI, match_opcode, INSN_ALIAS },
-{"uret", 0, {"I", 0}, "", MATCH_URET, MASK_URET, match_opcode, 0 },
-{"sret", 0, {"I", 0}, "", MATCH_SRET, MASK_SRET, match_opcode, 0 },
-{"hret", 0, {"I", 0}, "", MATCH_HRET, MASK_HRET, match_opcode, 0 },
-{"mret", 0, {"I", 0}, "", MATCH_MRET, MASK_MRET, match_opcode, 0 },
-{"dret", 0, {"I", 0}, "", MATCH_DRET, MASK_DRET, match_opcode, 0 },
-{"sfence.vm", 0, {"I", 0}, "", MATCH_SFENCE_VM, MASK_SFENCE_VM | MASK_RS1, match_opcode, 0 },
-{"sfence.vm", 0, {"I", 0}, "s", MATCH_SFENCE_VM, MASK_SFENCE_VM, match_opcode, 0 },
-{"sfence.vma", 0, {"I", 0}, "", MATCH_SFENCE_VMA, MASK_SFENCE_VMA | MASK_RS1 | MASK_RS2, match_opcode, INSN_ALIAS },
-{"sfence.vma", 0, {"I", 0}, "s", MATCH_SFENCE_VMA, MASK_SFENCE_VMA | MASK_RS2, match_opcode, INSN_ALIAS },
-{"sfence.vma", 0, {"I", 0}, "s,t", MATCH_SFENCE_VMA, MASK_SFENCE_VMA, match_opcode, 0 },
-{"wfi", 0, {"I", 0}, "", MATCH_WFI, MASK_WFI, match_opcode, 0 },
+{"csrr", 0, INSN_CLASS_I, "d,E", MATCH_CSRRS, MASK_CSRRS | MASK_RS1, match_opcode, INSN_ALIAS },
+{"csrwi", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRWI, MASK_CSRRWI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrsi", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRSI, MASK_CSRRSI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrci", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRCI, MASK_CSRRCI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrw", 0, INSN_CLASS_I, "E,s", MATCH_CSRRW, MASK_CSRRW | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrw", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRWI, MASK_CSRRWI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrs", 0, INSN_CLASS_I, "E,s", MATCH_CSRRS, MASK_CSRRS | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrs", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRSI, MASK_CSRRSI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrc", 0, INSN_CLASS_I, "E,s", MATCH_CSRRC, MASK_CSRRC | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrc", 0, INSN_CLASS_I, "E,Z", MATCH_CSRRCI, MASK_CSRRCI | MASK_RD, match_opcode, INSN_ALIAS },
+{"csrrwi", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRWI, MASK_CSRRWI, match_opcode, 0 },
+{"csrrsi", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRSI, MASK_CSRRSI, match_opcode, 0 },
+{"csrrci", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRCI, MASK_CSRRCI, match_opcode, 0 },
+{"csrrw", 0, INSN_CLASS_I, "d,E,s", MATCH_CSRRW, MASK_CSRRW, match_opcode, 0 },
+{"csrrw", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRWI, MASK_CSRRWI, match_opcode, INSN_ALIAS },
+{"csrrs", 0, INSN_CLASS_I, "d,E,s", MATCH_CSRRS, MASK_CSRRS, match_opcode, 0 },
+{"csrrs", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRSI, MASK_CSRRSI, match_opcode, INSN_ALIAS },
+{"csrrc", 0, INSN_CLASS_I, "d,E,s", MATCH_CSRRC, MASK_CSRRC, match_opcode, 0 },
+{"csrrc", 0, INSN_CLASS_I, "d,E,Z", MATCH_CSRRCI, MASK_CSRRCI, match_opcode, INSN_ALIAS },
+{"uret", 0, INSN_CLASS_I, "", MATCH_URET, MASK_URET, match_opcode, 0 },
+{"sret", 0, INSN_CLASS_I, "", MATCH_SRET, MASK_SRET, match_opcode, 0 },
+{"hret", 0, INSN_CLASS_I, "", MATCH_HRET, MASK_HRET, match_opcode, 0 },
+{"mret", 0, INSN_CLASS_I, "", MATCH_MRET, MASK_MRET, match_opcode, 0 },
+{"dret", 0, INSN_CLASS_I, "", MATCH_DRET, MASK_DRET, match_opcode, 0 },
+{"sfence.vm", 0, INSN_CLASS_I, "", MATCH_SFENCE_VM, MASK_SFENCE_VM | MASK_RS1, match_opcode, 0 },
+{"sfence.vm", 0, INSN_CLASS_I, "s", MATCH_SFENCE_VM, MASK_SFENCE_VM, match_opcode, 0 },
+{"sfence.vma", 0, INSN_CLASS_I, "", MATCH_SFENCE_VMA, MASK_SFENCE_VMA | MASK_RS1 | MASK_RS2, match_opcode, INSN_ALIAS },
+{"sfence.vma", 0, INSN_CLASS_I, "s", MATCH_SFENCE_VMA, MASK_SFENCE_VMA | MASK_RS2, match_opcode, INSN_ALIAS },
+{"sfence.vma", 0, INSN_CLASS_I, "s,t", MATCH_SFENCE_VMA, MASK_SFENCE_VMA, match_opcode, 0 },
+{"wfi", 0, INSN_CLASS_I, "", MATCH_WFI, MASK_WFI, match_opcode, 0 },
/* Terminate the list. */
-{0, 0, {0}, 0, 0, 0, 0, 0}
+{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
};
/* Instruction format for .insn directive. */
const struct riscv_opcode riscv_insn_types[] =
{
/* name, xlen, isa, operands, match, mask, match_func, pinfo. */
-{"r", 0, {"I", 0}, "O4,F3,F7,d,s,t", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,D,s,t", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,d,S,t", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,D,S,t", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,d,s,T", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,D,s,T", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,d,S,T", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F7,D,S,T", 0, 0, match_opcode, 0 },
-
-{"r", 0, {"I", 0}, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, {"I", 0}, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
-
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, {"I", 0}, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
-
-{"i", 0, {"I", 0}, "O4,F3,d,s,j", 0, 0, match_opcode, 0 },
-{"i", 0, {"I", 0}, "O4,F3,D,s,j", 0, 0, match_opcode, 0 },
-{"i", 0, {"I", 0}, "O4,F3,d,S,j", 0, 0, match_opcode, 0 },
-{"i", 0, {"I", 0}, "O4,F3,D,S,j", 0, 0, match_opcode, 0 },
-
-{"i", 0, {"I", 0}, "O4,F3,d,o(s)", 0, 0, match_opcode, 0 },
-{"i", 0, {"I", 0}, "O4,F3,D,o(s)", 0, 0, match_opcode, 0 },
-
-{"s", 0, {"I", 0}, "O4,F3,t,q(s)", 0, 0, match_opcode, 0 },
-{"s", 0, {"I", 0}, "O4,F3,T,q(s)", 0, 0, match_opcode, 0 },
-
-{"sb", 0, {"I", 0}, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
-{"sb", 0, {"I", 0}, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
-{"sb", 0, {"I", 0}, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
-{"sb", 0, {"I", 0}, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
-
-{"b", 0, {"I", 0}, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
-{"b", 0, {"I", 0}, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
-{"b", 0, {"I", 0}, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
-{"b", 0, {"I", 0}, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
-
-{"u", 0, {"I", 0}, "O4,d,u", 0, 0, match_opcode, 0 },
-{"u", 0, {"I", 0}, "O4,D,u", 0, 0, match_opcode, 0 },
-
-{"uj", 0, {"I", 0}, "O4,d,a", 0, 0, match_opcode, 0 },
-{"uj", 0, {"I", 0}, "O4,D,a", 0, 0, match_opcode, 0 },
-
-{"j", 0, {"I", 0}, "O4,d,a", 0, 0, match_opcode, 0 },
-{"j", 0, {"I", 0}, "O4,D,a", 0, 0, match_opcode, 0 },
-
-{"cr", 0, {"C", 0}, "O2,CF4,d,CV", 0, 0, match_opcode, 0 },
-{"cr", 0, {"C", 0}, "O2,CF4,D,CV", 0, 0, match_opcode, 0 },
-{"cr", 0, {"C", 0}, "O2,CF4,d,CT", 0, 0, match_opcode, 0 },
-{"cr", 0, {"C", 0}, "O2,CF4,D,CT", 0, 0, match_opcode, 0 },
-
-{"ci", 0, {"C", 0}, "O2,CF3,d,Co", 0, 0, match_opcode, 0 },
-{"ci", 0, {"C", 0}, "O2,CF3,D,Co", 0, 0, match_opcode, 0 },
-
-{"ciw", 0, {"C", 0}, "O2,CF3,Ct,C8", 0, 0, match_opcode, 0 },
-{"ciw", 0, {"C", 0}, "O2,CF3,CD,C8", 0, 0, match_opcode, 0 },
-
-{"ca", 0, {"C", 0}, "O2,CF6,CF2,Cs,Ct", 0, 0, match_opcode, 0 },
-{"ca", 0, {"C", 0}, "O2,CF6,CF2,CS,Ct", 0, 0, match_opcode, 0 },
-{"ca", 0, {"C", 0}, "O2,CF6,CF2,Cs,CD", 0, 0, match_opcode, 0 },
-{"ca", 0, {"C", 0}, "O2,CF6,CF2,CS,CD", 0, 0, match_opcode, 0 },
-
-{"cb", 0, {"C", 0}, "O2,CF3,Cs,Cp", 0, 0, match_opcode, 0 },
-{"cb", 0, {"C", 0}, "O2,CF3,CS,Cp", 0, 0, match_opcode, 0 },
-
-{"cj", 0, {"C", 0}, "O2,CF3,Ca", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,t", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,D,s,t", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,S,t", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,D,S,t", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,T", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,D,s,T", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,S,T", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,D,S,T", 0, 0, match_opcode, 0 },
+
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
+
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
+
+{"i", 0, INSN_CLASS_I, "O4,F3,d,s,j", 0, 0, match_opcode, 0 },
+{"i", 0, INSN_CLASS_I, "O4,F3,D,s,j", 0, 0, match_opcode, 0 },
+{"i", 0, INSN_CLASS_I, "O4,F3,d,S,j", 0, 0, match_opcode, 0 },
+{"i", 0, INSN_CLASS_I, "O4,F3,D,S,j", 0, 0, match_opcode, 0 },
+
+{"i", 0, INSN_CLASS_I, "O4,F3,d,o(s)", 0, 0, match_opcode, 0 },
+{"i", 0, INSN_CLASS_I, "O4,F3,D,o(s)", 0, 0, match_opcode, 0 },
+
+{"s", 0, INSN_CLASS_I, "O4,F3,t,q(s)", 0, 0, match_opcode, 0 },
+{"s", 0, INSN_CLASS_I, "O4,F3,T,q(s)", 0, 0, match_opcode, 0 },
+
+{"sb", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
+{"sb", 0, INSN_CLASS_I, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
+{"sb", 0, INSN_CLASS_I, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
+{"sb", 0, INSN_CLASS_I, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
+
+{"b", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
+{"b", 0, INSN_CLASS_I, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
+{"b", 0, INSN_CLASS_I, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
+{"b", 0, INSN_CLASS_I, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
+
+{"u", 0, INSN_CLASS_I, "O4,d,u", 0, 0, match_opcode, 0 },
+{"u", 0, INSN_CLASS_I, "O4,D,u", 0, 0, match_opcode, 0 },
+
+{"uj", 0, INSN_CLASS_I, "O4,d,a", 0, 0, match_opcode, 0 },
+{"uj", 0, INSN_CLASS_I, "O4,D,a", 0, 0, match_opcode, 0 },
+
+{"j", 0, INSN_CLASS_I, "O4,d,a", 0, 0, match_opcode, 0 },
+{"j", 0, INSN_CLASS_I, "O4,D,a", 0, 0, match_opcode, 0 },
+
+{"cr", 0, INSN_CLASS_C, "O2,CF4,d,CV", 0, 0, match_opcode, 0 },
+{"cr", 0, INSN_CLASS_C, "O2,CF4,D,CV", 0, 0, match_opcode, 0 },
+{"cr", 0, INSN_CLASS_C, "O2,CF4,d,CT", 0, 0, match_opcode, 0 },
+{"cr", 0, INSN_CLASS_C, "O2,CF4,D,CT", 0, 0, match_opcode, 0 },
+
+{"ci", 0, INSN_CLASS_C, "O2,CF3,d,Co", 0, 0, match_opcode, 0 },
+{"ci", 0, INSN_CLASS_C, "O2,CF3,D,Co", 0, 0, match_opcode, 0 },
+
+{"ciw", 0, INSN_CLASS_C, "O2,CF3,Ct,C8", 0, 0, match_opcode, 0 },
+{"ciw", 0, INSN_CLASS_C, "O2,CF3,CD,C8", 0, 0, match_opcode, 0 },
+
+{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,Cs,Ct", 0, 0, match_opcode, 0 },
+{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,CS,Ct", 0, 0, match_opcode, 0 },
+{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,Cs,CD", 0, 0, match_opcode, 0 },
+{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,CS,CD", 0, 0, match_opcode, 0 },
+
+{"cb", 0, INSN_CLASS_C, "O2,CF3,Cs,Cp", 0, 0, match_opcode, 0 },
+{"cb", 0, INSN_CLASS_C, "O2,CF3,CS,Cp", 0, 0, match_opcode, 0 },
+
+{"cj", 0, INSN_CLASS_C, "O2,CF3,Ca", 0, 0, match_opcode, 0 },
/* Terminate the list. */
-{0, 0, {0}, 0, 0, 0, 0, 0}
+{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
};
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make extern declaration of dwarf_always_disassemble correct
@ 2019-09-18 6:12 gdb-buildbot
2019-09-18 10:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 6:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a3d181d2e784d57ea04728ac2f8f747fa798e78a ***
commit a3d181d2e784d57ea04728ac2f8f747fa798e78a
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Wed Sep 18 13:50:42 2019 +0900
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Wed Sep 18 13:54:48 2019 +0900
Make extern declaration of dwarf_always_disassemble correct
This was an oversight in 491144b5e21bbfd41969c175aebb663976f59058;
dwarf2loc.c has an extern definition for dwarf_always_disassemble
that I missed. This patch updates it from int to bool to match
the definition in dwarf2read.c.
gdb/ChangeLog:
2019-09-18 Christian Biesinger <cbiesinger@google.com>
* dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
to bool to match definition in dwarf2read.c.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8cb5bfeeb9..39fcac7a04 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Christian Biesinger <cbiesinger@google.com>
+
+ * dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
+ to bool to match definition in dwarf2read.c.
+
2019-09-17 Christian Biesinger <cbiesinger@google.com>
* ada-lang.c (ada_ignore_descriptive_types_p): Change to bool.
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 63643cb45d..29fccae594 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -46,7 +46,7 @@
#include "gdbsupport/underlying.h"
#include "gdbsupport/byte-vector.h"
-extern int dwarf_always_disassemble;
+extern bool dwarf_always_disassemble;
static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
struct frame_info *frame,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC64, support medium model access to common symbols
@ 2019-09-18 13:19 gdb-buildbot
2019-09-18 13:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1bdd8facfbf6f94fa9603f528c7e8bdf91d90bfd ***
commit 1bdd8facfbf6f94fa9603f528c7e8bdf91d90bfd
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 10:27:23 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930
PowerPC64, support medium model access to common symbols
Some versions of clang apparently generate non-PIC on powerpc64le to
access common symbols. Since a common symbol and a strong definition
with the same name should resolve to the strong definition we have the
possibility of non-PIC attempting to access shared library variables.
This is really a clanger since powerpc64le is supposed to be PIC by
default, but let's see if ld can cope by generating .dynbss copies.
* elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
(ppc64_elf_check_relocs): Support dynamic/copy relocs for TOC16.
(ppc64_elf_adjust_dynamic_symbol): Don't keep dynamic reloc when
needs_copy even if all relocs are in rw sections.
(dec_dynrel_count): Handle TOC16 relocs.
(ppc64_elf_relocate_section): Support dynamic relocs for TOC16.
(ppc64_elf_finish_dynamic_symbol): Adjust to handle needs_copy
semantic change.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 76939880c7..4f48818ef3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
+ (ppc64_elf_check_relocs): Support dynamic/copy relocs for TOC16.
+ (ppc64_elf_adjust_dynamic_symbol): Don't keep dynamic reloc when
+ needs_copy even if all relocs are in rw sections.
+ (dec_dynrel_count): Handle TOC16 relocs.
+ (ppc64_elf_relocate_section): Support dynamic relocs for TOC16.
+ (ppc64_elf_finish_dynamic_symbol): Adjust to handle needs_copy
+ semantic change.
+
2019-09-16 Phil Blundell <pb@pbcl.net>
* version.m4: Set version to 2.33.50.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 88ace7e6fe..345710ee59 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -2745,6 +2745,12 @@ must_be_dyn_reloc (struct bfd_link_info *info,
case R_PPC64_REL32:
case R_PPC64_REL64:
case R_PPC64_REL30:
+ case R_PPC64_TOC16:
+ case R_PPC64_TOC16_DS:
+ case R_PPC64_TOC16_LO:
+ case R_PPC64_TOC16_HI:
+ case R_PPC64_TOC16_HA:
+ case R_PPC64_TOC16_LO_DS:
return 0;
case R_PPC64_TPREL16:
@@ -4830,6 +4836,16 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_TOC16_HA:
case R_PPC64_TOC16_LO_DS:
sec->has_toc_reloc = 1;
+ if (h != NULL && !bfd_link_pic (info))
+ {
+ /* We may need a copy reloc. */
+ h->non_got_ref = 1;
+ /* Strongly prefer a copy reloc over a dynamic reloc.
+ glibc ld.so as of 2019-08 will error out if one of
+ these relocations is emitted. */
+ h->needs_copy = 1;
+ goto dodyn;
+ }
break;
/* Marker reloc. */
@@ -6425,7 +6441,9 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
/* If we don't find any dynamic relocs in read-only sections, then
we'll be keeping the dynamic relocs and avoiding the copy reloc. */
- || (ELIMINATE_COPY_RELOCS && !alias_readonly_dynrelocs (h))
+ || (ELIMINATE_COPY_RELOCS
+ && !h->needs_copy
+ && !alias_readonly_dynrelocs (h))
/* Protected variables do not work with .dynbss. The copy in
.dynbss won't be used by the shared library with the protected
@@ -6813,6 +6831,16 @@ dec_dynrel_count (bfd_vma r_info,
default:
return TRUE;
+ case R_PPC64_TOC16:
+ case R_PPC64_TOC16_DS:
+ case R_PPC64_TOC16_LO:
+ case R_PPC64_TOC16_HI:
+ case R_PPC64_TOC16_HA:
+ case R_PPC64_TOC16_LO_DS:
+ if (h == NULL)
+ return TRUE;
+ break;
+
case R_PPC64_TPREL16:
case R_PPC64_TPREL16_LO:
case R_PPC64_TPREL16_HI:
@@ -15801,6 +15829,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
case R_PPC64_TOC16_LO_DS:
case R_PPC64_TOC16_HA:
addend -= TOCstart + htab->sec_info[input_section->id].toc_off;
+ if (h != NULL)
+ goto dodyn;
break;
/* Relocate against the beginning of the section. */
@@ -16734,18 +16764,18 @@ ppc64_elf_finish_dynamic_symbol (bfd *output_bfd,
break;
}
- if (h->needs_copy)
+ if (h->needs_copy
+ && (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && (h->root.u.def.section == htab->elf.sdynbss
+ || h->root.u.def.section == htab->elf.sdynrelro))
{
/* This symbol needs a copy reloc. Set it up. */
Elf_Internal_Rela rela;
asection *srel;
bfd_byte *loc;
- if (h->dynindx == -1
- || (h->root.type != bfd_link_hash_defined
- && h->root.type != bfd_link_hash_defweak)
- || htab->elf.srelbss == NULL
- || htab->elf.sreldynrelro == NULL)
+ if (h->dynindx == -1)
abort ();
rela.r_offset = (h->root.u.def.value
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use bfd_set_filename more
@ 2019-09-18 13:33 gdb-buildbot
2019-09-18 13:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 90d92a632aaf75ce698335efeb383ddf785c12d8 ***
commit 90d92a632aaf75ce698335efeb383ddf785c12d8
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 10:34:46 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930
Use bfd_set_filename more
Fixes a few leaks in bfd and ld.
bfd/
* mach-o.c (bfd_mach_o_fat_member_init): Likewise. Replace
xstrdup and xmalloc with bfd_strdup and bfd_malloc. Return an
error status. Adjust calls.
* vms-lib.c (_bfd_vms_lib_get_module): Test mhd->id earlier.
Close bfd on failure. Replace xstrdup/bfd_alloc use with
bfd_malloc. Use bfd_set_filename.
gdb/
* solib-spu.c (spu_bfd_open): Use bfd_set_filename.
* spu-linux-nat.c (spu_bfd_open): Likewise.
ld/
* emultempl/pe.em (after_open): Use bfd_set_filename.
* emultempl/pep.em (after_open): Use bfd_set_filename.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4f48818ef3..08605c3a80 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * mach-o.c (bfd_mach_o_fat_member_init): Likewise. Replace
+ xstrdup and xmalloc with bfd_strdup and bfd_malloc. Return an
+ error status. Adjust calls.
+ * vms-lib.c (_bfd_vms_lib_get_module): Test mhd->id earlier.
+ Close bfd on failure. Replace xstrdup/bfd_alloc use with
+ bfd_malloc. Use bfd_set_filename.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (must_be_dyn_reloc): Return 0 for TOC16 relocs.
diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index d02398048c..7d70087c95 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -5417,7 +5417,7 @@ bfd_mach_o_fat_archive_p (bfd *abfd)
ARCH_TYPE/ARCH_SUBTYPE and corresponding entry in header is ENTRY.
Set arelt_data and origin fields too. */
-static void
+static bfd_boolean
bfd_mach_o_fat_member_init (bfd *abfd,
enum bfd_architecture arch_type,
unsigned long arch_subtype,
@@ -5426,27 +5426,35 @@ bfd_mach_o_fat_member_init (bfd *abfd,
struct areltdata *areltdata;
/* Create the member filename. Use ARCH_NAME. */
const bfd_arch_info_type *ap = bfd_lookup_arch (arch_type, arch_subtype);
+ char *filename;
if (ap)
{
/* Use the architecture name if known. */
- abfd->filename = xstrdup (ap->printable_name);
+ filename = bfd_strdup (ap->printable_name);
+ if (filename == NULL)
+ return FALSE;
}
else
{
/* Forge a uniq id. */
const size_t namelen = 2 + 8 + 1 + 2 + 8 + 1;
- char *name = xmalloc (namelen);
- snprintf (name, namelen, "0x%lx-0x%lx",
+ filename = bfd_malloc (namelen);
+ if (filename == NULL)
+ return FALSE;
+ snprintf (filename, namelen, "0x%lx-0x%lx",
entry->cputype, entry->cpusubtype);
- abfd->filename = name;
}
+ bfd_set_filename (abfd, filename);
areltdata = bfd_zmalloc (sizeof (struct areltdata));
+ if (areltdata == NULL)
+ return FALSE;
areltdata->parsed_size = entry->size;
abfd->arelt_data = areltdata;
abfd->iostream = NULL;
abfd->origin = entry->offset;
+ return TRUE;
}
bfd *
@@ -5502,7 +5510,11 @@ bfd_mach_o_fat_openr_next_archived_file (bfd *archive, bfd *prev)
bfd_mach_o_convert_architecture (entry->cputype, entry->cpusubtype,
&arch_type, &arch_subtype);
- bfd_mach_o_fat_member_init (nbfd, arch_type, arch_subtype, entry);
+ if (!bfd_mach_o_fat_member_init (nbfd, arch_type, arch_subtype, entry))
+ {
+ bfd_close (nbfd);
+ return NULL;
+ }
bfd_set_arch_mach (nbfd, arch_type, arch_subtype);
@@ -5574,9 +5586,8 @@ bfd_mach_o_fat_extract (bfd *abfd,
if (res == NULL)
return NULL;
- bfd_mach_o_fat_member_init (res, cpu_type, cpu_subtype, e);
-
- if (bfd_check_format (res, format))
+ if (bfd_mach_o_fat_member_init (res, cpu_type, cpu_subtype, e)
+ && bfd_check_format (res, format))
{
BFD_ASSERT (bfd_get_arch_info (res) == arch);
return res;
diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c
index f238ba0016..43addd46ec 100644
--- a/bfd/vms-lib.c
+++ b/bfd/vms-lib.c
@@ -1297,7 +1297,9 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
struct lib_tdata *tdata = bfd_libdata (abfd);
bfd *res;
file_ptr file_off;
- char *name;
+ const char *name;
+ char *newname;
+ size_t namelen;
/* Sanity check. */
if (modidx >= tdata->nbr_modules)
@@ -1335,18 +1337,22 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
if (bfd_bread (buf, tdata->mhd_size, abfd) != tdata->mhd_size)
return NULL;
+ mhd = (struct vms_mhd *) buf;
+ if (mhd->id != MHD__C_MHDID)
+ return NULL;
+
res = _bfd_create_empty_archive_element_shell (abfd);
if (res == NULL)
return NULL;
arelt = bfd_zmalloc (sizeof (*arelt));
if (arelt == NULL)
- return NULL;
+ {
+ bfd_close (res);
+ return NULL;
+ }
res->arelt_data = arelt;
/* Get info from mhd. */
- mhd = (struct vms_mhd *)buf;
- if (mhd->id != MHD__C_MHDID)
- return NULL;
if (tdata->mhd_size >= offsetof (struct vms_mhd, objstat) + 1)
res->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0;
res->mtime = vms_rawtime_to_time_t (mhd->datim);
@@ -1361,23 +1367,25 @@ _bfd_vms_lib_get_module (bfd *abfd, unsigned int modidx)
/* Set filename. */
name = tdata->modules[modidx].name;
+ namelen = strlen (name);
+ newname = bfd_malloc (namelen + 4 + 1);
+ if (newname == NULL)
+ {
+ bfd_close (res);
+ return NULL;
+ }
+ strcpy (newname, name);
switch (tdata->type)
{
case LBR__C_TYP_IOBJ:
case LBR__C_TYP_EOBJ:
/* For object archives, append .obj to mimic standard behaviour. */
- {
- size_t namelen = strlen (name);
- char *name1 = bfd_alloc (res, namelen + 4 + 1);
- memcpy (name1, name, namelen);
- strcpy (name1 + namelen, ".obj");
- name = name1;
- }
+ strcpy (newname + namelen, ".obj");
break;
default:
break;
}
- res->filename = xstrdup (name);
+ bfd_set_filename (res, newname);
tdata->cache[modidx] = res;
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 39fcac7a04..9ad5000480 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * solib-spu.c (spu_bfd_open): Use bfd_set_filename.
+ * spu-linux-nat.c (spu_bfd_open): Likewise.
+
2019-09-18 Christian Biesinger <cbiesinger@google.com>
* dwarf2loc.c: Change extern declaration of dwarf_always_disassemble
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
index 5b97b9bcf6..c5e0acaf02 100644
--- a/gdb/solib-spu.c
+++ b/gdb/solib-spu.c
@@ -377,8 +377,7 @@ spu_bfd_open (const char *pathname)
strcat (buf, original_name);
- xfree ((char *)abfd->filename);
- abfd->filename = xstrdup (buf);
+ bfd_set_filename (abfd.get (), xstrdup (buf));
}
}
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
index 2f4b4d6946..9dbb633734 100644
--- a/gdb/spu-linux-nat.c
+++ b/gdb/spu-linux-nat.c
@@ -371,8 +371,7 @@ spu_bfd_open (ULONGEST addr)
sect_size - 20);
buf[sect_size - 20] = '\0';
- xfree ((char *)nbfd->filename);
- nbfd->filename = xstrdup (buf);
+ bfd_set_filename (nbfd.get (), xstrdup (buf));
}
}
diff --git a/ld/ChangeLog b/ld/ChangeLog
index ea28a0b56f..81935a408c 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * emultempl/pe.em (after_open): Use bfd_set_filename.
+ * emultempl/pep.em (after_open): Use bfd_set_filename.
+
2019-09-16 Alan Modra <amodra@gmail.com>
PR 25002
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 49bb66b906..2e78f26ad8 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1543,7 +1543,7 @@ gld_${EMULATION_NAME}_after_open (void)
/* Rename this implib to match the other one. */
n = xmalloc (strlen (other_bfd_filename) + 1);
strcpy (n, other_bfd_filename);
- is->the_bfd->my_archive->filename = n;
+ bfd_set_filename (is->the_bfd->my_archive, n);
}
free (relocs);
@@ -1648,7 +1648,7 @@ gld_${EMULATION_NAME}_after_open (void)
new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
- is->the_bfd->filename = new_name;
+ bfd_set_filename (is->the_bfd, new_name);
new_name = xmalloc (strlen (is->filename) + 3);
sprintf (new_name, "%s.%c", is->filename, seq);
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 4daa32b5c6..601ef11c20 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1510,7 +1510,7 @@ gld_${EMULATION_NAME}_after_open (void)
/* Rename this implib to match the other one. */
n = xmalloc (strlen (other_bfd_filename) + 1);
strcpy (n, other_bfd_filename);
- is->the_bfd->my_archive->filename = n;
+ bfd_set_filename (is->the_bfd->my_archive, n);
}
free (relocs);
@@ -1615,7 +1615,7 @@ gld_${EMULATION_NAME}_after_open (void)
new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
- is->the_bfd->filename = new_name;
+ bfd_set_filename (is->the_bfd, new_name);
new_name = xmalloc (strlen (is->filename) + 3);
sprintf (new_name, "%s.%c", is->filename, seq);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify target name, reloc name, and carsym name
@ 2019-09-18 13:42 gdb-buildbot
2019-09-18 13:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5 ***
commit 1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 15:04:27 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 21:32:51 2019 +0930
Constify target name, reloc name, and carsym name
bfd/
* bfd-in.h (carsym.name): Make const.
* reloc.c (struct reloc_howto_struct.name): Likewise.
* targets.c (bfd_target.name): Likewise.!
* bfd.c (bfd_get_sign_extend_vma): Make variable const.
* som.c (som_bfd_fill_in_ar_symbols): Use an intermediary variable
when setting carsym.name.
* bfd-in2.h: Regenerate.
gdb/
* amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
* i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.
* i386-dicos-tdep.c (i386_dicos_osabi_sniffer): Likewise.
ld/
* ldlang.c (stricpy, strcut, name_compare): Constify params.
(get_first_input_target): Make return and "target" const.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 08605c3a80..8c5ce8b8b2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (carsym.name): Make const.
+ * reloc.c (struct reloc_howto_struct.name): Likewise.
+ * targets.c (bfd_target.name): Likewise.!
+ * bfd.c (bfd_get_sign_extend_vma): Make variable const.
+ * som.c (som_bfd_fill_in_ar_symbols): Use an intermediary variable
+ when setting carsym.name.
+ * bfd-in2.h: Regenerate.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* mach-o.c (bfd_mach_o_fat_member_init): Likewise. Replace
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 6544838a57..6c72acb705 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -257,7 +257,7 @@ typedef unsigned long symindex;
/* This is a type pun with struct ranlib on purpose! */
typedef struct carsym
{
- char *name;
+ const char *name;
file_ptr file_offset; /* Look here to find the file. */
}
carsym; /* To make these you call a carsymogen. */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 13445a1de7..135c1e5fbc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -264,7 +264,7 @@ typedef unsigned long symindex;
/* This is a type pun with struct ranlib on purpose! */
typedef struct carsym
{
- char *name;
+ const char *name;
file_ptr file_offset; /* Look here to find the file. */
}
carsym; /* To make these you call a carsymogen. */
@@ -2718,7 +2718,7 @@ struct reloc_howto_struct
bfd *, char **);
/* The textual name of the relocation type. */
- char *name;
+ const char *name;
};
#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \
@@ -7634,7 +7634,7 @@ typedef struct flag_info flag_info;
typedef struct bfd_target
{
/* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
- char *name;
+ const char *name;
/* The "flavour" of a back end is a general indication about
the contents of a file. */
diff --git a/bfd/bfd.c b/bfd/bfd.c
index f14ec253fb..91403508a9 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1507,7 +1507,7 @@ RETURNS
int
bfd_get_sign_extend_vma (bfd *abfd)
{
- char *name;
+ const char *name;
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
return get_elf_backend_data (abfd)->sign_extend_vma;
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 9ca68ca61d..8eac73ddfe 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -361,7 +361,7 @@ CODE_FRAGMENT
. bfd *, char **);
.
. {* The textual name of the relocation type. *}
-. char *name;
+. const char *name;
.};
.
*/
diff --git a/bfd/som.c b/bfd/som.c
index 02a99a3360..cf78843452 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -5995,6 +5995,7 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
unsigned int hash_val;
unsigned int len;
unsigned char ext_len[4];
+ char *name;
/* An empty chain has zero as it's file offset. */
hash_val = bfd_getb32 (hash_table + 4 * i);
@@ -6025,13 +6026,14 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
len = bfd_getb32 (ext_len);
/* Allocate space for the name and null terminate it too. */
- set->name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
- if (!set->name)
+ name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
+ if (!name)
goto error_return;
- if (bfd_bread (set->name, (bfd_size_type) len, abfd) != len)
+ if (bfd_bread (name, (bfd_size_type) len, abfd) != len)
goto error_return;
- set->name[len] = 0;
+ name[len] = 0;
+ set->name = name;
/* Fill in the file offset. Note that the "location" field points
to the SOM itself, not the ar_hdr in front of it. */
@@ -6068,13 +6070,14 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
len = bfd_getb32 (ext_len);
/* Allocate space for the name and null terminate it too. */
- set->name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
- if (!set->name)
+ name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
+ if (!name)
goto error_return;
- if (bfd_bread (set->name, (bfd_size_type) len, abfd) != len)
+ if (bfd_bread (name, (bfd_size_type) len, abfd) != len)
goto error_return;
- set->name[len] = 0;
+ name[len] = 0;
+ set->name = name;
/* Fill in the file offset. Note that the "location" field points
to the SOM itself, not the ar_hdr in front of it. */
diff --git a/bfd/targets.c b/bfd/targets.c
index 09956994ec..b02dfc5484 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -179,7 +179,7 @@ DESCRIPTION
.typedef struct bfd_target
.{
. {* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. *}
-. char *name;
+. const char *name;
.
. {* The "flavour" of a back end is a general indication about
. the contents of a file. *}
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9ad5000480..5e0e37bcfa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
+ * i386-cygwin-tdep.c (i386_cygwin_init_abi): Likewise.
+ * i386-dicos-tdep.c (i386_dicos_osabi_sniffer): Likewise.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* solib-spu.c (spu_bfd_open): Use bfd_set_filename.
diff --git a/gdb/amd64-dicos-tdep.c b/gdb/amd64-dicos-tdep.c
index e797843bc9..ee91888491 100644
--- a/gdb/amd64-dicos-tdep.c
+++ b/gdb/amd64-dicos-tdep.c
@@ -35,7 +35,7 @@ amd64_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static enum gdb_osabi
amd64_dicos_osabi_sniffer (bfd *abfd)
{
- char *target_name = bfd_get_target (abfd);
+ const char *target_name = bfd_get_target (abfd);
/* On amd64-DICOS, the Load Module's "header" section is 72
bytes. */
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 1acd37975e..0e3ba82b76 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -229,7 +229,7 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static enum gdb_osabi
i386_cygwin_osabi_sniffer (bfd *abfd)
{
- char *target_name = bfd_get_target (abfd);
+ const char *target_name = bfd_get_target (abfd);
if (strcmp (target_name, "pei-i386") == 0)
return GDB_OSABI_CYGWIN;
diff --git a/gdb/i386-dicos-tdep.c b/gdb/i386-dicos-tdep.c
index 02af91aefd..a8c7c04d1f 100644
--- a/gdb/i386-dicos-tdep.c
+++ b/gdb/i386-dicos-tdep.c
@@ -31,7 +31,7 @@ i386_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static enum gdb_osabi
i386_dicos_osabi_sniffer (bfd *abfd)
{
- char *target_name = bfd_get_target (abfd);
+ const char *target_name = bfd_get_target (abfd);
/* On x86-DICOS, the Load Module's "header" section is 36 bytes. */
if (strcmp (target_name, "elf32-i386") == 0
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 81935a408c..b863676ccd 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * ldlang.c (stricpy, strcut, name_compare): Constify params.
+ (get_first_input_target): Make return and "target" const.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* emultempl/pe.em (after_open): Use bfd_set_filename.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 8beccd3736..76e862a640 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3149,7 +3149,7 @@ get_target (const bfd_target *target, void *data)
/* Like strcpy() but convert to lower case as well. */
static void
-stricpy (char *dest, char *src)
+stricpy (char *dest, const char *src)
{
char c;
@@ -3163,7 +3163,7 @@ stricpy (char *dest, char *src)
from haystack. */
static void
-strcut (char *haystack, char *needle)
+strcut (char *haystack, const char *needle)
{
haystack = strstr (haystack, needle);
@@ -3182,7 +3182,7 @@ strcut (char *haystack, char *needle)
Return a value indicating how "similar" they are. */
static int
-name_compare (char *first, char *second)
+name_compare (const char *first, const char *second)
{
char *copy1;
char *copy2;
@@ -3267,10 +3267,10 @@ closest_target_match (const bfd_target *target, void *data)
/* Return the BFD target format of the first input file. */
-static char *
+static const char *
get_first_input_target (void)
{
- char *target = NULL;
+ const char *target = NULL;
LANG_FOR_EACH_INPUT_STATEMENT (s)
{
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-18 13:42 [binutils-gdb] Constify target name, reloc name, and carsym name gdb-buildbot
@ 2019-09-18 13:42 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:42 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/78
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5
Subject of commit:
Constify target name, reloc name, and carsym name
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1d/1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=5: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
new KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1d/1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1d/1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Constify bfd_octets_per_byte and related functions
@ 2019-09-18 13:54 gdb-buildbot
2019-09-18 13:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 13:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 01c2b26160575ad4add68da8a043b3fa30defae4 ***
commit 01c2b26160575ad4add68da8a043b3fa30defae4
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Tue Sep 17 15:24:01 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 22:20:13 2019 +0930
Constify bfd_octets_per_byte and related functions
* archures.c (bfd_get_arch): Make param const.
(bfd_get_mach, bfd_arch_bits_per_byte): Likewise.
(bfd_arch_bits_per_address, bfd_octets_per_byte): Likewise.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8c5ce8b8b2..820c3bd5d7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * archures.c (bfd_get_arch): Make param const.
+ (bfd_get_mach, bfd_arch_bits_per_byte): Likewise.
+ (bfd_arch_bits_per_address, bfd_octets_per_byte): Likewise.
+ * bfd-in2.h: Regenerate.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* bfd-in.h (carsym.name): Make const.
diff --git a/bfd/archures.c b/bfd/archures.c
index 02c8e4ec93..1e6a0e1f1b 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -999,7 +999,7 @@ FUNCTION
bfd_get_arch
SYNOPSIS
- enum bfd_architecture bfd_get_arch (bfd *abfd);
+ enum bfd_architecture bfd_get_arch (const bfd *abfd);
DESCRIPTION
Return the enumerated type which describes the BFD @var{abfd}'s
@@ -1007,7 +1007,7 @@ DESCRIPTION
*/
enum bfd_architecture
-bfd_get_arch (bfd *abfd)
+bfd_get_arch (const bfd *abfd)
{
return abfd->arch_info->arch;
}
@@ -1017,7 +1017,7 @@ FUNCTION
bfd_get_mach
SYNOPSIS
- unsigned long bfd_get_mach (bfd *abfd);
+ unsigned long bfd_get_mach (const bfd *abfd);
DESCRIPTION
Return the long type which describes the BFD @var{abfd}'s
@@ -1025,7 +1025,7 @@ DESCRIPTION
*/
unsigned long
-bfd_get_mach (bfd *abfd)
+bfd_get_mach (const bfd *abfd)
{
return abfd->arch_info->mach;
}
@@ -1035,7 +1035,7 @@ FUNCTION
bfd_arch_bits_per_byte
SYNOPSIS
- unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+ unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
DESCRIPTION
Return the number of bits in one of the BFD @var{abfd}'s
@@ -1043,7 +1043,7 @@ DESCRIPTION
*/
unsigned int
-bfd_arch_bits_per_byte (bfd *abfd)
+bfd_arch_bits_per_byte (const bfd *abfd)
{
return abfd->arch_info->bits_per_byte;
}
@@ -1053,7 +1053,7 @@ FUNCTION
bfd_arch_bits_per_address
SYNOPSIS
- unsigned int bfd_arch_bits_per_address (bfd *abfd);
+ unsigned int bfd_arch_bits_per_address (const bfd *abfd);
DESCRIPTION
Return the number of bits in one of the BFD @var{abfd}'s
@@ -1061,7 +1061,7 @@ DESCRIPTION
*/
unsigned int
-bfd_arch_bits_per_address (bfd *abfd)
+bfd_arch_bits_per_address (const bfd *abfd)
{
return abfd->arch_info->bits_per_address;
}
@@ -1383,7 +1383,7 @@ FUNCTION
bfd_octets_per_byte
SYNOPSIS
- unsigned int bfd_octets_per_byte (bfd *abfd);
+ unsigned int bfd_octets_per_byte (const bfd *abfd);
DESCRIPTION
Return the number of octets (8-bit quantities) per target byte
@@ -1392,7 +1392,7 @@ DESCRIPTION
*/
unsigned int
-bfd_octets_per_byte (bfd *abfd)
+bfd_octets_per_byte (const bfd *abfd)
{
return bfd_arch_mach_octets_per_byte (bfd_get_arch (abfd),
bfd_get_mach (abfd));
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 135c1e5fbc..aec2143ea6 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2545,13 +2545,13 @@ void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
bfd_boolean bfd_default_set_arch_mach
(bfd *abfd, enum bfd_architecture arch, unsigned long mach);
-enum bfd_architecture bfd_get_arch (bfd *abfd);
+enum bfd_architecture bfd_get_arch (const bfd *abfd);
-unsigned long bfd_get_mach (bfd *abfd);
+unsigned long bfd_get_mach (const bfd *abfd);
-unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
-unsigned int bfd_arch_bits_per_address (bfd *abfd);
+unsigned int bfd_arch_bits_per_address (const bfd *abfd);
const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
@@ -2561,7 +2561,7 @@ const bfd_arch_info_type *bfd_lookup_arch
const char *bfd_printable_arch_mach
(enum bfd_architecture arch, unsigned long machine);
-unsigned int bfd_octets_per_byte (bfd *abfd);
+unsigned int bfd_octets_per_byte (const bfd *abfd);
unsigned int bfd_arch_mach_octets_per_byte
(enum bfd_architecture arch, unsigned long machine);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Re-generate many configure and Makefile.in files
@ 2019-09-18 14:17 gdb-buildbot
2019-09-18 14:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e0b2a78c83207340f6c4b5dbe02bec850dbb7def ***
commit e0b2a78c83207340f6c4b5dbe02bec850dbb7def
Author: Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Wed Sep 18 09:07:44 2019 -0400
Commit: Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 09:09:15 2019 -0400
Re-generate many configure and Makefile.in files
I get some spurious changes when running autoconf/automake for various
projects in the tree. This is likely because they were generated using
distro-patched tools last time.
I ran `autoreconf -f` in the various automake projects of the
binutils-gdb tree, and this is the result. The tools I am using have
been compiled from source, from the upstream release.
bfd/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
binutils/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
gas/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
* doc/Makefile.in: Re-generate.
gold/ChangeLog:
* testsuite/Makefile.in: Re-generate.
gprof/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
ld/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
opcodes/ChangeLog:
* Makefile.in: Re-generate.
* configure: Re-generate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 32c57b7963..86ea499c0e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+ * doc/Makefile.in: Re-generate.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 5578997e5d..9c14721fd8 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -438,7 +438,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/bfd/configure b/bfd/configure
index 10f187a692..e15957e2ce 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -793,7 +793,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -890,7 +889,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1143,15 +1141,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1289,7 +1278,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1442,7 +1431,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11740,7 +11728,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11743 "configure"
+#line 11731 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11846,7 +11834,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11849 "configure"
+#line 11837 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12235,7 +12223,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12281,7 +12269,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12305,7 +12293,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12350,7 +12338,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12374,7 +12362,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -16368,8 +16356,6 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
- free (data);
- free (data3);
return 0;
}
_ACEOF
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index d75411d2af..0115dfc406 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -375,7 +375,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a29de52599..4c4871be81 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+ * doc/Makefile.in: Re-generate.
+
2019-09-16 Phil Blundell <pb@pbcl.net>
* Makefile.in, configure. doc/Makefile.in: Regenerated.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index d1828e5fc2..16c078fdd3 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -541,7 +541,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/binutils/configure b/binutils/configure
index f8fe55c2a8..50f8d5b1a2 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -778,7 +778,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -871,7 +870,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1124,15 +1122,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1270,7 +1259,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1423,7 +1412,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11535,7 +11523,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11538 "configure"
+#line 11526 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11641,7 +11629,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11644 "configure"
+#line 11632 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12028,7 +12016,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12074,7 +12062,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12098,7 +12086,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12143,7 +12131,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12167,7 +12155,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -13734,8 +13722,6 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
- free (data);
- free (data3);
return 0;
}
_ACEOF
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
index c66caa832e..a0777d8fcc 100644
--- a/binutils/doc/Makefile.in
+++ b/binutils/doc/Makefile.in
@@ -374,7 +374,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f22727c7cc..6735017792 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+ * doc/Makefile.in: Re-generate.
+
2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
* config/tc-riscv.c (riscv_multi_subset_supports): Handle
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 595295e555..21545d25b7 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -402,7 +402,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gas/configure b/gas/configure
index 5cfd52f712..144ead49c4 100755
--- a/gas/configure
+++ b/gas/configure
@@ -770,7 +770,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -868,7 +867,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1121,15 +1119,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1267,7 +1256,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1420,7 +1409,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11355,7 +11343,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11358 "configure"
+#line 11346 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11461,7 +11449,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11464 "configure"
+#line 11452 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11848,7 +11836,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11894,7 +11882,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11918,7 +11906,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11963,7 +11951,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11987,7 +11975,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 854ee9daef..7c4189a8c6 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -364,7 +364,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 77a72e3742..9e45c0fb07 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * testsuite/Makefile.in: Re-generate.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
index dac0db21a3..9f29dc638c 100644
--- a/gold/testsuite/Makefile.in
+++ b/gold/testsuite/Makefile.in
@@ -2708,7 +2708,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 737b2cd3b5..a2ebab5e04 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+
2019-09-16 Phil Blundell <pb@pbcl.net>
* Makefile.in, configure: Regenerated.
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index d5e883d4de..451fe9585d 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -424,7 +424,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/gprof/configure b/gprof/configure
index 3c414ce75b..cbb3aced46 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -751,7 +751,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -836,7 +835,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1089,15 +1087,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1235,7 +1224,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1388,7 +1377,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11202,7 +11190,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11205 "configure"
+#line 11193 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11308,7 +11296,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11311 "configure"
+#line 11299 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11695,7 +11683,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11741,7 +11729,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11765,7 +11753,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11810,7 +11798,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -11834,7 +11822,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b863676ccd..b6ac44e1f8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* ldlang.c (stricpy, strcut, name_compare): Constify params.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 057956139d..d509f62bd2 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -521,7 +521,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/ld/configure b/ld/configure
index 62bb4e45e9..2d6ca5c044 100755
--- a/ld/configure
+++ b/ld/configure
@@ -786,7 +786,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -889,7 +888,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1142,15 +1140,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1288,7 +1277,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1441,7 +1430,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -12039,7 +12027,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12042 "configure"
+#line 12030 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12145,7 +12133,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12148 "configure"
+#line 12136 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15548,7 +15536,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15594,7 +15582,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15618,7 +15606,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15663,7 +15651,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15687,7 +15675,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -17200,8 +17188,6 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
- free (data);
- free (data3);
return 0;
}
_ACEOF
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 8f2ca7257e..d5b412275f 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * Makefile.in: Re-generate.
+ * configure: Re-generate.
+
2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
* riscv-opc.c (riscv_opcodes): Change subset field
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index ee8b31153f..74faef85b9 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -408,7 +408,6 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
-runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/opcodes/configure b/opcodes/configure
index 8062312c28..6a0b919d0f 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -769,7 +769,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -855,7 +854,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1108,15 +1106,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1254,7 +1243,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1407,7 +1396,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -11451,7 +11439,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11454 "configure"
+#line 11442 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11557,7 +11545,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11560 "configure"
+#line 11548 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't use bfd_get_* macro to set bfd fields
@ 2019-09-18 14:17 gdb-buildbot
2019-09-18 14:10 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ed48ec2e6ec5514f01b9b3a810d6ddf39651114b ***
commit ed48ec2e6ec5514f01b9b3a810d6ddf39651114b
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 15:07:33 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 22:21:58 2019 +0930
Don't use bfd_get_* macro to set bfd fields
* aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
macros.
* pdp11.c (slurp_symbol_table): Likewise.
* som.c (som_slurp_symbol_table): Likewise.
* coff-ppc.c (ppc_bfd_coff_final_link): Likewise.
* coffcode.h (coff_slurp_symbol_table): Likewise.
* cofflink.c (_bfd_coff_final_link): Likewise.
* ecoff.c (ecoff_slurp_symbolic_header): Likewise.
(_bfd_ecoff_slurp_symbolic_info): Likewise.
(_bfd_ecoff_slurp_symbol_table): Likewise.
(_bfd_ecoff_bfd_final_link): Likewise.
* elf.c (_bfd_elf_canonicalize_symtab): Likewise.
* elflink.c (elf_link_output_symstrtab): Likewise.
(bfd_elf_final_link): Likewise.
* peicode.h (pe_ILF_build_a_bfd): Likewise.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
* aoutx.h (some_aout_object_p, slurp_symbol_table): Don't set
start_address or symcount using bfd_get macros.
* coffgen.c (coff_real_object_p): Likewise.
* pdp11.c (some_aout_object_p, slurp_symbol_table): Likewise.
* som.c (som_object_setup, som_slurp_symbol_table): Likewise.
* elfcore.h (elf_core_file_p): Don't set start_address using
bfd_get macro.
* elf.c (_bfd_elf_canonicalize_dynamic_symtab): Don't set dynsymcount
using bfd_get macro.
* bfd.c (bfd_set_file_flags): Don't set flags using bfd_get macro.
* linker.c (bfd_generic_link_read_symbols): Don't set outsymbols
or symcount using bfd_get macros.
(_bfd_generic_final_link, generic_add_output_symbol): Likewise.
* syms.c (bfd_set_symtab): Likewise.
* vms-alpha.c (alpha_vms_bfd_final_link): Likewise.
* archive.c (do_slurp_bsd_armap): Don't set has_armap using
bfd_has_map macro.
(do_slurp_coff_armap, bfd_slurp_armap): Likewise.
* archive64.c (_bfd_archive_64_bit_slurp_armap): Likewise.
* coff-rs6000.c (_bfd_xcoff_slurp_armap): Likewise.
* coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
* ecoff.c (_bfd_ecoff_slurp_armap): Likewise.
* som.c (som_slurp_armap): Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 820c3bd5d7..32c57b7963 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,45 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * aoutx.h (slurp_symbol_table): Don't set symcount using bfd_get
+ macros.
+ * pdp11.c (slurp_symbol_table): Likewise.
+ * som.c (som_slurp_symbol_table): Likewise.
+ * coff-ppc.c (ppc_bfd_coff_final_link): Likewise.
+ * coffcode.h (coff_slurp_symbol_table): Likewise.
+ * cofflink.c (_bfd_coff_final_link): Likewise.
+ * ecoff.c (ecoff_slurp_symbolic_header): Likewise.
+ (_bfd_ecoff_slurp_symbolic_info): Likewise.
+ (_bfd_ecoff_slurp_symbol_table): Likewise.
+ (_bfd_ecoff_bfd_final_link): Likewise.
+ * elf.c (_bfd_elf_canonicalize_symtab): Likewise.
+ * elflink.c (elf_link_output_symstrtab): Likewise.
+ (bfd_elf_final_link): Likewise.
+ * peicode.h (pe_ILF_build_a_bfd): Likewise.
+ * xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
+ * aoutx.h (some_aout_object_p, slurp_symbol_table): Don't set
+ start_address or symcount using bfd_get macros.
+ * coffgen.c (coff_real_object_p): Likewise.
+ * pdp11.c (some_aout_object_p, slurp_symbol_table): Likewise.
+ * som.c (som_object_setup, som_slurp_symbol_table): Likewise.
+ * elfcore.h (elf_core_file_p): Don't set start_address using
+ bfd_get macro.
+ * elf.c (_bfd_elf_canonicalize_dynamic_symtab): Don't set dynsymcount
+ using bfd_get macro.
+ * bfd.c (bfd_set_file_flags): Don't set flags using bfd_get macro.
+ * linker.c (bfd_generic_link_read_symbols): Don't set outsymbols
+ or symcount using bfd_get macros.
+ (_bfd_generic_final_link, generic_add_output_symbol): Likewise.
+ * syms.c (bfd_set_symtab): Likewise.
+ * vms-alpha.c (alpha_vms_bfd_final_link): Likewise.
+ * archive.c (do_slurp_bsd_armap): Don't set has_armap using
+ bfd_has_map macro.
+ (do_slurp_coff_armap, bfd_slurp_armap): Likewise.
+ * archive64.c (_bfd_archive_64_bit_slurp_armap): Likewise.
+ * coff-rs6000.c (_bfd_xcoff_slurp_armap): Likewise.
+ * coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
+ * ecoff.c (_bfd_ecoff_slurp_armap): Likewise.
+ * som.c (som_slurp_armap): Likewise.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* archures.c (bfd_get_arch): Make param const.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index e5d8dcf390..cd50b44e60 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -511,10 +511,10 @@ NAME (aout, some_aout_object_p) (bfd *abfd,
was called. */
abort ();
- bfd_get_start_address (abfd) = execp->a_entry;
+ abfd->start_address = execp->a_entry;
obj_aout_symbols (abfd) = NULL;
- bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist);
+ abfd->symcount = execp->a_syms / sizeof (struct external_nlist);
/* The default relocation entry size is that of traditional V7 Unix. */
obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
@@ -1782,7 +1782,7 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
return FALSE;
}
- bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
+ abfd->symcount = obj_aout_external_sym_count (abfd);
obj_aout_symbols (abfd) = cached;
diff --git a/bfd/archive.c b/bfd/archive.c
index ef71e8a796..dc0400d1cf 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -1013,7 +1013,7 @@ do_slurp_bsd_armap (bfd *abfd)
/* FIXME, we should provide some way to free raw_ardata when
we are done using the strings from it. For now, it seems
to be allocated on an objalloc anyway... */
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
return TRUE;
}
@@ -1105,7 +1105,7 @@ do_slurp_coff_armap (bfd *abfd)
/* Pad to an even boundary if you have to. */
ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
bfd_release (abfd, raw_armap);
/* Check for a second archive header (as used by PE). */
@@ -1188,7 +1188,7 @@ bfd_slurp_armap (bfd *abfd)
return do_slurp_bsd_armap (abfd);
}
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
\f
diff --git a/bfd/archive64.c b/bfd/archive64.c
index a2c628e2b5..37fecc28d4 100644
--- a/bfd/archive64.c
+++ b/bfd/archive64.c
@@ -66,7 +66,7 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
if (! CONST_STRNEQ (nextname, "/SYM64/ "))
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -137,7 +137,7 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
/* Pad to an even boundary if you have to. */
ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
bfd_release (abfd, raw_armap);
return TRUE;
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 91403508a9..c973c780b4 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1418,7 +1418,7 @@ bfd_set_file_flags (bfd *abfd, flagword flags)
return FALSE;
}
- bfd_get_file_flags (abfd) = flags;
+ abfd->flags = flags;
if ((flags & bfd_applicable_file_flags (abfd)) != flags)
{
bfd_set_error (bfd_error_invalid_operation);
diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c
index 40824c5cb0..ab5c2c837c 100644
--- a/bfd/coff-ppc.c
+++ b/bfd/coff-ppc.c
@@ -2420,9 +2420,9 @@ ppc_bfd_coff_final_link (bfd *abfd, struct bfd_link_info *info)
_bfd_stringtab_free (flaginfo.strtab);
- /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+ /* Setting symcount to 0 will cause write_object_contents to
not try to write out the symbols. */
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
return TRUE;
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 4620254aae..bdbb499a4a 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1243,7 +1243,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
if (xcoff_ardata (abfd) == NULL)
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -1255,7 +1255,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
GET_VALUE_IN_FIELD (off, xcoff_ardata (abfd)->symoff, 10);
if (off == 0)
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -1310,7 +1310,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
GET_VALUE_IN_FIELD (off, xcoff_ardata_big (abfd)->symoff, 10);
if (off == 0)
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -1373,7 +1373,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
}
bfd_ardata (abfd)->symdef_count = c;
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
return TRUE;
}
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index b6b189fd2d..1c80a9df88 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1906,7 +1906,7 @@ xcoff64_slurp_armap (bfd *abfd)
if (xcoff_ardata (abfd) == NULL)
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -1914,7 +1914,7 @@ xcoff64_slurp_armap (bfd *abfd)
(const char **) NULL, 10);
if (off == 0)
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -1976,7 +1976,7 @@ xcoff64_slurp_armap (bfd *abfd)
}
bfd_ardata (abfd)->symdef_count = c;
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
return TRUE;
}
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 054e45c960..dd3189fbd3 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -4809,7 +4809,7 @@ coff_slurp_symbol_table (bfd * abfd)
obj_symbols (abfd) = cached_area;
obj_raw_syments (abfd) = native_symbols;
- bfd_get_symcount (abfd) = number_of_symbols;
+ abfd->symcount = number_of_symbols;
obj_convert (abfd) = table_ptr;
/* Slurp the line tables for each section too. */
{
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 209b01d5d0..80a9a2ab9a 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -257,14 +257,14 @@ coff_real_object_p (bfd *abfd,
if ((internal_f->f_flags & F_EXEC) != 0)
abfd->flags |= D_PAGED;
- bfd_get_symcount (abfd) = internal_f->f_nsyms;
+ abfd->symcount = internal_f->f_nsyms;
if (internal_f->f_nsyms)
abfd->flags |= HAS_SYMS;
if (internal_a != (struct internal_aouthdr *) NULL)
- bfd_get_start_address (abfd) = internal_a->entry;
+ abfd->start_address = internal_a->entry;
else
- bfd_get_start_address (abfd) = 0;
+ abfd->start_address = 0;
/* Set up the tdata area. ECOFF uses its own routine, and overrides
abfd->flags. */
@@ -309,7 +309,7 @@ coff_real_object_p (bfd *abfd,
fail2:
abfd->tdata.any = tdata_save;
abfd->flags = oflags;
- bfd_get_start_address (abfd) = ostart;
+ abfd->start_address = ostart;
return (const bfd_target *) NULL;
}
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 5e02760154..34d68c93b5 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1186,9 +1186,9 @@ _bfd_coff_final_link (bfd *abfd,
_bfd_stringtab_free (flaginfo.strtab);
- /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+ /* Setting symcount to 0 will cause write_object_contents to
not try to write out the symbols. */
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
return TRUE;
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index f9844b3b4b..1e6f4d219c 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -446,7 +446,7 @@ ecoff_slurp_symbolic_header (bfd *abfd)
/* See whether there is a symbolic header. */
if (ecoff_data (abfd)->sym_filepos == 0)
{
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
return TRUE;
}
@@ -479,8 +479,7 @@ ecoff_slurp_symbolic_header (bfd *abfd)
}
/* Now we can get the correct number of symbols. */
- bfd_get_symcount (abfd) = (internal_symhdr->isymMax
- + internal_symhdr->iextMax);
+ abfd->symcount = internal_symhdr->isymMax + internal_symhdr->iextMax;
if (raw != NULL)
free (raw);
@@ -521,7 +520,7 @@ _bfd_ecoff_slurp_symbolic_info (bfd *abfd,
return TRUE;
if (ecoff_data (abfd)->sym_filepos == 0)
{
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
return TRUE;
}
@@ -965,7 +964,7 @@ _bfd_ecoff_slurp_symbol_table (bfd *abfd)
the symbol count and warning the user. */
if (internal_ptr - internal < (ptrdiff_t) bfd_get_symcount (abfd))
{
- bfd_get_symcount (abfd) = internal_ptr - internal;
+ abfd->symcount = internal_ptr - internal;
_bfd_error_handler
/* xgettext:c-format */
(_("%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"),
@@ -2905,7 +2904,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
&& nextname[ARMAP_OBJECT_ENDIAN_INDEX] != ARMAP_LITTLE_ENDIAN)
|| ! strneq (nextname + ARMAP_END_INDEX, ARMAP_END, sizeof ARMAP_END - 1))
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -3018,7 +3017,7 @@ _bfd_ecoff_slurp_armap (bfd *abfd)
/* Pad to an even boundary. */
ardata->first_file_filepos += ardata->first_file_filepos % 2;
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
return TRUE;
}
@@ -4459,7 +4458,7 @@ _bfd_ecoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
}
}
- bfd_get_symcount (abfd) = symhdr->iextMax + symhdr->isymMax;
+ abfd->symcount = symhdr->iextMax + symhdr->isymMax;
ecoff_data (abfd)->linker = TRUE;
diff --git a/bfd/elf.c b/bfd/elf.c
index ec4c643d59..ecd348e1a5 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -8405,7 +8405,7 @@ _bfd_elf_canonicalize_symtab (bfd *abfd, asymbol **allocation)
long symcount = bed->s->slurp_symbol_table (abfd, allocation, FALSE);
if (symcount >= 0)
- bfd_get_symcount (abfd) = symcount;
+ abfd->symcount = symcount;
return symcount;
}
@@ -8417,7 +8417,7 @@ _bfd_elf_canonicalize_dynamic_symtab (bfd *abfd,
long symcount = bed->s->slurp_symbol_table (abfd, allocation, TRUE);
if (symcount >= 0)
- bfd_get_dynamic_symcount (abfd) = symcount;
+ abfd->dynsymcount = symcount;
return symcount;
}
diff --git a/bfd/elfcore.h b/bfd/elfcore.h
index 395feb5ef3..3550eaac27 100644
--- a/bfd/elfcore.h
+++ b/bfd/elfcore.h
@@ -305,7 +305,7 @@ elf_core_file_p (bfd *abfd)
}
/* Save the entry point from the ELF header. */
- bfd_get_start_address (abfd) = i_ehdrp->e_entry;
+ abfd->start_address = i_ehdrp->e_entry;
return abfd->xvec;
wrong:
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 16d83bb7a3..8f18be07db 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -9481,7 +9481,7 @@ elf_link_output_symstrtab (struct elf_final_link_info *flinfo,
hash_table->strtab[hash_table->strtabcount].destshndx_index
= flinfo->symshndxbuf ? bfd_get_symcount (flinfo->output_bfd) : 0;
- bfd_get_symcount (flinfo->output_bfd) += 1;
+ flinfo->output_bfd->symcount += 1;
hash_table->strtabcount += 1;
return 1;
@@ -12012,7 +12012,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
/* Figure out the file positions for everything but the symbol table
and the relocs. We set symcount to force assign_section_numbers
to create a symbol table. */
- bfd_get_symcount (abfd) = info->strip != strip_all || emit_relocs;
+ abfd->symcount = info->strip != strip_all || emit_relocs;
BFD_ASSERT (! abfd->output_has_begun);
if (! _bfd_elf_compute_section_file_positions (abfd, info))
goto error_return;
@@ -12057,7 +12057,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
.symtab, .strtab, and non-loaded reloc sections. We start the
.symtab section at the current file position, and write directly
to it. We build the .strtab section in memory. */
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
/* sh_name is set in prep_headers. */
symtab_hdr->sh_type = SHT_SYMTAB;
diff --git a/bfd/linker.c b/bfd/linker.c
index f6eef93259..8aec0d2358 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -810,14 +810,13 @@ bfd_generic_link_read_symbols (bfd *abfd)
symsize = bfd_get_symtab_upper_bound (abfd);
if (symsize < 0)
return FALSE;
- bfd_get_outsymbols (abfd) = (struct bfd_symbol **) bfd_alloc (abfd,
- symsize);
+ abfd->outsymbols = bfd_alloc (abfd, symsize);
if (bfd_get_outsymbols (abfd) == NULL && symsize != 0)
return FALSE;
symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd));
if (symcount < 0)
return FALSE;
- bfd_get_symcount (abfd) = symcount;
+ abfd->symcount = symcount;
}
return TRUE;
@@ -1824,8 +1823,8 @@ _bfd_generic_final_link (bfd *abfd, struct bfd_link_info *info)
size_t outsymalloc;
struct generic_write_global_symbol_info wginfo;
- bfd_get_outsymbols (abfd) = NULL;
- bfd_get_symcount (abfd) = 0;
+ abfd->outsymbols = NULL;
+ abfd->symcount = 0;
outsymalloc = 0;
/* Mark all sections which will be included in the output file. */
@@ -1958,12 +1957,12 @@ generic_add_output_symbol (bfd *output_bfd, size_t *psymalloc, asymbol *sym)
newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt);
if (newsyms == NULL)
return FALSE;
- bfd_get_outsymbols (output_bfd) = newsyms;
+ output_bfd->outsymbols = newsyms;
}
- bfd_get_outsymbols (output_bfd) [bfd_get_symcount (output_bfd)] = sym;
+ output_bfd->outsymbols[output_bfd->symcount] = sym;
if (sym != NULL)
- ++ bfd_get_symcount (output_bfd);
+ ++output_bfd->symcount;
return TRUE;
}
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 1d34047fdc..f7f3128409 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -505,10 +505,10 @@ NAME (aout, some_aout_object_p) (bfd *abfd,
abort ();
}
- bfd_get_start_address (abfd) = execp->a_entry;
+ abfd->start_address = execp->a_entry;
obj_aout_symbols (abfd) = NULL;
- bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist);
+ abfd->symcount = execp->a_syms / sizeof (struct external_nlist);
/* The default relocation entry size is that of traditional V7 Unix. */
obj_reloc_entry_size (abfd) = RELOC_SIZE;
@@ -1512,7 +1512,7 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
return FALSE;
}
- bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd);
+ abfd->symcount = obj_aout_external_sym_count (abfd);
obj_aout_symbols (abfd) = cached;
diff --git a/bfd/peicode.h b/bfd/peicode.h
index 2a564fec98..679474ecd1 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -1093,7 +1093,7 @@ pe_ILF_build_a_bfd (bfd * abfd,
/* Point the bfd at the symbol table. */
obj_symbols (abfd) = vars.sym_cache;
- bfd_get_symcount (abfd) = vars.sym_index;
+ abfd->symcount = vars.sym_index;
obj_raw_syments (abfd) = vars.native_syms;
obj_raw_syment_count (abfd) = vars.sym_index;
diff --git a/bfd/som.c b/bfd/som.c
index cf78843452..4c9dcaee67 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -2031,12 +2031,12 @@ som_object_setup (bfd *abfd,
|| (aux_hdrp->exec_entry & 0x3) != 0
|| ! found)
{
- bfd_get_start_address (abfd) = aux_hdrp->exec_flags;
+ abfd->start_address = aux_hdrp->exec_flags;
obj_som_exec_data (abfd)->exec_flags = aux_hdrp->exec_entry;
}
else
{
- bfd_get_start_address (abfd) = aux_hdrp->exec_entry + current_offset;
+ abfd->start_address = aux_hdrp->exec_entry + current_offset;
obj_som_exec_data (abfd)->exec_flags = aux_hdrp->exec_flags;
}
}
@@ -2044,7 +2044,7 @@ som_object_setup (bfd *abfd,
obj_som_exec_data (abfd)->version_id = file_hdrp->version_id;
bfd_default_set_arch_mach (abfd, bfd_arch_hppa, pa10);
- bfd_get_symcount (abfd) = file_hdrp->symbol_total;
+ abfd->symcount = file_hdrp->symbol_total;
/* Initialize the saved symbol table and string table to NULL.
Save important offsets and sizes from the SOM header into
@@ -4792,7 +4792,7 @@ som_slurp_symbol_table (bfd *abfd)
/* We modify the symbol count to record the number of BFD symbols we
created. */
- bfd_get_symcount (abfd) = sym - symbase;
+ abfd->symcount = sym - symbase;
/* Save our results and return success. */
obj_som_symtab (abfd) = symbase;
@@ -6131,7 +6131,7 @@ som_slurp_armap (bfd *abfd)
/* For archives without .o files there is no symbol table. */
if (! CONST_STRNEQ (nextname, "/ "))
{
- bfd_has_map (abfd) = FALSE;
+ abfd->has_armap = FALSE;
return TRUE;
}
@@ -6201,7 +6201,7 @@ som_slurp_armap (bfd *abfd)
return FALSE;
/* Notify the generic archive code that we have a symbol map. */
- bfd_has_map (abfd) = TRUE;
+ abfd->has_armap = TRUE;
return TRUE;
}
diff --git a/bfd/syms.c b/bfd/syms.c
index da1c90d52e..4d532b2cd2 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -455,8 +455,8 @@ bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int symcount)
return FALSE;
}
- bfd_get_outsymbols (abfd) = location;
- bfd_get_symcount (abfd) = symcount;
+ abfd->outsymbols = location;
+ abfd->symcount = symcount;
return TRUE;
}
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 69822a2ce6..8d2a2dff62 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -8912,8 +8912,8 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
return FALSE;
}
- bfd_get_outsymbols (abfd) = NULL;
- bfd_get_symcount (abfd) = 0;
+ abfd->outsymbols = NULL;
+ abfd->symcount = 0;
/* Mark all sections which will be included in the output file. */
for (o = abfd->sections; o != NULL; o = o->next)
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index f9c12e40f3..1a2f87c4b0 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -6412,9 +6412,9 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
goto error_return;
}
- /* Setting bfd_get_symcount to 0 will cause write_object_contents to
+ /* Setting symcount to 0 will cause write_object_contents to
not try to write out the symbols. */
- bfd_get_symcount (abfd) = 0;
+ abfd->symcount = 0;
return TRUE;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd_asymbol_* macros
@ 2019-09-18 14:30 gdb-buildbot
2019-09-18 14:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 14:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e6f7f6d14f7e1acba0cf41726616a270e7d3c121 ***
commit e6f7f6d14f7e1acba0cf41726616a270e7d3c121
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Sep 18 16:25:19 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Wed Sep 18 23:07:31 2019 +0930
bfd_asymbol_* macros
The main point of this patch is to give bfd_get_section a better name,
bfd_asymbol_section.
bfd/
* bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
(bfd_get_output_section): Delete.
(bfd_asymbol_base): Delete.
(bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
(bfd_asymbol_bfd, bfd_asymbol_flavour): Tidy.
(bfd_set_asymbol_name): New macro.
* bfd-in2.h: Regenerate.
* aout-cris.c: Update throughout to use bfd_asymbol_section.
* aoutx.h: Likewise.
* cofflink.c: Likewise.
* dwarf2.c: Likewise.
* ecoff.c: Likewise.
* elf.c: Likewise.
* elf32-arm.c: Likewise.
* elf32-mips.c: Likewise.
* elf32-score.c: Likewise.
* elf32-score7.c: Likewise.
* elfn32-mips.c: Likewise.
* elfnn-aarch64.c: Likewise.
* elfxx-mips.c: Likewise.
* linker.c: Likewise.
* pdp11.c: Likewise.
* elf64-mmix.c (mmix_elf_reloc): Expand bfd_get_output_section.
binutils/
* nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
* objcopy.c: Likewise.
* objdump.c: Likewise.
* rdcoff.c: Likewise.
* objcopy.c (create_new_symbol): Use bfd_set_asymbol_name.
(filter_symbols): Likewise.
gas/
* symbols.c (S_IS_LOCAL): Update bfd_get_section to
bfd_asymbol_section.
gdb/
* arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
to bfd_asymbol_section.
ld/
* ldcref.c (check_reloc_refs): Update bfd_get_section to
bfd_asymbol_section.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 86ea499c0e..63f6c4c33f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,29 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
+ (bfd_get_output_section): Delete.
+ (bfd_asymbol_base): Delete.
+ (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+ (bfd_asymbol_bfd, bfd_asymbol_flavour): Tidy.
+ (bfd_set_asymbol_name): New macro.
+ * bfd-in2.h: Regenerate.
+ * aout-cris.c: Update throughout to use bfd_asymbol_section.
+ * aoutx.h: Likewise.
+ * cofflink.c: Likewise.
+ * dwarf2.c: Likewise.
+ * ecoff.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-mips.c: Likewise.
+ * elf32-score.c: Likewise.
+ * elf32-score7.c: Likewise.
+ * elfn32-mips.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * linker.c: Likewise.
+ * pdp11.c: Likewise.
+ * elf64-mmix.c (mmix_elf_reloc): Part expand bfd_get_output_section.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* Makefile.in: Re-generate.
diff --git a/bfd/aout-cris.c b/bfd/aout-cris.c
index feed5ed585..31b003520d 100644
--- a/bfd/aout-cris.c
+++ b/bfd/aout-cris.c
@@ -169,14 +169,14 @@ MY (swap_ext_reloc_out) (bfd *abfd,
from the abs section, or as a symbol which has an abs value.
check for that here. */
- if (bfd_is_abs_section (bfd_get_section (sym)))
+ if (bfd_is_abs_section (bfd_asymbol_section (sym)))
{
r_extern = 0;
r_index = N_ABS;
}
else if ((sym->flags & BSF_SECTION_SYM) == 0)
{
- if (bfd_is_und_section (bfd_get_section (sym))
+ if (bfd_is_und_section (bfd_asymbol_section (sym))
/* Remember to check for weak symbols; they count as global. */
|| (sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
r_extern = 1;
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index cd50b44e60..859153be10 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1570,7 +1570,7 @@ translate_to_native_sym_flags (bfd *abfd,
to another. */
sym_pointer->e_type[0] &= ~N_TYPE;
- sec = bfd_get_section (cache_ptr);
+ sec = bfd_asymbol_section (cache_ptr);
off = 0;
if (sec == NULL)
@@ -2064,14 +2064,14 @@ NAME (aout, swap_ext_reloc_out) (bfd *abfd,
Absolute symbols can come in in two ways, either as an offset
from the abs section, or as a symbol which has an abs value.
check for that here. */
- if (bfd_is_abs_section (bfd_get_section (sym)))
+ if (bfd_is_abs_section (bfd_asymbol_section (sym)))
{
r_extern = 0;
r_index = N_ABS;
}
else if ((sym->flags & BSF_SECTION_SYM) == 0)
{
- if (bfd_is_und_section (bfd_get_section (sym))
+ if (bfd_is_und_section (bfd_asymbol_section (sym))
|| (sym->flags & BSF_GLOBAL) != 0)
r_extern = 1;
else
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 6c72acb705..5a30344350 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -240,18 +240,15 @@ typedef unsigned long symindex;
/* General purpose part of a symbol X;
target specific parts are in libcoff.h, libaout.h, etc. */
-#define bfd_get_section(x) ((x)->section)
-#define bfd_get_output_section(x) ((x)->section->output_section)
-#define bfd_set_section(x,y) ((x)->section) = (y)
-#define bfd_asymbol_base(x) ((x)->section->vma)
-#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
-#define bfd_asymbol_name(x) ((x)->name)
-/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
-#define bfd_asymbol_bfd(x) ((x)->the_bfd)
-#define bfd_asymbol_flavour(x) \
- (((x)->flags & BSF_SYNTHETIC) != 0 \
+#define bfd_asymbol_section(sy) ((sy)->section)
+#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
+#define bfd_asymbol_name(sy) ((sy)->name)
+#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
+#define bfd_asymbol_flavour(sy) \
+ (((sy)->flags & BSF_SYNTHETIC) != 0 \
? bfd_target_unknown_flavour \
- : bfd_asymbol_bfd (x)->xvec->flavour)
+ : (sy)->the_bfd->xvec->flavour)
+#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
/* A canonical archive symbol. */
/* This is a type pun with struct ranlib on purpose! */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index aec2143ea6..6542d403e0 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -247,18 +247,15 @@ typedef unsigned long symindex;
/* General purpose part of a symbol X;
target specific parts are in libcoff.h, libaout.h, etc. */
-#define bfd_get_section(x) ((x)->section)
-#define bfd_get_output_section(x) ((x)->section->output_section)
-#define bfd_set_section(x,y) ((x)->section) = (y)
-#define bfd_asymbol_base(x) ((x)->section->vma)
-#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
-#define bfd_asymbol_name(x) ((x)->name)
-/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
-#define bfd_asymbol_bfd(x) ((x)->the_bfd)
-#define bfd_asymbol_flavour(x) \
- (((x)->flags & BSF_SYNTHETIC) != 0 \
+#define bfd_asymbol_section(sy) ((sy)->section)
+#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
+#define bfd_asymbol_name(sy) ((sy)->name)
+#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
+#define bfd_asymbol_flavour(sy) \
+ (((sy)->flags & BSF_SYNTHETIC) != 0 \
? bfd_target_unknown_flavour \
- : bfd_asymbol_bfd (x)->xvec->flavour)
+ : (sy)->the_bfd->xvec->flavour)
+#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
/* A canonical archive symbol. */
/* This is a type pun with struct ranlib on purpose! */
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 34d68c93b5..7bcc1ca77d 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -902,7 +902,7 @@ _bfd_coff_final_link (bfd *abfd,
bfd_asymbol_name(sym), FALSE, FALSE)
== NULL))
|| (((flaginfo.info->discard == discard_sec_merge
- && (bfd_get_section (sym)->flags & SEC_MERGE)
+ && (bfd_asymbol_section (sym)->flags & SEC_MERGE)
&& ! bfd_link_relocatable (flaginfo.info))
|| flaginfo.info->discard == discard_l)
&& bfd_is_local_label_name (sub, bfd_asymbol_name(sym))))
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index ed6dcd48c7..575b082e1d 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -2736,7 +2736,7 @@ lookup_symbol_in_function_table (struct comp_unit *unit,
bfd_vma best_fit_len = 0;
struct arange *arange;
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_get_section (sym);
+ asection *sec = bfd_asymbol_section (sym);
for (each_func = unit->function_table;
each_func;
@@ -2784,7 +2784,7 @@ lookup_symbol_in_variable_table (struct comp_unit *unit,
unsigned int *linenumber_ptr)
{
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_get_section (sym);
+ asection *sec = bfd_asymbol_section (sym);
struct varinfo* each;
for (each = unit->variable_table; each; each = each->prev_var)
@@ -4048,7 +4048,7 @@ info_hash_lookup_funcinfo (struct info_hash_table *hash_table,
struct info_list_node *node;
struct arange *arange;
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_get_section (sym);
+ asection *sec = bfd_asymbol_section (sym);
for (node = lookup_info_hash_table (hash_table, name);
node;
@@ -4096,7 +4096,7 @@ info_hash_lookup_varinfo (struct info_hash_table *hash_table,
unsigned int *linenumber_ptr)
{
const char *name = bfd_asymbol_name (sym);
- asection *sec = bfd_get_section (sym);
+ asection *sec = bfd_asymbol_section (sym);
struct varinfo* each;
struct info_list_node *node;
@@ -4695,7 +4695,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd,
if (do_line)
{
BFD_ASSERT (section == NULL && offset == 0 && functionname_ptr == NULL);
- section = bfd_get_section (symbol);
+ section = bfd_asymbol_section (symbol);
addr = symbol->value;
}
else
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 1e6f4d219c..c06fa5ec7f 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -2312,7 +2312,7 @@ ecoff_get_extr (asymbol *sym, EXTR *esym)
symbol. */
if ((esym->asym.sc == scUndefined
|| esym->asym.sc == scSUndefined)
- && ! bfd_is_und_section (bfd_get_section (sym)))
+ && ! bfd_is_und_section (bfd_asymbol_section (sym)))
esym->asym.sc = scAbs;
/* Adjust the FDR index for the symbol by that used for the input
@@ -2719,7 +2719,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
{ _RCONST, RELOC_SECTION_RCONST }
};
- name = bfd_get_section_name (abfd, bfd_get_section (sym));
+ name = bfd_get_section_name (abfd, bfd_asymbol_section (sym));
for (j = 0; j < ARRAY_SIZE (section_symndx); j++)
if (streq (name, section_symndx[j].name))
diff --git a/bfd/elf.c b/bfd/elf.c
index ecd348e1a5..1a1eed9085 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -4057,8 +4057,8 @@ sym_is_global (bfd *abfd, asymbol *sym)
return (*bed->elf_backend_sym_is_global) (abfd, sym);
return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
- || bfd_is_und_section (bfd_get_section (sym))
- || bfd_is_com_section (bfd_get_section (sym)));
+ || bfd_is_und_section (bfd_asymbol_section (sym))
+ || bfd_is_com_section (bfd_asymbol_section (sym)));
}
/* Filter global symbols of ABFD to include in the import library. All
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index b675fc60c1..e29a60abf1 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -16076,7 +16076,7 @@ arm_elf_find_function (bfd * abfd,
BFD_ARM_SPECIAL_SYM_TYPE_ANY))
continue;
/* Fall through. */
- if (bfd_get_section (&q->symbol) == section
+ if (bfd_asymbol_section (&q->symbol) == section
&& q->symbol.value >= low_func
&& q->symbol.value <= offset)
{
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 9f8f2bdc26..74300a11e9 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -2281,8 +2281,8 @@ mips_elf_sym_is_global (bfd *abfd ATTRIBUTE_UNUSED, asymbol *sym)
return (sym->flags & BSF_SECTION_SYM) == 0;
else
return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
- || bfd_is_und_section (bfd_get_section (sym))
- || bfd_is_com_section (bfd_get_section (sym)));
+ || bfd_is_und_section (bfd_asymbol_section (sym))
+ || bfd_is_com_section (bfd_asymbol_section (sym)));
}
\f
/* Set the right machine number for a MIPS ELF file. */
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index 6390309f52..1bbf64fe6d 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -596,8 +596,8 @@ score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
bfd *output_bfd, char **error_message)
{
if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (symbol))
- || bfd_is_com_section (bfd_get_section (symbol)))
+ || bfd_is_und_section (bfd_asymbol_section (symbol))
+ || bfd_is_com_section (bfd_asymbol_section (symbol)))
/* The relocation is against a global symbol. */
return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
input_section, output_bfd,
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index ea0ccd04e9..51a5fb106d 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -497,8 +497,8 @@ score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
bfd *output_bfd, char **error_message)
{
if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (symbol))
- || bfd_is_com_section (bfd_get_section (symbol)))
+ || bfd_is_und_section (bfd_asymbol_section (symbol))
+ || bfd_is_com_section (bfd_asymbol_section (symbol)))
/* The relocation is against a global symbol. */
return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
input_section, output_bfd,
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index 839bd45b4a..18ed456c2b 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1315,7 +1315,7 @@ mmix_elf_reloc (bfd *abfd,
else
relocation = symbol->value;
- reloc_target_output_section = bfd_get_output_section (symbol);
+ reloc_target_output_section = bfd_asymbol_section (symbol)->output_section;
/* Here the variable relocation holds the final address of the symbol we
are relocating against, plus any addend. */
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
index 58d66ce63c..8927e9825b 100644
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -3841,8 +3841,8 @@ mips_elf_sym_is_global (bfd *abfd ATTRIBUTE_UNUSED, asymbol *sym)
return (sym->flags & BSF_SECTION_SYM) == 0;
else
return ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0
- || bfd_is_und_section (bfd_get_section (sym))
- || bfd_is_com_section (bfd_get_section (sym)));
+ || bfd_is_und_section (bfd_asymbol_section (sym))
+ || bfd_is_com_section (bfd_asymbol_section (sym)));
}
\f
/* Set the right machine number for a MIPS ELF file. */
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index fd44505da4..7132b6bc73 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -8042,7 +8042,7 @@ aarch64_elf_find_function (bfd * abfd,
(q->symbol.name, BFD_AARCH64_SPECIAL_SYM_TYPE_ANY)))
continue;
/* Fall through. */
- if (bfd_get_section (&q->symbol) == section
+ if (bfd_asymbol_section (&q->symbol) == section
&& q->symbol.value >= low_func && q->symbol.value <= offset)
{
func = (asymbol *) q;
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index e3054043df..8ad5268520 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -2531,8 +2531,8 @@ _bfd_mips_elf_got16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
bfd *output_bfd, char **error_message)
{
if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (symbol))
- || bfd_is_com_section (bfd_get_section (symbol)))
+ || bfd_is_und_section (bfd_asymbol_section (symbol))
+ || bfd_is_com_section (bfd_asymbol_section (symbol)))
/* The relocation is against a global symbol. */
return _bfd_mips_elf_generic_reloc (abfd, reloc_entry, symbol, data,
input_section, output_bfd,
diff --git a/bfd/linker.c b/bfd/linker.c
index 8aec0d2358..2518371f24 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -1163,9 +1163,9 @@ generic_link_add_symbol_list (bfd *abfd,
| BSF_GLOBAL
| BSF_CONSTRUCTOR
| BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (p))
- || bfd_is_com_section (bfd_get_section (p))
- || bfd_is_ind_section (bfd_get_section (p)))
+ || bfd_is_und_section (bfd_asymbol_section (p))
+ || bfd_is_com_section (bfd_asymbol_section (p))
+ || bfd_is_ind_section (bfd_asymbol_section (p)))
{
const char *name;
const char *string;
@@ -1191,7 +1191,7 @@ generic_link_add_symbol_list (bfd *abfd,
bh = NULL;
if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, name, p->flags, bfd_get_section (p),
+ (info, abfd, name, p->flags, bfd_asymbol_section (p),
p->value, string, FALSE, FALSE, &bh)))
return FALSE;
h = (struct generic_link_hash_entry *) bh;
@@ -1218,15 +1218,15 @@ generic_link_add_symbol_list (bfd *abfd,
if (info->output_bfd->xvec == abfd->xvec)
{
if (h->sym == NULL
- || (! bfd_is_und_section (bfd_get_section (p))
- && (! bfd_is_com_section (bfd_get_section (p))
- || bfd_is_und_section (bfd_get_section (h->sym)))))
+ || (! bfd_is_und_section (bfd_asymbol_section (p))
+ && (! bfd_is_com_section (bfd_asymbol_section (p))
+ || bfd_is_und_section (bfd_asymbol_section (h->sym)))))
{
h->sym = p;
/* BSF_OLD_COMMON is a hack to support COFF reloc
reading, and it should go away when the COFF
linker is switched to the new version. */
- if (bfd_is_com_section (bfd_get_section (p)))
+ if (bfd_is_com_section (bfd_asymbol_section (p)))
p->flags |= BSF_OLD_COMMON;
}
}
@@ -2026,9 +2026,9 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
| BSF_GLOBAL
| BSF_CONSTRUCTOR
| BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (sym))
- || bfd_is_com_section (bfd_get_section (sym))
- || bfd_is_ind_section (bfd_get_section (sym)))
+ || bfd_is_und_section (bfd_asymbol_section (sym))
+ || bfd_is_com_section (bfd_asymbol_section (sym))
+ || bfd_is_ind_section (bfd_asymbol_section (sym)))
{
if (sym->udata.p != NULL)
h = (struct generic_link_hash_entry *) sym->udata.p;
@@ -2044,7 +2044,7 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
the relocs in the output format being used. */
h = NULL;
}
- else if (bfd_is_und_section (bfd_get_section (sym)))
+ else if (bfd_is_und_section (bfd_asymbol_section (sym)))
h = ((struct generic_link_hash_entry *)
bfd_wrapped_link_hash_lookup (output_bfd, info,
bfd_asymbol_name (sym),
@@ -2601,15 +2601,15 @@ default_indirect_link_order (bfd *output_bfd,
| BSF_GLOBAL
| BSF_CONSTRUCTOR
| BSF_WEAK)) != 0
- || bfd_is_und_section (bfd_get_section (sym))
- || bfd_is_com_section (bfd_get_section (sym))
- || bfd_is_ind_section (bfd_get_section (sym)))
+ || bfd_is_und_section (bfd_asymbol_section (sym))
+ || bfd_is_com_section (bfd_asymbol_section (sym))
+ || bfd_is_ind_section (bfd_asymbol_section (sym)))
{
/* sym->udata may have been set by
generic_link_add_symbol_list. */
if (sym->udata.p != NULL)
h = (struct bfd_link_hash_entry *) sym->udata.p;
- else if (bfd_is_und_section (bfd_get_section (sym)))
+ else if (bfd_is_und_section (bfd_asymbol_section (sym)))
h = bfd_wrapped_link_hash_lookup (output_bfd, info,
bfd_asymbol_name (sym),
FALSE, FALSE, TRUE);
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index f7f3128409..238f5144d4 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -1352,7 +1352,7 @@ translate_to_native_sym_flags (bfd *abfd,
to another. */
sym_pointer->e_type[0] &= ~N_TYPE;
- sec = bfd_get_section (cache_ptr);
+ sec = bfd_asymbol_section (cache_ptr);
off = 0;
if (sec == NULL)
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index c26d2789fd..9c791f6d65 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
+ * objcopy.c: Likewise.
+ * objdump.c: Likewise.
+ * rdcoff.c: Likewise.
+ * objcopy.c (create_new_symbol): Use bfd_set_asymbol_name.
+ (filter_symbols): Likewise.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* doc/Makefile.am (MOSTLYCLEANFILES): Clean all man pages,
diff --git a/binutils/nm.c b/binutils/nm.c
index 67b7ac7b12..0bded07391 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -592,8 +592,8 @@ numeric_forward (const void *P_x, const void *P_y)
if (x == NULL || y == NULL)
bfd_fatal (bfd_get_filename (sort_bfd));
- xs = bfd_get_section (x);
- ys = bfd_get_section (y);
+ xs = bfd_asymbol_section (x);
+ ys = bfd_asymbol_section (y);
if (bfd_is_und_section (xs))
{
@@ -645,8 +645,8 @@ size_forward1 (const void *P_x, const void *P_y)
if (x == NULL || y == NULL)
bfd_fatal (bfd_get_filename (sort_bfd));
- xs = bfd_get_section (x);
- ys = bfd_get_section (y);
+ xs = bfd_asymbol_section (x);
+ ys = bfd_asymbol_section (y);
if (bfd_is_und_section (xs))
abort ();
@@ -774,7 +774,7 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
else
next = NULL;
- sec = bfd_get_section (sym);
+ sec = bfd_asymbol_section (sym);
/* Synthetic symbols don't have a full type set of data available, thus
we can't rely on that information for the symbol size. Ditto for
@@ -788,7 +788,7 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
else
{
if (from + size < fromend
- && sec == bfd_get_section (next))
+ && sec == bfd_asymbol_section (next))
sz = valueof (next) - valueof (sym);
else
sz = (bfd_get_section_vma (abfd, sec)
@@ -895,7 +895,7 @@ print_symbol (bfd * abfd,
if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
- if (bfd_is_und_section (bfd_get_section (sym)))
+ if (bfd_is_und_section (bfd_asymbol_section (sym)))
hidden = TRUE;
if (version_string && *version_string != '\0')
@@ -931,7 +931,7 @@ print_symbol (bfd * abfd,
lineno_cache_bfd = abfd;
}
- if (bfd_is_und_section (bfd_get_section (sym)))
+ if (bfd_is_und_section (bfd_asymbol_section (sym)))
{
static asection **secs;
static arelent ***relocs;
@@ -1001,10 +1001,10 @@ print_symbol (bfd * abfd,
}
}
}
- else if (bfd_get_section (sym)->owner == abfd)
+ else if (bfd_asymbol_section (sym)->owner == abfd)
{
if ((bfd_find_line (abfd, syms, sym, &filename, &lineno)
- || bfd_find_nearest_line (abfd, bfd_get_section (sym),
+ || bfd_find_nearest_line (abfd, bfd_asymbol_section (sym),
syms, sym->value, &filename,
&functionname, &lineno))
&& filename != NULL
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ebb99339aa..ce4a4afa55 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1465,7 +1465,7 @@ create_new_symbol (struct addsym_node *ptr, bfd *obfd)
{
asymbol *sym = bfd_make_empty_symbol (obfd);
- bfd_asymbol_name (sym) = ptr->symdef;
+ bfd_set_asymbol_name (sym, ptr->symdef);
sym->value = ptr->symval;
sym->flags = ptr->flags;
if (ptr->section)
@@ -1503,7 +1503,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
bfd_boolean rem_leading_char;
bfd_boolean add_leading_char;
- undefined = bfd_is_und_section (bfd_get_section (sym));
+ undefined = bfd_is_und_section (bfd_asymbol_section (sym));
if (add_sym_list)
{
@@ -1521,7 +1521,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
if (new_name == name
&& (flags & BSF_SECTION_SYM) != 0)
new_name = (char *) find_section_rename (name, NULL);
- bfd_asymbol_name (sym) = new_name;
+ bfd_set_asymbol_name (sym, new_name);
name = new_name;
}
@@ -1532,7 +1532,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
|| (remove_leading_char
&& ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0
|| undefined
- || bfd_is_com_section (bfd_get_section (sym)))));
+ || bfd_is_com_section (bfd_asymbol_section (sym)))));
/* Check if we will add a new leading character. */
add_leading_char =
@@ -1545,14 +1545,14 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
if (rem_leading_char && add_leading_char && !prefix_symbols_string)
{
name[0] = bfd_get_symbol_leading_char (obfd);
- bfd_asymbol_name (sym) = name;
+ bfd_set_asymbol_name (sym, name);
rem_leading_char = FALSE;
add_leading_char = FALSE;
}
/* Remove leading char. */
if (rem_leading_char)
- bfd_asymbol_name (sym) = ++name;
+ bfd_set_asymbol_name (sym, ++name);
/* Add new leading char and/or prefix. */
if (add_leading_char || prefix_symbols_string)
@@ -1571,7 +1571,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
}
strcpy (ptr, name);
- bfd_asymbol_name (sym) = n;
+ bfd_set_asymbol_name (sym, n);
name = n;
}
@@ -1579,7 +1579,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
keep = FALSE;
else if ((flags & BSF_KEEP) != 0 /* Used in relocation. */
|| ((flags & BSF_SECTION_SYM) != 0
- && ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags
+ && ((*bfd_asymbol_section (sym)->symbol_ptr_ptr)->flags
& BSF_KEEP) != 0))
{
keep = TRUE;
@@ -1587,7 +1587,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
}
else if (relocatable /* Relocatable file. */
&& ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0
- || bfd_is_com_section (bfd_get_section (sym))))
+ || bfd_is_com_section (bfd_asymbol_section (sym))))
keep = TRUE;
else if (bfd_decode_symclass (sym) == 'I')
/* Global symbols in $idata sections need to be retained
@@ -1598,13 +1598,13 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
else if ((flags & BSF_GLOBAL) != 0 /* Global symbol. */
|| (flags & BSF_WEAK) != 0
|| undefined
- || bfd_is_com_section (bfd_get_section (sym)))
+ || bfd_is_com_section (bfd_asymbol_section (sym)))
keep = strip_symbols != STRIP_UNNEEDED;
else if ((flags & BSF_DEBUGGING) != 0) /* Debugging symbol. */
keep = (strip_symbols != STRIP_DEBUG
&& strip_symbols != STRIP_UNNEEDED
&& ! convert_debugging);
- else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym)))
+ else if (bfd_coff_get_comdat_section (abfd, bfd_asymbol_section (sym)))
/* COMDAT sections store special information in local
symbols, so we cannot risk stripping any of them. */
keep = TRUE;
@@ -1637,7 +1637,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
|| is_specified_symbol (name, keep_specific_htab)))
keep = TRUE;
- if (keep && is_strip_section (abfd, bfd_get_section (sym)))
+ if (keep && is_strip_section (abfd, bfd_asymbol_section (sym)))
keep = FALSE;
if (keep)
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 00541cbec5..4a7c8f9a74 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -995,7 +995,7 @@ objdump_print_symname (bfd *abfd, struct disassemble_info *inf,
if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
- if (bfd_is_und_section (bfd_get_section (sym)))
+ if (bfd_is_und_section (bfd_asymbol_section (sym)))
hidden = TRUE;
name = sanitize_string (name);
@@ -1351,7 +1351,7 @@ objdump_print_addr (bfd_vma vma,
/* Adjust the vma to the reloc. */
vma += bfd_asymbol_value (sym);
- if (bfd_is_und_section (bfd_get_section (sym)))
+ if (bfd_is_und_section (bfd_asymbol_section (sym)))
skip_find = TRUE;
}
@@ -2234,7 +2234,7 @@ disassemble_bytes (struct disassemble_info * inf,
{
asection *sym_sec;
- sym_sec = bfd_get_section (*q->sym_ptr_ptr);
+ sym_sec = bfd_asymbol_section (*q->sym_ptr_ptr);
sym_name = bfd_get_section_name (aux->abfd, sym_sec);
if (sym_name == NULL || *sym_name == '\0')
sym_name = "*unknown*";
diff --git a/binutils/rdcoff.c b/binutils/rdcoff.c
index 7e585691eb..cbb5db1b94 100644
--- a/binutils/rdcoff.c
+++ b/binutils/rdcoff.c
@@ -816,7 +816,7 @@ parse_coff (bfd *abfd, asymbol **syms, long symcount, void *dhandle)
else
base = auxent.x_sym.x_misc.x_lnsz.x_lnno - 1;
- addr = bfd_get_section_vma (abfd, bfd_get_section (sym));
+ addr = bfd_get_section_vma (abfd, bfd_asymbol_section (sym));
++linenos;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 6735017792..3d61530a9b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * symbols.c (S_IS_LOCAL): Update bfd_get_section to
+ bfd_asymbol_section.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* Makefile.in: Re-generate.
diff --git a/gas/symbols.c b/gas/symbols.c
index 918028f875..34ec145ad0 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -2310,14 +2310,14 @@ S_IS_LOCAL (symbolS *s)
if ((flags & BSF_LOCAL) && (flags & BSF_GLOBAL))
abort ();
- if (bfd_get_section (s->bsym) == reg_section)
+ if (bfd_asymbol_section (s->bsym) == reg_section)
return 1;
if (flag_strip_local_absolute
/* Keep BSF_FILE symbols in order to allow debuggers to identify
the source file even when the object file is stripped. */
&& (flags & (BSF_GLOBAL | BSF_FILE)) == 0
- && bfd_get_section (s->bsym) == absolute_section)
+ && bfd_asymbol_section (s->bsym) == absolute_section)
return 1;
name = S_GET_NAME (s);
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5e0e37bcfa..421b26a004 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
+ to bfd_asymbol_section.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* amd64-dicos-tdep.c (amd64_dicos_osabi_sniffer): Constify target.
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 0650485bf0..5c494c8ed2 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -8575,7 +8575,7 @@ arm_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile,
data = arm_objfile_data_key.emplace (objfile,
objfile->obfd->section_count);
arm_mapping_symbol_vec &map
- = data->section_maps[bfd_get_section (sym)->index];
+ = data->section_maps[bfd_asymbol_section (sym)->index];
new_map_sym.value = sym->value;
new_map_sym.type = name[1];
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b6ac44e1f8..e8f9ed7365 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * ldcref.c (check_reloc_refs): Update bfd_get_section to
+ bfd_asymbol_section.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* Makefile.in: Re-generate.
diff --git a/ld/ldcref.c b/ld/ldcref.c
index 12cb2942e6..fff852a89a 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -705,14 +705,14 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
if (q->sym_ptr_ptr != NULL
&& *q->sym_ptr_ptr != NULL
&& ((global
- && (bfd_is_und_section (bfd_get_section (*q->sym_ptr_ptr))
- || bfd_is_com_section (bfd_get_section (*q->sym_ptr_ptr))
+ && (bfd_is_und_section (bfd_asymbol_section (*q->sym_ptr_ptr))
+ || bfd_is_com_section (bfd_asymbol_section (*q->sym_ptr_ptr))
|| ((*q->sym_ptr_ptr)->flags & (BSF_GLOBAL
| BSF_WEAK)) != 0))
|| (!global
&& ((*q->sym_ptr_ptr)->flags & (BSF_LOCAL
| BSF_SECTION_SYM)) != 0
- && bfd_get_section (*q->sym_ptr_ptr) == info->defsec))
+ && bfd_asymbol_section (*q->sym_ptr_ptr) == info->defsec))
&& (symname != NULL
? strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), symname) == 0
: ((*q->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0))
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/testsuite: Avoid directory names in test names
@ 2019-09-18 17:17 gdb-buildbot
2019-09-18 17:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 17:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b078f3ac8803297bfc8416c20e09d0863c5ac6cc ***
commit b078f3ac8803297bfc8416c20e09d0863c5ac6cc
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Wed Sep 18 12:27:11 2019 -0400
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Sep 18 12:36:05 2019 -0400
gdb/testsuite: Avoid directory names in test names
Give a test an actual name in order to avoid having a directory name
in the .sum file.
gdb/testsuite/ChangeLog:
* gdb.base/source-dir.exp: Avoid having directory names in test
names.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index ed838e947e..83d5a4f005 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/source-dir.exp: Avoid having directory names in test
+ names.
+
2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/source-dir.exp: Add extra test for mapped compilation
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 25d7b07971..9941c1f64e 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -131,7 +131,8 @@ proc test_truncated_comp_dir {} {
[search_dir_list [list \
"$strip_dir" \
"\\\$cdir" \
- "\\\$cwd"]]
+ "\\\$cwd"]] \
+ "setup source path search directory"
gdb_test "list" [multi_line \
"1\[ \t\]+int" \
"2\[ \t\]+main \\(\\)" \
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: remove local extern declaration of cli_styling
@ 2019-09-18 18:13 gdb-buildbot
2019-09-18 18:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 18:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f64eea3a594042c9cf499b17b5b166276275a051 ***
commit f64eea3a594042c9cf499b17b5b166276275a051
Author: Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Wed Sep 18 13:33:33 2019 -0400
Commit: Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 13:33:33 2019 -0400
gdb: remove local extern declaration of cli_styling
Following the int -> bool conversion of boolean options (commit
491144b5e21b ("Change boolean options to bool instead of int")), I see
this ASAN error:
==357543==ERROR: AddressSanitizer: global-buffer-overflow on address 0x55555b25d440 at pc 0x5555583ce9e1 bp 0x7fffffffd390 sp 0x7fffffffd380
READ of size 4 at 0x55555b25d440 thread T0
#0 0x5555583ce9e0 in term_cli_styling /home/simark/src/binutils-gdb/gdb/ui-file.c:111
#1 0x5555583cf8b0 in stdio_file::can_emit_style_escape() /home/simark/src/binutils-gdb/gdb/ui-file.c:308
#2 0x5555584450d2 in set_output_style /home/simark/src/binutils-gdb/gdb/utils.c:1442
#3 0x5555584491af in fprintf_styled(ui_file*, ui_file_style const&, char const*, ...) /home/simark/src/binutils-gdb/gdb/utils.c:2143
#4 0x5555582fa13c in print_gdb_version(ui_file*, bool) /home/simark/src/binutils-gdb/gdb/top.c:1339
#5 0x555557b723ab in captured_main_1 /home/simark/src/binutils-gdb/gdb/main.c:981
#6 0x555557b7353b in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1172
#7 0x555557b735d0 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1197
#8 0x55555700a53d in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
#9 0x7ffff64c9ee2 in __libc_start_main (/usr/lib/libc.so.6+0x26ee2)
#10 0x55555700a30d in _start (/home/simark/build/binutils-gdb/gdb/gdb+0x1ab630d)
0x55555b25d441 is located 0 bytes to the right of global variable 'cli_styling' defined in '/home/simark/src/binutils-gdb/gdb/cli/cli-style.c:31:6' (0x55555b25d440) of size 1
The reason of this is that we have this declaration of cli_styling in cli/cli-style.h:
extern bool cli_styling;
but ui-file.c uses its own local declaration:
extern int cli_styling;
Because of that, the code in ui-file.c thinks the variable is 4 bytes
long, when it is actually 1 byte long, so the generated code reads past
the variable.
Fix it by removing the declaration and making ui-file.c include
cli/cli-style.h.
gdb/ChangeLog:
* ui-file.c: Include cli/cli-style.h.
(term_cli_styling): Remove cli_styling declaration.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 421b26a004..796ade3c71 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * ui-file.c: Include cli/cli-style.h.
+ (term_cli_styling): Remove cli_styling declaration.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* arm-tdep.c (arm_record_special_symbol): Update bfd_get_section
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index 042b13ca3b..71b74bba19 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -24,6 +24,7 @@
#include "gdb_obstack.h"
#include "gdb_select.h"
#include "gdbsupport/filestuff.h"
+#include "cli/cli-style.h"
null_file null_stream;
@@ -106,8 +107,6 @@ ui_file_isatty (struct ui_file *file)
static bool
term_cli_styling ()
{
- extern int cli_styling;
-
if (!cli_styling)
return false;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: Fix native build on Linux/Alpha.
@ 2019-09-18 19:50 gdb-buildbot
2019-09-18 19:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 19:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a27b85f6d9b5eea9bd1493f903158fbea4b2231 ***
commit 7a27b85f6d9b5eea9bd1493f903158fbea4b2231
Author: Christian Groessler <chris@groessler.org>
AuthorDate: Wed Sep 11 22:19:45 2019 +0000
Commit: Simon Marchi <simon.marchi@efficios.com>
CommitDate: Wed Sep 18 15:18:39 2019 -0400
gdb: Fix native build on Linux/Alpha.
Fixes:
CXX alpha-linux-nat.o
alpha-linux-nat.c: In member function 'virtual CORE_ADDR alpha_linux_nat_target::register_u_offset(gdbarch*, int, int)':
alpha-linux-nat.c:93:16: error: 'gdbarch_pc_regnum' was not declared in this scope
if (regno == gdbarch_pc_regnum (gdbarch))
^~~~~~~~~~~~~~~~~
alpha-linux-nat.c:93:16: note: suggested alternative: 'gdbarch_info'
if (regno == gdbarch_pc_regnum (gdbarch))
^~~~~~~~~~~~~~~~~
gdbarch_info
alpha-linux-nat.c:97:15: error: 'gdbarch_fp0_regnum' was not declared in this scope
if (regno < gdbarch_fp0_regnum (gdbarch))
^~~~~~~~~~~~~~~~~~
alpha-linux-nat.c:97:15: note: suggested alternative: 'gdbarch_info'
if (regno < gdbarch_fp0_regnum (gdbarch))
^~~~~~~~~~~~~~~~~~
gdbarch_info
make[2]: *** [Makefile:1638: alpha-linux-nat.o] Error 1
make[2]: Leaving directory '/home/chris/tmp/binutils-gdb/gdb'
2019-09-12 Christian Groessler <chris@groessler.org>
* alpha-linux-nat.c: Include gdbarch.h.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 796ade3c71..1ad694a20a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18 Christian Groessler <chris@groessler.org>
+
+ * alpha-linux-nat.c: Include gdbarch.h.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* ui-file.c: Include cli/cli-style.h.
diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c
index 18806971a7..9f83ad7cc6 100644
--- a/gdb/alpha-linux-nat.c
+++ b/gdb/alpha-linux-nat.c
@@ -22,6 +22,7 @@
#include "linux-nat-trad.h"
#include "alpha-tdep.h"
+#include "gdbarch.h"
#include "nat/gdb_ptrace.h"
#include <alpha/ptrace.h>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-18 19:50 [binutils-gdb] gdb: Fix native build on Linux/Alpha gdb-buildbot
@ 2019-09-18 19:57 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 19:57 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/85
Author:
Christian Groessler <chris@groessler.org>
Commit tested:
7a27b85f6d9b5eea9bd1493f903158fbea4b2231
Subject of commit:
gdb: Fix native build on Linux/Alpha.
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/7a/7a27b85f6d9b5eea9bd1493f903158fbea4b2231/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/7a/7a27b85f6d9b5eea9bd1493f903158fbea4b2231//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/7a/7a27b85f6d9b5eea9bd1493f903158fbea4b2231//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Give a name to the TUI SingleKey keymap
@ 2019-09-18 21:35 gdb-buildbot
2019-09-18 21:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 21:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 11061048d1fed4465b0e62eb3c14dabf0beab59b ***
commit 11061048d1fed4465b0e62eb3c14dabf0beab59b
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 17:25:35 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 18 15:03:29 2019 -0600
Give a name to the TUI SingleKey keymap
Readline 8.0 has a feature that lets an application name a keymap.
This in turn makes it simpler for users to bind keys in keymaps in
their .inputrc.
This patch gives a name to the TUI SingleKey keymap, so that
additional bindings can be made there. For example:
$if gdb
set keymap SingleKey
"X": "echo hello\\n\n"
$endif
The call to rl_initialize, in tui_initialize_readline, had to be
removed so that .inputrc was not read too early. Note that Readline
explicitly documents that this call is not needed.
gdb/ChangeLog
2019-09-18 Tom Tromey <tom@tromey.com>
* NEWS: Add entry.
* tui/tui.c (tui_initialize_readline): Set name of keymap. Do not
call rl_initialize.
(tui_enable): Do not call rl_initialize.
gdb/doc/ChangeLog
2019-09-18 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Editing): Document readline application name.
(TUI Single Key Mode): Document TUI SingleKey keymap name.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1ad694a20a..f8228b459c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-18 Tom Tromey <tom@tromey.com>
+
+ * NEWS: Add entry.
+ * tui/tui.c (tui_initialize_readline): Set name of keymap. Do not
+ call rl_initialize.
+ (tui_enable): Do not call rl_initialize.
+
2019-09-18 Christian Groessler <chris@groessler.org>
* alpha-linux-nat.c: Include gdbarch.h.
diff --git a/gdb/NEWS b/gdb/NEWS
index 947b743533..1fefd81409 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -323,6 +323,10 @@ maint show test-options-completion-result
GDB now bundles GNU readline 8.0, but if you choose to use
--with-system-readline, only readline >= 7.0 can be used.
+* The TUI SingleKey keymap is now named "SingleKey". This can be used
+ from .inputrc to bind keys in this keymap. This feature is only
+ available when gdb is built against GNU readline 8.0 or later.
+
*** Changes in GDB 8.3
* GDB and GDBserver now support access to additional registers on
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a16d32d48a..8eaaab3ae1 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Tom Tromey <tom@tromey.com>
+
+ * gdb.texinfo (Editing): Document readline application name.
+ (TUI Single Key Mode): Document TUI SingleKey keymap name.
+
2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.texinfo (Source Path): Additional text to better describe
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index f4bfd9f980..a129ea0aa1 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -25056,6 +25056,10 @@ for more details about the Readline
interface. Users unfamiliar with @sc{gnu} Emacs or @code{vi} are
encouraged to read that chapter.
+@cindex Readline application name
+@value{GDBN} sets the Readline application name to @samp{gdb}. This
+is useful for conditions in @file{.inputrc}.
+
@node Command History
@section Command History
@cindex command history
@@ -27658,6 +27662,10 @@ with the TUI SingleKey mode. Once the command is entered the TUI
SingleKey mode is restored. The only way to permanently leave
this mode is by typing @kbd{q} or @kbd{C-x s}.
+@cindex SingleKey keymap name
+If @value{GDBN} was built with Readline 8.0 or later, the TUI
+SingleKey keymap will be named @samp{SingleKey}. This can be used in
+@file{.inputrc} to add additional bindings to this keymap.
@node TUI Commands
@section TUI-specific Commands
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index db34e0c044..5d6b9f3203 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -329,13 +329,17 @@ tui_initialize_readline (void)
int i;
Keymap tui_ctlx_keymap;
- rl_initialize ();
-
rl_add_defun ("tui-switch-mode", tui_rl_switch_mode, -1);
rl_add_defun ("gdb-command", tui_rl_command_key, -1);
rl_add_defun ("next-keymap", tui_rl_next_keymap, -1);
tui_keymap = rl_make_bare_keymap ();
+
+ /* The named keymap feature was added in Readline 8.0. */
+#if RL_READLINE_VERSION >= 0x800
+ rl_set_keymap_name ("SingleKey", tui_keymap);
+#endif
+
tui_ctlx_keymap = rl_make_bare_keymap ();
tui_readline_standard_keymap = rl_get_keymap ();
@@ -467,7 +471,6 @@ tui_enable (void)
nodelay(w, FALSE);
nl();
keypad (w, TRUE);
- rl_initialize ();
tui_set_term_height_to (LINES);
tui_set_term_width_to (COLS);
def_prog_mode ();
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Handle unreachable network in server-connect.exp
@ 2019-09-18 23:21 gdb-buildbot
2019-09-18 23:26 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 23:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 81dc3ab59476c9851a6cda321b85dcf8a6ef4be8 ***
commit 81dc3ab59476c9851a6cda321b85dcf8a6ef4be8
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 00:23:54 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 00:23:54 2019 +0200
[gdb/testsuite] Handle unreachable network in server-connect.exp
When running gdb.server/server-connect.exp I run into:
...
FAIL: gdb.server/server-connect.exp: tcp6: connect to gdbserver using tcp6:::1
FAIL: gdb.server/server-connect.exp: tcp6-with-brackets: connect to gdbserver \
using tcp6:[::1]
FAIL: gdb.server/server-connect.exp: udp6: connect to gdbserver using udp6:::1
FAIL: gdb.server/server-connect.exp: udp6-with-brackets: connect to gdbserver \
using udp6:[::1]
...
The FAIL is caused by the fact that the ipv6 loopback address is not available:
...
PASS: gdb.server/server-connect.exp: tcp6: start gdbserver
target remote tcp6:::1:2347^M
A program is being debugged already. Kill it? (y or n) y^M
tcp6:::1:2347: Network is unreachable.^M
(gdb) FAIL: gdb.server/server-connect.exp: tcp6: connect to gdbserver using tcp6:::1
...
This should be marked UNSUPPORTED rather than FAIL.
Furthermore, the test-case takes about 4 minutes, because the 'Network is
unreachable' response is not explicitly handled in gdb_target_cmd, so instead
it runs into the timeout case.
Fix this by handling the 'Network is unreachable' response as UNSUPPORTED.
This reduces testing time from 4 minutes to about 2 seconds.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdbserver-support.exp (gdb_target_cmd_ext): Return 2 (meaning
UNSUPPORTED) for 'Network is unreachable' message. Factor out of ...
(gdb_target_cmd): ... here.
* gdb.server/server-connect.exp: Use gdb_target_cmd_ext, handle return
value 2.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 83d5a4f005..2acc1f7342 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-19 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdbserver-support.exp (gdb_target_cmd_ext): Return 2 (meaning
+ UNSUPPORTED) for 'Network is unreachable' message. Factor out of ...
+ (gdb_target_cmd): ... here.
+ * gdb.server/server-connect.exp: Use gdb_target_cmd_ext, handle return
+ value 2.
+
2019-09-18 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/source-dir.exp: Avoid having directory names in test
diff --git a/gdb/testsuite/gdb.server/server-connect.exp b/gdb/testsuite/gdb.server/server-connect.exp
index 682fdaaeeb..e69f792a1b 100644
--- a/gdb/testsuite/gdb.server/server-connect.exp
+++ b/gdb/testsuite/gdb.server/server-connect.exp
@@ -101,10 +101,13 @@ save_vars { GDB_TEST_SOCKETHOST } {
set gdbserver_gdbport [lindex $res 1]
set test "connect to gdbserver using $sockhost"
- if { [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport] == 0 } {
+ set res [gdb_target_cmd_ext $gdbserver_protocol $gdbserver_gdbport]
+ if { $res == 0 } {
pass $test
- } else {
+ } elseif { $res == 1 } {
fail $test
+ } else {
+ unsupported $test
}
}
}
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
index ade99c0ea1..2ad53c1f60 100644
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -41,12 +41,13 @@
#
#
-# gdb_target_cmd
-# Send gdb the "target" command. Returns 0 on success, 1 on failure.
+# gdb_target_cmd_ext
+# Send gdb the "target" command. Returns 0 on success, 1 on failure, 2 on
+# unsupported.
# If specified, then ADDITIONAL_TEXT must match the text that comes after
# the connection message in order for the procedure to succeed.
#
-proc gdb_target_cmd { targetname serialport {additional_text ""} } {
+proc gdb_target_cmd_ext { targetname serialport {additional_text ""} } {
global gdb_prompt
set serialport_re [string_to_regexp $serialport]
@@ -97,6 +98,9 @@ proc gdb_target_cmd { targetname serialport {additional_text ""} } {
# Leave it there for the test to diagnose.
return 1
}
+ -re ": Network is unreachable.\r\n.*$gdb_prompt $" {
+ return 2
+ }
timeout {
send_gdb "\x03"
break
@@ -106,6 +110,12 @@ proc gdb_target_cmd { targetname serialport {additional_text ""} } {
return 1
}
+# Like gdb_target_cmd_ext, but returns 0 on success, 1 on failure.
+
+proc gdb_target_cmd { $args } {
+ set res [gdb_target_cmd_ext $args]
+ return [expr $res == 0 ? 0 : 1]
+}
global portnum
set portnum "2345"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd
@ 2019-09-18 23:45 gdb-buildbot
2019-09-18 23:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 23:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8a6251301c6ea6d804735fbad8cdb7cba707f784 ***
commit 8a6251301c6ea6d804735fbad8cdb7cba707f784
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 01:14:19 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 01:14:19 2019 +0200
[gdb/testsuite] Fix gdb_target_cmd
In commit 81dc3ab594 "[gdb/testsuite] Handle unreachable network in
server-connect.exp" a regression was introduced in gdb_target_cmd, causing
ERRORs like this:
...
ERROR: tcl error sourcing src/gdb/testsuite/gdb.server/abspath.exp.
ERROR: wrong # args: should be "gdb_target_cmd {$args}"
while executing
"gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport"
...
Fix the argument passing in gdb_target_cmd.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2acc1f7342..d5a5309fdf 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-19 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.
+
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdbserver-support.exp (gdb_target_cmd_ext): Return 2 (meaning
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
index 2ad53c1f60..00f46c8264 100644
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -112,8 +112,8 @@ proc gdb_target_cmd_ext { targetname serialport {additional_text ""} } {
# Like gdb_target_cmd_ext, but returns 0 on success, 1 on failure.
-proc gdb_target_cmd { $args } {
- set res [gdb_target_cmd_ext $args]
+proc gdb_target_cmd { args } {
+ set res [eval gdb_target_cmd_ext $args]
return [expr $res == 0 ? 0 : 1]
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-18 23:45 [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd gdb-buildbot
@ 2019-09-18 23:57 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-18 23:57 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/88
Author:
Tom de Vries <tdevries@suse.de>
Commit tested:
8a6251301c6ea6d804735fbad8cdb7cba707f784
Subject of commit:
[gdb/testsuite] Fix gdb_target_cmd
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a6251301c6ea6d804735fbad8cdb7cba707f784/
*** Diff to previous build ***
==============================================
new FAIL: gdb.server/ext-wrapper.exp: monitor exit
new FAIL: gdb.server/ext-wrapper.exp: print d
new FAIL: gdb.server/ext-wrapper.exp: restart: print d
new FAIL: gdb.server/ext-wrapper.exp: restart: run to marker
new FAIL: gdb.server/ext-wrapper.exp: run to marker
new FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
new FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
new FAIL: gdb.server/reconnect-ctrl-c.exp: second: connect
new FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
new FAIL: gdb.server/sysroot.exp: sysroot=local: continue to printf
new FAIL: gdb.server/sysroot.exp: sysroot=remote: continue to printf
new FAIL: gdb.server/wrapper.exp: continue to marker
new FAIL: gdb.server/wrapper.exp: print d
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a6251301c6ea6d804735fbad8cdb7cba707f784//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/8a/8a6251301c6ea6d804735fbad8cdb7cba707f784//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd_section_* macros
@ 2019-09-19 1:02 gdb-buildbot
2019-09-19 1:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-19 1:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fd3619828e94a24a92cddec42cbc0ab33352eeb4 ***
commit fd3619828e94a24a92cddec42cbc0ab33352eeb4
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 16 20:25:17 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 19 09:40:13 2019 +0930
bfd_section_* macros
This large patch removes the unnecessary bfd parameter from various
bfd section macros and functions. The bfd is hardly ever used and if
needed for the bfd_set_section_* or bfd_rename_section functions can
be found via section->owner except for the com, und, abs, and ind
std_section special sections. Those sections shouldn't be modified
anyway.
The patch also removes various bfd_get_section_<field> macros,
replacing their use with bfd_section_<field>, and adds
bfd_set_section_lma. I've also fixed a minor bug in gas where
compressed section renaming was done directly rather than calling
bfd_rename_section. This would have broken bfd_get_section_by_name
and similar functions, but that hardly mattered at such a late stage
in gas processing.
bfd/
* bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
(bfd_get_section_lma, bfd_get_section_alignment),
(bfd_get_section_size, bfd_get_section_flags),
(bfd_get_section_userdata): Delete.
(bfd_section_name, bfd_section_size, bfd_section_vma),
(bfd_section_lma, bfd_section_alignment): Lose bfd parameter.
(bfd_section_flags, bfd_section_userdata): New.
(bfd_is_com_section): Rename parameter.
* section.c (bfd_set_section_userdata, bfd_set_section_vma),
(bfd_set_section_alignment, bfd_set_section_flags, bfd_rename_section),
(bfd_set_section_size): Delete bfd parameter, rename section parameter.
(bfd_set_section_lma): New.
* bfd-in2.h: Regenerate.
* mach-o.c (bfd_mach_o_init_section_from_mach_o): Delete bfd param,
update callers.
* aoutx.h, * bfd.c, * coff-alpha.c, * coff-arm.c, * coff-mips.c,
* coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
* compress.c, * ecoff.c, * elf-eh-frame.c, * elf-hppa.h,
* elf-ifunc.c, * elf-m10200.c, * elf-m10300.c, * elf-properties.c,
* elf-s390-common.c, * elf-vxworks.c, * elf.c, * elf32-arc.c,
* elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
* elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-csky.c,
* elf32-d10v.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c,
* elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c,
* elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c, * elf32-m32c.c,
* elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, * elf32-mcore.c,
* elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c,
* elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
* elf32-nios2.c, * elf32-or1k.c, * elf32-ppc.c, * elf32-pru.c,
* elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c,
* elf32-score7.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c,
* elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c, * elf32-visium.c,
* elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c,
* elf64-bpf.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mmix.c,
* elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c,
* elflink.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c,
* elfxx-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c,
* elfxx-tilegx.c, * elfxx-x86.c, * i386msdos.c, * linker.c,
* mach-o.c, * mmo.c, * opncls.c, * pdp11.c, * pei-x86_64.c,
* peicode.h, * reloc.c, * section.c, * syms.c, * vms-alpha.c,
* xcofflink.c: Update throughout for bfd section macro and function
changes.
binutils/
* addr2line.c, * bucomm.c, * coffgrok.c, * dlltool.c, * nm.c,
* objcopy.c, * objdump.c, * od-elf32_avr.c, * od-macho.c,
* od-xcoff.c, * prdbg.c, * rdcoff.c, * rddbg.c, * rescoff.c,
* resres.c, * size.c, * srconv.c, * strings.c, * windmc.c: Update
throughout for bfd section macro and function changes.
gas/
* as.c, * as.h, * dw2gencfi.c, * dwarf2dbg.c, * ecoff.c,
* read.c, * stabs.c, * subsegs.c, * subsegs.h, * write.c,
* config/obj-coff-seh.c, * config/obj-coff.c, * config/obj-ecoff.c,
* config/obj-elf.c, * config/obj-macho.c, * config/obj-som.c,
* config/tc-aarch64.c, * config/tc-alpha.c, * config/tc-arc.c,
* config/tc-arm.c, * config/tc-avr.c, * config/tc-bfin.c,
* config/tc-bpf.c, * config/tc-d10v.c, * config/tc-d30v.c,
* config/tc-epiphany.c, * config/tc-fr30.c, * config/tc-frv.c,
* config/tc-h8300.c, * config/tc-hppa.c, * config/tc-i386.c,
* config/tc-ia64.c, * config/tc-ip2k.c, * config/tc-iq2000.c,
* config/tc-lm32.c, * config/tc-m32c.c, * config/tc-m32r.c,
* config/tc-m68hc11.c, * config/tc-mep.c, * config/tc-microblaze.c,
* config/tc-mips.c, * config/tc-mmix.c, * config/tc-mn10200.c,
* config/tc-mn10300.c, * config/tc-msp430.c, * config/tc-mt.c,
* config/tc-nds32.c, * config/tc-or1k.c, * config/tc-ppc.c,
* config/tc-pru.c, * config/tc-rl78.c, * config/tc-rx.c,
* config/tc-s12z.c, * config/tc-s390.c, * config/tc-score.c,
* config/tc-score7.c, * config/tc-sh.c, * config/tc-sparc.c,
* config/tc-spu.c, * config/tc-tic4x.c, * config/tc-tic54x.c,
* config/tc-tic6x.c, * config/tc-tilegx.c, * config/tc-tilepro.c,
* config/tc-v850.c, * config/tc-visium.c, * config/tc-wasm32.c,
* config/tc-xc16x.c, * config/tc-xgate.c, * config/tc-xstormy16.c,
* config/tc-xtensa.c, * config/tc-z8k.c: Update throughout for
bfd section macro and function changes.
* write.c (compress_debug): Use bfd_rename_section.
gdb/
* aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
* coff-pe-read.c, * coffread.c, * corelow.c, * dbxread.c,
* dicos-tdep.c, * dwarf2-frame.c, * dwarf2read.c, * elfread.c,
* exec.c, * fbsd-tdep.c, * gcore.c, * gdb_bfd.c, * gdb_bfd.h,
* hppa-tdep.c, * i386-cygwin-tdep.c, * i386-fbsd-tdep.c,
* i386-linux-tdep.c, * jit.c, * linux-tdep.c, * machoread.c,
* maint.c, * mdebugread.c, * minidebug.c, * mips-linux-tdep.c,
* mips-sde-tdep.c, * mips-tdep.c, * mipsread.c, * nto-tdep.c,
* objfiles.c, * objfiles.h, * osabi.c, * ppc-linux-tdep.c,
* ppc64-tdep.c, * record-btrace.c, * record-full.c, * remote.c,
* rs6000-aix-tdep.c, * rs6000-tdep.c, * s390-linux-tdep.c,
* s390-tdep.c, * solib-aix.c, * solib-dsbt.c, * solib-frv.c,
* solib-spu.c, * solib-svr4.c, * solib-target.c,
* spu-linux-nat.c, * spu-tdep.c, * symfile-mem.c, * symfile.c,
* symmisc.c, * symtab.c, * target.c, * windows-nat.c,
* xcoffread.c, * cli/cli-dump.c, * compile/compile-object-load.c,
* mi/mi-interp.c: Update throughout for bfd section macro and
function changes.
* gcore (gcore_create_callback): Use bfd_set_section_lma.
* spu-tdep.c (spu_overlay_new_objfile): Likewise.
gprof/
* corefile.c, * symtab.c: Update throughout for bfd section
macro and function changes.
ld/
* ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
* emultempl/aarch64elf.em, * emultempl/aix.em,
* emultempl/armcoff.em, * emultempl/armelf.em,
* emultempl/cr16elf.em, * emultempl/cskyelf.em,
* emultempl/m68hc1xelf.em, * emultempl/m68kelf.em,
* emultempl/mipself.em, * emultempl/mmix-elfnmmo.em,
* emultempl/mmo.em, * emultempl/msp430.em,
* emultempl/nios2elf.em, * emultempl/pe.em, * emultempl/pep.em,
* emultempl/ppc64elf.em, * emultempl/xtensaelf.em: Update
throughout for bfd section macro and function changes.
libctf/
* ctf-open-bfd.c: Update throughout for bfd section macro changes.
opcodes/
* arc-ext.c: Update throughout for bfd section macro changes.
sim/
* common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
* erc32/func.c, * lm32/sim-if.c, * m32c/load.c, * m32c/trace.c,
* m68hc11/interp.c, * ppc/hw_htab.c, * ppc/hw_init.c,
* rl78/load.c, * rl78/trace.c, * rx/gdb-if.c, * rx/load.c,
* rx/trace.c: Update throughout for bfd section macro changes.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 63f6c4c33f..8fff6a6752 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,48 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
+ (bfd_get_section_lma, bfd_get_section_alignment),
+ (bfd_get_section_size, bfd_get_section_flags),
+ (bfd_get_section_userdata): Delete.
+ (bfd_section_name, bfd_section_size, bfd_section_vma),
+ (bfd_section_lma, bfd_section_alignment): Lose bfd parameter.
+ (bfd_section_flags, bfd_section_userdata): New.
+ (bfd_is_com_section): Rename parameter.
+ * section.c (bfd_set_section_userdata, bfd_set_section_vma),
+ (bfd_set_section_alignment, bfd_set_section_flags, bfd_rename_section),
+ (bfd_set_section_size): Delete bfd parameter, rename section parameter.
+ (bfd_set_section_lma): New.
+ * bfd-in2.h: Regenerate.
+ * mach-o.c (bfd_mach_o_init_section_from_mach_o): Delete bfd param,
+ update callers.
+ * aoutx.h, * bfd.c, * coff-alpha.c, * coff-arm.c, * coff-mips.c,
+ * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
+ * compress.c, * ecoff.c, * elf-eh-frame.c, * elf-hppa.h,
+ * elf-ifunc.c, * elf-m10200.c, * elf-m10300.c, * elf-properties.c,
+ * elf-s390-common.c, * elf-vxworks.c, * elf.c, * elf32-arc.c,
+ * elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
+ * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-csky.c,
+ * elf32-d10v.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c,
+ * elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c,
+ * elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c, * elf32-m32c.c,
+ * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, * elf32-mcore.c,
+ * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c,
+ * elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
+ * elf32-nios2.c, * elf32-or1k.c, * elf32-ppc.c, * elf32-pru.c,
+ * elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c,
+ * elf32-score7.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c,
+ * elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c, * elf32-visium.c,
+ * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c,
+ * elf64-bpf.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mmix.c,
+ * elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c,
+ * elflink.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c,
+ * elfxx-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c,
+ * elfxx-tilegx.c, * elfxx-x86.c, * i386msdos.c, * linker.c,
+ * mach-o.c, * mmo.c, * opncls.c, * pdp11.c, * pei-x86_64.c,
+ * peicode.h, * reloc.c, * section.c, * syms.c, * vms-alpha.c,
+ * xcofflink.c: Update throughout for bfd section macro and function
+ changes.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_asymbol_section): Rename from bfd_get_section.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 859153be10..8923ca7b3c 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3108,18 +3108,18 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
break;
case N_TEXT | N_EXT:
section = obj_textsec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_DATA | N_EXT:
case N_SETV | N_EXT:
/* Treat N_SETV symbols as N_DATA symbol; see comment in
translate_from_native_sym_flags. */
section = obj_datasec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_BSS | N_EXT:
section = obj_bsssec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_INDR | N_EXT:
/* An indirect symbol. The next symbol is the symbol
@@ -3145,17 +3145,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
case N_SETT: case N_SETT | N_EXT:
section = obj_textsec (abfd);
flags |= BSF_CONSTRUCTOR;
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_SETD: case N_SETD | N_EXT:
section = obj_datasec (abfd);
flags |= BSF_CONSTRUCTOR;
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_SETB: case N_SETB | N_EXT:
section = obj_bsssec (abfd);
flags |= BSF_CONSTRUCTOR;
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_WARNING:
/* A warning symbol. The next symbol is the one to warn
@@ -3181,17 +3181,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
break;
case N_WEAKT:
section = obj_textsec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
flags = BSF_WEAK;
break;
case N_WEAKD:
section = obj_datasec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
flags = BSF_WEAK;
break;
case N_WEAKB:
section = obj_bsssec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
flags = BSF_WEAK;
break;
}
@@ -3899,8 +3899,7 @@ aout_link_reloc_link_order (struct aout_final_link_info *flaginfo,
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, NULL,
(p->type == bfd_section_reloc_link_order
- ? bfd_section_name (flaginfo->output_bfd,
- pr->u.section)
+ ? bfd_section_name (pr->u.section)
: pr->u.name),
howto->name, pr->addend, NULL, NULL, (bfd_vma) 0);
break;
@@ -4314,7 +4313,7 @@ aout_link_input_section_std (struct aout_final_link_info *flaginfo,
asection *s;
s = aout_reloc_index_to_section (input_bfd, r_index);
- name = bfd_section_name (input_bfd, s);
+ name = bfd_section_name (s);
}
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, (h ? &h->root : NULL), name, howto->name,
@@ -4728,7 +4727,7 @@ aout_link_input_section_ext (struct aout_final_link_info *flaginfo,
asection *s;
s = aout_reloc_index_to_section (input_bfd, r_index);
- name = bfd_section_name (input_bfd, s);
+ name = bfd_section_name (s);
}
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, (h ? &h->root : NULL), name,
@@ -4868,8 +4867,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
return FALSE;
PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
PUT_WORD (output_bfd,
- (bfd_get_section_vma (output_bfd,
- obj_textsec (input_bfd)->output_section)
+ (bfd_section_vma (obj_textsec (input_bfd)->output_section)
+ obj_textsec (input_bfd)->output_offset),
outsym->e_value);
++obj_aout_external_sym_count (output_bfd);
@@ -5077,7 +5075,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
BFD_ASSERT (bfd_is_abs_section (output_section)
|| output_section->owner == output_bfd);
val = (hresolve->root.u.def.value
- + bfd_get_section_vma (output_bfd, output_section)
+ + bfd_section_vma (output_section)
+ input_section->output_offset);
/* Get the correct type based on the section. If
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 5a30344350..e55e3e90ba 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -299,21 +299,15 @@ typedef struct bfd_section *sec_ptr;
? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
: ~ (bfd_vma) 0)
-#define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
-#define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
-#define bfd_get_section_lma(bfd, ptr) ((void) bfd, (ptr)->lma)
-#define bfd_get_section_alignment(bfd, ptr) ((void) bfd, \
- (ptr)->alignment_power)
-#define bfd_section_name(bfd, ptr) ((ptr)->name)
-#define bfd_section_size(bfd, ptr) ((ptr)->size)
-#define bfd_get_section_size(ptr) ((ptr)->size)
-#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
-#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
-#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
-#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
-#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
-
-#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
+#define bfd_section_name(sec) ((sec)->name)
+#define bfd_section_size(sec) ((sec)->size)
+#define bfd_section_vma(sec) ((sec)->vma)
+#define bfd_section_lma(sec) ((sec)->lma)
+#define bfd_section_alignment(sec) ((sec)->alignment_power)
+#define bfd_section_flags(sec) ((sec)->flags)
+#define bfd_section_userdata(sec) ((sec)->userdata)
+
+#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
#define bfd_get_section_limit_octets(bfd, sec) \
((bfd)->direction != write_direction && (sec)->rawsize != 0 \
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 6542d403e0..425f0c6709 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -306,21 +306,15 @@ typedef struct bfd_section *sec_ptr;
? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
: ~ (bfd_vma) 0)
-#define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
-#define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
-#define bfd_get_section_lma(bfd, ptr) ((void) bfd, (ptr)->lma)
-#define bfd_get_section_alignment(bfd, ptr) ((void) bfd, \
- (ptr)->alignment_power)
-#define bfd_section_name(bfd, ptr) ((ptr)->name)
-#define bfd_section_size(bfd, ptr) ((ptr)->size)
-#define bfd_get_section_size(ptr) ((ptr)->size)
-#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
-#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
-#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
-#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
-#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
-
-#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
+#define bfd_section_name(sec) ((sec)->name)
+#define bfd_section_size(sec) ((sec)->size)
+#define bfd_section_vma(sec) ((sec)->vma)
+#define bfd_section_lma(sec) ((sec)->lma)
+#define bfd_section_alignment(sec) ((sec)->alignment_power)
+#define bfd_section_flags(sec) ((sec)->flags)
+#define bfd_section_userdata(sec) ((sec)->userdata)
+
+#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
#define bfd_get_section_limit_octets(bfd, sec) \
((bfd)->direction != write_direction && (sec)->rawsize != 0 \
@@ -1742,26 +1736,31 @@ struct relax_table {
would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
compilers will complain about comma expressions that have no effect. */
static inline bfd_boolean
-bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
- void * val)
+bfd_set_section_userdata (asection *sec, void *val)
+{
+ sec->userdata = val;
+ return TRUE;
+}
+
+static inline bfd_boolean
+bfd_set_section_vma (asection *sec, bfd_vma val)
{
- ptr->userdata = val;
+ sec->vma = sec->lma = val;
+ sec->user_set_vma = TRUE;
return TRUE;
}
static inline bfd_boolean
-bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
+bfd_set_section_lma (asection *sec, bfd_vma val)
{
- ptr->vma = ptr->lma = val;
- ptr->user_set_vma = TRUE;
+ sec->lma = val;
return TRUE;
}
static inline bfd_boolean
-bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
- unsigned int val)
+bfd_set_section_alignment (asection *sec, unsigned int val)
{
- ptr->alignment_power = val;
+ sec->alignment_power = val;
return TRUE;
}
@@ -1963,11 +1962,10 @@ asection *bfd_make_section_with_flags
asection *bfd_make_section (bfd *, const char *name);
-bfd_boolean bfd_set_section_flags
- (bfd *abfd, asection *sec, flagword flags);
+bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
void bfd_rename_section
- (bfd *abfd, asection *sec, const char *newname);
+ (asection *sec, const char *newname);
void bfd_map_over_sections
(bfd *abfd,
@@ -1979,8 +1977,7 @@ asection *bfd_sections_find_if
bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
void *obj);
-bfd_boolean bfd_set_section_size
- (bfd *abfd, asection *sec, bfd_size_type val);
+bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
bfd_boolean bfd_set_section_contents
(bfd *abfd, asection *section, const void *data,
diff --git a/bfd/bfd.c b/bfd/bfd.c
index c973c780b4..7029bf7b85 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -2342,7 +2342,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
bfd_put_32 (abfd, 1 << sec->alignment_power,
&echdr->ch_addralign);
/* bfd_log2 (alignof (Elf32_Chdr)) */
- bfd_set_section_alignment (abfd, sec, 2);
+ bfd_set_section_alignment (sec, 2);
}
else
{
@@ -2354,7 +2354,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
bfd_put_64 (abfd, 1 << sec->alignment_power,
&echdr->ch_addralign);
/* bfd_log2 (alignof (Elf64_Chdr)) */
- bfd_set_section_alignment (abfd, sec, 3);
+ bfd_set_section_alignment (sec, 3);
}
}
else
@@ -2368,7 +2368,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
memcpy (contents, "ZLIB", 4);
bfd_putb64 (sec->size, contents + 4);
/* No way to keep the original alignment, just use 1 always. */
- bfd_set_section_alignment (abfd, sec, 0);
+ bfd_set_section_alignment (sec, 0);
}
}
}
@@ -2597,7 +2597,7 @@ bfd_convert_section_contents (bfd *ibfd, sec_ptr isec, bfd *obfd,
use_memmove = TRUE;
}
- size = bfd_get_section_size (isec) - ihdr_size + ohdr_size;
+ size = bfd_section_size (isec) - ihdr_size + ohdr_size;
if (!use_memmove)
{
contents = (bfd_byte *) bfd_malloc (size);
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index ee4a3eeded..d36921bbfe 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -426,7 +426,7 @@ alpha_ecoff_object_p (bfd *abfd)
size = sec->line_filepos * 8;
BFD_ASSERT (size == sec->size
|| size + 8 == sec->size);
- if (! bfd_set_section_size (abfd, sec, size))
+ if (!bfd_set_section_size (sec, size))
return NULL;
}
}
@@ -1237,7 +1237,7 @@ alpha_convert_external_reloc (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Compute a new r_symndx value. */
hsec = h->root.u.def.section;
- name = bfd_get_section_name (output_bfd, hsec->output_section);
+ name = bfd_section_name (hsec->output_section);
r_symndx = (unsigned long) -1;
switch (name[1])
@@ -1928,8 +1928,7 @@ alpha_relocate_section (bfd *output_bfd,
if (r_extern)
name = sym_hashes[r_symndx]->root.root.string;
else
- name = bfd_section_name (input_bfd,
- symndx_to_section[r_symndx]);
+ name = bfd_section_name (symndx_to_section[r_symndx]);
(*info->callbacks->reloc_overflow)
(info, NULL, name, alpha_howto_table[r_type].name,
(bfd_vma) 0, input_bfd, input_section,
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index 5237bfb2d0..cbc5257e9f 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1989,7 +1989,7 @@ bfd_arm_get_bfd_for_interworking (bfd * abfd,
sec = bfd_make_section_with_flags (abfd, ARM2THUMB_GLUE_SECTION_NAME,
flags);
if (sec == NULL
- || ! bfd_set_section_alignment (abfd, sec, 2))
+ || !bfd_set_section_alignment (sec, 2))
return FALSE;
}
@@ -2003,7 +2003,7 @@ bfd_arm_get_bfd_for_interworking (bfd * abfd,
flags);
if (sec == NULL
- || ! bfd_set_section_alignment (abfd, sec, 2))
+ || !bfd_set_section_alignment (sec, 2))
return FALSE;
}
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index a2dd9e1c4f..c6fe679a6c 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1012,8 +1012,7 @@ mips_relocate_section (bfd *output_bfd,
/* Compute a new r_symndx value. */
s = h->root.u.def.section;
- name = bfd_get_section_name (output_bfd,
- s->output_section);
+ name = bfd_section_name (s->output_section);
int_rel.r_symndx = -1;
switch (name[1])
@@ -1223,7 +1222,7 @@ mips_relocate_section (bfd *output_bfd,
if (int_rel.r_extern)
name = NULL;
else
- name = bfd_section_name (input_bfd, s);
+ name = bfd_section_name (s);
(*info->callbacks->reloc_overflow)
(info, (h ? &h->root : NULL), name, howto->name,
(bfd_vma) 0, input_bfd, input_section,
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 1c80a9df88..091da1fd5e 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -959,7 +959,7 @@ xcoff64_write_object_contents (bfd *abfd)
if (text_sec != NULL)
{
internal_a.o_sntext = text_sec->target_index;
- internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+ internal_a.o_algntext = bfd_section_alignment (text_sec);
}
else
{
@@ -970,7 +970,7 @@ xcoff64_write_object_contents (bfd *abfd)
if (data_sec != NULL)
{
internal_a.o_sndata = data_sec->target_index;
- internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+ internal_a.o_algndata = bfd_section_alignment (data_sec);
}
else
{
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index dd3189fbd3..948bb705b0 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -1696,7 +1696,7 @@ coff_set_custom_section_alignment (bfd *abfd ATTRIBUTE_UNUSED,
for (i = 0; i < table_size; ++i)
{
- const char *secname = bfd_get_section_name (abfd, section);
+ const char *secname = bfd_section_name (section);
if (alignment_table[i].comparison_length == (unsigned int) -1
? strcmp (alignment_table[i].name, secname) == 0
@@ -1759,17 +1759,17 @@ coff_new_section_hook (bfd * abfd, asection * section)
#ifdef RS6000COFF_C
if (bfd_xcoff_text_align_power (abfd) != 0
- && strcmp (bfd_get_section_name (abfd, section), ".text") == 0)
+ && strcmp (bfd_section_name (section), ".text") == 0)
section->alignment_power = bfd_xcoff_text_align_power (abfd);
else if (bfd_xcoff_data_align_power (abfd) != 0
- && strcmp (bfd_get_section_name (abfd, section), ".data") == 0)
+ && strcmp (bfd_section_name (section), ".data") == 0)
section->alignment_power = bfd_xcoff_data_align_power (abfd);
else
{
int i;
for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
- if (strcmp (bfd_get_section_name (abfd, section),
+ if (strcmp (bfd_section_name (section),
xcoff_dwsect_names[i].name) == 0)
{
section->alignment_power = 0;
@@ -3221,7 +3221,7 @@ coff_compute_section_file_positions (bfd * abfd)
incremented in coff_set_section_contents. This is right for
SVR3.2. */
if (strcmp (current->name, _LIB) == 0)
- (void) bfd_set_section_vma (abfd, current, 0);
+ bfd_set_section_vma (current, 0);
#endif
#ifdef ALIGN_SECTIONS_IN_FILE
@@ -4011,7 +4011,7 @@ coff_write_object_contents (bfd * abfd)
if (text_sec != NULL)
{
internal_a.o_sntext = text_sec->target_index;
- internal_a.o_algntext = bfd_get_section_alignment (abfd, text_sec);
+ internal_a.o_algntext = bfd_section_alignment (text_sec);
}
else
{
@@ -4021,7 +4021,7 @@ coff_write_object_contents (bfd * abfd)
if (data_sec != NULL)
{
internal_a.o_sndata = data_sec->target_index;
- internal_a.o_algndata = bfd_get_section_alignment (abfd, data_sec);
+ internal_a.o_algndata = bfd_section_alignment (data_sec);
}
else
{
@@ -4390,8 +4390,7 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
PR 17521: file: 078-10659-0.004. */
continue;
else
- cache_ptr->u.offset = (dst.l_addr.l_paddr
- - bfd_section_vma (abfd, asect));
+ cache_ptr->u.offset = dst.l_addr.l_paddr - bfd_section_vma (asect);
cache_ptr++;
}
@@ -4886,7 +4885,7 @@ coff_classify_symbol (bfd *abfd,
name = _bfd_coff_internal_syment_name (abfd, syment, buf)
sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
if (sec != NULL && name != NULL
- && (strcmp (bfd_get_section_name (abfd, sec), name) == 0))
+ && (strcmp (bfd_section_name (sec), name) == 0))
return COFF_SYMBOL_PE_SECTION;
}
#endif
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 80a9a2ab9a..ba7bb5eaf4 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -217,7 +217,7 @@ make_a_section_from_file (bfd *abfd,
break;
}
if (new_name != NULL)
- bfd_rename_section (abfd, return_section, new_name);
+ bfd_rename_section (return_section, new_name);
}
return result;
@@ -2366,7 +2366,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
bfd_vma maxdiff;
/* Look through the C_FILE symbols to find the best one. */
- sec_vma = bfd_get_section_vma (abfd, section);
+ sec_vma = bfd_section_vma (section);
*filename_ptr = (char *) p->u.syment._n._n_n._n_offset;
maxdiff = (bfd_vma) 0 - (bfd_vma) 1;
while (1)
@@ -2658,7 +2658,7 @@ _bfd_coff_section_already_linked (bfd *abfd,
if ((flags & SEC_GROUP) != 0)
return FALSE;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
s_comdat = bfd_coff_get_comdat_section (abfd, sec);
if (s_comdat != NULL)
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 7bcc1ca77d..2115e9c36a 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -2846,8 +2846,7 @@ _bfd_coff_reloc_link_order (bfd *output_bfd,
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, NULL,
(link_order->type == bfd_section_reloc_link_order
- ? bfd_section_name (output_bfd,
- link_order->u.reloc.p->u.section)
+ ? bfd_section_name (link_order->u.reloc.p->u.section)
: link_order->u.reloc.p->u.name),
howto->name, link_order->u.reloc.p->addend,
(bfd *) NULL, (asection *) NULL, (bfd_vma) 0);
diff --git a/bfd/compress.c b/bfd/compress.c
index 32de09923d..8f96d064bd 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -155,8 +155,7 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec,
return 0;
}
free (uncompressed_buffer);
- bfd_set_section_alignment (abfd, sec,
- orig_uncompressed_alignment_pow);
+ bfd_set_section_alignment (sec, orig_uncompressed_alignment_pow);
sec->contents = buffer;
sec->compress_status = COMPRESS_SECTION_DONE;
@@ -255,7 +254,7 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
&& filesize < sz
/* PR 24753: Linker created sections can be larger than
the file size, eg if they are being used to hold stubs. */
- && (bfd_get_section_flags (abfd, sec) & SEC_LINKER_CREATED) == 0
+ && (bfd_section_flags (sec) & SEC_LINKER_CREATED) == 0
/* The MMO file format supports its own special compression
technique, but it uses COMPRESS_SECTION_NONE when loading
a section's contents. */
@@ -552,7 +551,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
sec->compressed_size = sec->size;
sec->size = uncompressed_size;
- bfd_set_section_alignment (abfd, sec, uncompressed_alignment_power);
+ bfd_set_section_alignment (sec, uncompressed_alignment_power);
sec->compress_status = DECOMPRESS_SECTION_SIZED;
return TRUE;
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index c06fa5ec7f..30adba0e6d 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -1676,10 +1676,10 @@ ecoff_slurp_reloc_table (bfd *abfd,
abort ();
rptr->sym_ptr_ptr = sec->symbol_ptr_ptr;
- rptr->addend = - bfd_get_section_vma (abfd, sec);
+ rptr->addend = - bfd_section_vma (sec);
}
- rptr->address = intern.r_vaddr - bfd_get_section_vma (abfd, section);
+ rptr->address = intern.r_vaddr - bfd_section_vma (section);
/* Let the backend select the howto field and do any other
required processing. */
@@ -2431,7 +2431,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
strncpy (section.s_name, current->name, sizeof section.s_name);
/* This seems to be correct for Irix 4 shared libraries. */
- vma = bfd_get_section_vma (abfd, current);
+ vma = bfd_section_vma (current);
if (streq (current->name, _LIB))
section.s_vaddr = 0;
else
@@ -2682,8 +2682,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
if (reloc->howto == NULL)
continue;
- in.r_vaddr = (reloc->address
- + bfd_get_section_vma (abfd, current));
+ in.r_vaddr = reloc->address + bfd_section_vma (current);
in.r_type = reloc->howto->type;
if ((sym->flags & BSF_SECTION_SYM) == 0)
@@ -2719,7 +2718,7 @@ _bfd_ecoff_write_object_contents (bfd *abfd)
{ _RCONST, RELOC_SECTION_RCONST }
};
- name = bfd_get_section_name (abfd, bfd_asymbol_section (sym));
+ name = bfd_section_name (bfd_asymbol_section (sym));
for (j = 0; j < ARRAY_SIZE (section_symndx); j++)
if (streq (name, section_symndx[j].name))
@@ -4010,7 +4009,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
(*info->callbacks->reloc_overflow)
(info, NULL,
(link_order->type == bfd_section_reloc_link_order
- ? bfd_section_name (output_bfd, section)
+ ? bfd_section_name (section)
: link_order->u.reloc.p->u.name),
rel.howto->name, addend, NULL, NULL, (bfd_vma) 0);
break;
@@ -4025,8 +4024,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
rel.addend = 0;
/* Move the information into an internal_reloc structure. */
- in.r_vaddr = (rel.address
- + bfd_get_section_vma (output_bfd, output_section));
+ in.r_vaddr = rel.address + bfd_section_vma (output_section);
in.r_type = rel.howto->type;
if (type == bfd_symbol_reloc_link_order)
@@ -4076,7 +4074,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
{ _RCONST, RELOC_SECTION_RCONST }
};
- name = bfd_get_section_name (output_bfd, section);
+ name = bfd_section_name (section);
for (i = 0; i < ARRAY_SIZE (section_symndx); i++)
if (streq (name, section_symndx[i].name))
@@ -4189,7 +4187,7 @@ ecoff_link_write_external (struct bfd_hash_entry *bh, void * data)
};
output_section = h->root.u.def.section->output_section;
- name = bfd_section_name (output_section->owner, output_section);
+ name = bfd_section_name (output_section);
for (i = 0; i < ARRAY_SIZE (section_storage_classes); i++)
if (streq (name, section_storage_classes[i].name))
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 6919ac3031..c2cb77bb11 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -1109,7 +1109,7 @@ add_eh_frame_hdr_terminator (asection *sec,
if (!sec->rawsize)
sec->rawsize = sec->size;
- bfd_set_section_size (sec->owner, sec, sec->size + 8);
+ bfd_set_section_size (sec, sec->size + 8);
}
/* Finish a pass over all .eh_frame_entry sections. */
@@ -1682,7 +1682,7 @@ _bfd_elf_eh_frame_entry_present (struct bfd_link_info *info)
{
for (o = abfd->sections; o; o = o->next)
{
- const char *name = bfd_get_section_name (abfd, o);
+ const char *name = bfd_section_name (o);
if (strcmp (name, ".eh_frame_entry")
&& !bfd_is_abs_section (o->output_section))
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index cc98caeeb0..2035d4c9c0 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -881,7 +881,7 @@ elf_hppa_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".PARISC.unwind") == 0)
{
diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c
index 89054e439a..58948e32f1 100644
--- a/bfd/elf-ifunc.c
+++ b/bfd/elf-ifunc.c
@@ -62,8 +62,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_with_flags (abfd, rel_sec,
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->irelifunc = s;
}
@@ -73,7 +72,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
for static executables. */
s = bfd_make_section_with_flags (abfd, ".iplt", pltflags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
htab->iplt = s;
@@ -82,8 +81,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.iplt" : ".rel.iplt"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->irelplt = s;
@@ -94,8 +92,7 @@ _bfd_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
else
s = bfd_make_section_with_flags (abfd, ".igot", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->igotplt = s;
}
diff --git a/bfd/elf-m10200.c b/bfd/elf-m10200.c
index cfccb96867..b234c168c8 100644
--- a/bfd/elf-m10200.c
+++ b/bfd/elf-m10200.c
@@ -413,7 +413,7 @@ mn10200_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index acc3c54258..30828f117a 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -725,7 +725,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
htab->splt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
/* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
@@ -742,7 +742,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
htab->sgot = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (bed->want_got_plt)
@@ -750,7 +750,7 @@ _bfd_mn10300_elf_create_got_section (bfd * abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
htab->sgotplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
@@ -2125,7 +2125,7 @@ mn10300_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -4821,7 +4821,7 @@ _bfd_mn10300_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->root.srelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (! _bfd_mn10300_elf_create_got_section (abfd, info))
@@ -4858,7 +4858,7 @@ _bfd_mn10300_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
@@ -5073,7 +5073,7 @@ _bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (streq (name, ".plt"))
{
@@ -5099,8 +5099,7 @@ _bfd_mn10300_elf_size_dynamic_sections (bfd * output_bfd,
entry. The entries in the .rela.plt section
really apply to the .got section, which we
created ourselves and so know is not readonly. */
- outname = bfd_get_section_name (output_bfd,
- s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 5);
if (target != NULL
&& (target->flags & SEC_READONLY) != 0
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c
index 198eece084..199e61728e 100644
--- a/bfd/elf-properties.c
+++ b/bfd/elf-properties.c
@@ -695,12 +695,12 @@ _bfd_elf_convert_gnu_properties (bfd *ibfd, asection *isec,
align_shift = bed->s->elfclass == ELFCLASS64 ? 3 : 2;
/* Get the output .note.gnu.property section size. */
- size = bfd_get_section_size (isec->output_section);
+ size = bfd_section_size (isec->output_section);
/* Update the output .note.gnu.property section alignment. */
- bfd_set_section_alignment (obfd, isec->output_section, align_shift);
+ bfd_set_section_alignment (isec->output_section, align_shift);
- if (size > bfd_get_section_size (isec))
+ if (size > bfd_section_size (isec))
{
contents = (bfd_byte *) bfd_malloc (size);
free (*ptr);
diff --git a/bfd/elf-s390-common.c b/bfd/elf-s390-common.c
index ef8abeb2d0..d7cd7e60e9 100644
--- a/bfd/elf-s390-common.c
+++ b/bfd/elf-s390-common.c
@@ -131,8 +131,7 @@ s390_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_with_flags (abfd, ".rela.ifunc",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->irelifunc = s;
}
@@ -141,21 +140,19 @@ s390_elf_create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_with_flags (abfd, ".iplt",
flags | SEC_CODE | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
htab->iplt = s;
s = bfd_make_section_with_flags (abfd, ".rela.iplt", flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->irelplt = s;
s = bfd_make_section_with_flags (abfd, ".igot.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->igotplt = s;
diff --git a/bfd/elf-vxworks.c b/bfd/elf-vxworks.c
index a7f574c2ef..8fe17bf628 100644
--- a/bfd/elf-vxworks.c
+++ b/bfd/elf-vxworks.c
@@ -97,7 +97,7 @@ elf_vxworks_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info,
| SEC_READONLY
| SEC_LINKER_CREATED);
if (s == NULL
- || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
*srelplt2_out = s;
@@ -279,9 +279,7 @@ elf_vxworks_finish_dynamic_entry (bfd *output_bfd, Elf_Internal_Dyn *dyn)
case DT_VX_WRS_TLS_DATA_ALIGN:
sec = bfd_get_section_by_name (output_bfd, ".tls_data");
- dyn->d_un.d_val
- = (bfd_size_type)1 << bfd_get_section_alignment (output_bfd,
- sec);
+ dyn->d_un.d_val = (bfd_size_type) 1 << bfd_section_alignment (sec);
break;
case DT_VX_WRS_TLS_VARS_START:
diff --git a/bfd/elf.c b/bfd/elf.c
index 1a1eed9085..664eae5c66 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -547,7 +547,7 @@ bfd_elf_sym_name (bfd *abfd,
if (name == NULL)
name = "(null)";
else if (sym_sec && *name == '\0')
- name = bfd_section_name (abfd, sym_sec);
+ name = bfd_section_name (sym_sec);
return name;
}
@@ -1049,10 +1049,9 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
newsect->filepos = hdr->sh_offset;
- if (! bfd_set_section_vma (abfd, newsect, hdr->sh_addr)
- || ! bfd_set_section_size (abfd, newsect, hdr->sh_size)
- || ! bfd_set_section_alignment (abfd, newsect,
- bfd_log2 (hdr->sh_addralign)))
+ if (!bfd_set_section_vma (newsect, hdr->sh_addr)
+ || !bfd_set_section_size (newsect, hdr->sh_size)
+ || !bfd_set_section_alignment (newsect, bfd_log2 (hdr->sh_addralign)))
return FALSE;
flags = SEC_NO_FLAGS;
@@ -1142,7 +1141,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
if (! bed->elf_backend_section_flags (&flags, hdr))
return FALSE;
- if (! bfd_set_section_flags (abfd, newsect, flags))
+ if (!bfd_set_section_flags (newsect, flags))
return FALSE;
/* We do not parse the PT_NOTE segments as we are interested even in the
@@ -1286,7 +1285,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
char *new_name = convert_zdebug_to_debug (abfd, name);
if (new_name == NULL)
return FALSE;
- bfd_rename_section (abfd, newsect, new_name);
+ bfd_rename_section (newsect, new_name);
}
}
else
@@ -5542,7 +5541,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
{
unsigned int secalign;
- secalign = bfd_get_section_alignment (abfd, *secpp);
+ secalign = bfd_section_alignment (*secpp);
if (secalign > align_power)
align_power = secalign;
}
@@ -5696,7 +5695,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
sec = *secpp;
this_hdr = &elf_section_data (sec)->this_hdr;
- align = (bfd_size_type) 1 << bfd_get_section_alignment (abfd, sec);
+ align = (bfd_size_type) 1 << bfd_section_alignment (sec);
if ((p->p_type == PT_LOAD
|| p->p_type == PT_TLS)
@@ -6835,8 +6834,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
|| (segment->p_paddr \
? segment->p_paddr != section->lma \
: segment->p_vaddr != section->vma) \
- || (strcmp (bfd_get_section_name (ibfd, section), ".dynamic") \
- == 0)) \
+ || (strcmp (bfd_section_name (section), ".dynamic") == 0)) \
&& (segment->p_type != PT_LOAD || !section->segment_mark))
/* If the output section of a section in the input segment is NULL,
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index 493f32dad7..91537efd84 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -900,7 +900,7 @@ arc_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
for (sec = ibfd->sections; sec != NULL; sec = sec->next)
{
- if ((bfd_get_section_flags (ibfd, sec)
+ if ((bfd_section_flags (sec)
& (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
== (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
only_data_sections = FALSE;
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index e29a60abf1..1c4887a034 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -3817,7 +3817,8 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
htab->srofixup = bfd_make_section_with_flags (dynobj, ".rofixup",
(SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
| SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY));
- if (htab->srofixup == NULL || ! bfd_set_section_alignment (dynobj, htab->srofixup, 2))
+ if (htab->srofixup == NULL
+ || !bfd_set_section_alignment (htab->srofixup, 2))
return FALSE;
}
@@ -3845,7 +3846,7 @@ create_ifunc_sections (struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (dynobj, ".iplt",
flags | SEC_READONLY | SEC_CODE);
if (s == NULL
- || !bfd_set_section_alignment (dynobj, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
htab->root.iplt = s;
}
@@ -3856,7 +3857,7 @@ create_ifunc_sections (struct bfd_link_info *info)
RELOC_SECTION (htab, ".iplt"),
flags | SEC_READONLY);
if (s == NULL
- || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->root.irelplt = s;
}
@@ -3865,7 +3866,7 @@ create_ifunc_sections (struct bfd_link_info *info)
{
s = bfd_make_section_anyway_with_flags (dynobj, ".igot.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->root.igotplt = s;
}
@@ -7709,7 +7710,7 @@ arm_make_glue_section (bfd * abfd, const char * name)
sec = bfd_make_section_anyway_with_flags (abfd, name, ARM_GLUE_SECTION_FLAGS);
if (sec == NULL
- || !bfd_set_section_alignment (abfd, sec, 2))
+ || !bfd_set_section_alignment (sec, 2))
return FALSE;
/* Set the gc mark to prevent the section from being removed by garbage
@@ -13374,7 +13375,7 @@ elf32_arm_relocate_section (bfd * output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r_symndx != STN_UNDEF
@@ -13552,10 +13553,10 @@ adjust_exidx_size(asection *exidx_sec, int adjust)
if (!exidx_sec->rawsize)
exidx_sec->rawsize = exidx_sec->size;
- bfd_set_section_size (exidx_sec->owner, exidx_sec, exidx_sec->size + adjust);
+ bfd_set_section_size (exidx_sec, exidx_sec->size + adjust);
out_sec = exidx_sec->output_section;
/* Adjust size of output section. */
- bfd_set_section_size (out_sec->owner, out_sec, out_sec->size +adjust);
+ bfd_set_section_size (out_sec, out_sec->size +adjust);
}
/* Insert an EXIDX_CANTUNWIND marker at the end of a section. */
@@ -15696,9 +15697,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
{
flagword flags;
- flags = bfd_get_section_flags (dynobj, sreloc);
+ flags = bfd_section_flags (sreloc);
flags &= ~(SEC_LOAD | SEC_ALLOC);
- bfd_set_section_flags (dynobj, sreloc, flags);
+ bfd_set_section_flags (sreloc, flags);
}
}
@@ -17158,7 +17159,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (s == htab->root.splt)
{
@@ -17951,7 +17952,7 @@ elf32_arm_fake_sections (bfd * abfd, Elf_Internal_Shdr * hdr, asection * sec)
{
const char * name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (is_arm_elf_unwind_section_name (abfd, name))
{
@@ -20874,7 +20875,7 @@ elf32_arm_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
if (strcmp (sec->name, ".glue_7")
&& strcmp (sec->name, ".glue_7t"))
{
- if ((bfd_get_section_flags (ibfd, sec)
+ if ((bfd_section_flags (sec)
& (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
== (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
only_data_sections = FALSE;
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index e75ac9fc1d..f04cc94ff3 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -1465,7 +1465,7 @@ elf32_avr_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
@@ -2354,8 +2354,7 @@ avr_property_record_compare (const void *ap, const void *bp)
return (a->offset - b->offset);
if (a->section != b->section)
- return (bfd_get_section_vma (a->section->owner, a->section)
- - bfd_get_section_vma (b->section->owner, b->section));
+ return bfd_section_vma (a->section) - bfd_section_vma (b->section);
return (a->type - b->type);
}
@@ -3948,12 +3947,12 @@ internal_reloc_compare (const void *ap, const void *bp)
/* Return true if ADDRESS is within the vma range of SECTION from ABFD. */
static bfd_boolean
-avr_is_section_for_address (bfd *abfd, asection *section, bfd_vma address)
+avr_is_section_for_address (asection *section, bfd_vma address)
{
bfd_vma vma;
bfd_size_type size;
- vma = bfd_get_section_vma (abfd, section);
+ vma = bfd_section_vma (section);
if (address < vma)
return FALSE;
@@ -3985,7 +3984,7 @@ struct avr_find_section_data
perform any checks, and just returns. */
static void
-avr_find_section_for_address (bfd *abfd,
+avr_find_section_for_address (bfd *abfd ATTRIBUTE_UNUSED,
asection *section, void *data)
{
struct avr_find_section_data *fs_data
@@ -3996,11 +3995,11 @@ avr_find_section_for_address (bfd *abfd,
return;
/* If this section isn't part of the addressable code content, skip it. */
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0
- && (bfd_get_section_flags (abfd, section) & SEC_CODE) == 0)
+ if ((bfd_section_flags (section) & SEC_ALLOC) == 0
+ && (bfd_section_flags (section) & SEC_CODE) == 0)
return;
- if (avr_is_section_for_address (abfd, section, fs_data->address))
+ if (avr_is_section_for_address (section, fs_data->address))
fs_data->section = section;
}
@@ -4023,7 +4022,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
fs_data.section = NULL;
- size = bfd_get_section_size (sec);
+ size = bfd_section_size (sec);
contents = bfd_malloc (size);
bfd_get_section_contents (abfd, sec, contents, 0, size);
ptr = contents;
@@ -4126,8 +4125,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
{
/* Try to find section and offset from address. */
if (fs_data.section != NULL
- && !avr_is_section_for_address (abfd, fs_data.section,
- address))
+ && !avr_is_section_for_address (fs_data.section, address))
fs_data.section = NULL;
if (fs_data.section == NULL)
@@ -4145,7 +4143,7 @@ avr_elf32_load_records_from_section (bfd *abfd, asection *sec)
r_list->records [i].section = fs_data.section;
r_list->records [i].offset
- = address - bfd_get_section_vma (abfd, fs_data.section);
+ = address - bfd_section_vma (fs_data.section);
}
r_list->records [i].type = *((bfd_byte *) ptr);
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index d73bfdaee3..6efee04c8b 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -1601,7 +1601,7 @@ bfin_relocate_section (bfd * output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
@@ -2560,7 +2560,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
@@ -2778,8 +2778,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
bfd_vma offset;
addend += bfinfdpic_got_section (info)->output_section->vma;
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -2807,8 +2806,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
picrel);
}
}
- else if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ else if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@ -2901,8 +2899,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
if (osec)
addend += osec->output_section->vma;
if (IS_FDPIC (input_bfd)
- && (bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ && (bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -2939,8 +2936,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
}
else
{
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_bfinfdpic_osec_readonly_p (output_bfd,
@@ -3201,7 +3197,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (bed->want_got_sym)
@@ -3238,7 +3234,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rel.got",
(flags | SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
bfinfdpic_gotrel_section (info) = s;
@@ -3247,7 +3243,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
(flags | SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
bfinfdpic_gotfixup_section (info) = s;
@@ -3261,7 +3257,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
/* Blackfin-specific: remember it. */
bfinfdpic_plt_section (info) = s;
@@ -3289,7 +3285,7 @@ _bfin_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
/* Blackfin-specific: remember it. */
bfinfdpic_pltrel_section (info) = s;
@@ -3355,7 +3351,7 @@ elf32_bfinfdpic_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
".rela.bss",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
}
}
@@ -4616,7 +4612,7 @@ bfinfdpic_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_BFIN_FUNCDESC_VALUE:
picrel->relocsfdv++;
- if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ if (bfd_section_flags (sec) & SEC_ALLOC)
picrel->relocs32--;
/* Fall through. */
@@ -4625,7 +4621,7 @@ bfinfdpic_check_relocs (bfd *abfd, struct bfd_link_info *info,
break;
picrel->sym++;
- if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ if (bfd_section_flags (sec) & SEC_ALLOC)
picrel->relocs32++;
break;
@@ -5064,9 +5060,9 @@ bfin_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Apply the required alignment. */
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > bfd_get_section_alignment (dynobj, s))
+ if (power_of_two > bfd_section_alignment (s))
{
- if (!bfd_set_section_alignment (dynobj, s, power_of_two))
+ if (!bfd_set_section_alignment (s, power_of_two))
return FALSE;
}
@@ -5200,7 +5196,7 @@ bfin_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
strip = FALSE;
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index 7d0a0e558f..72642e532c 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -610,7 +610,7 @@ _bfd_cr16_elf_create_got_section (bfd * abfd, struct bfd_link_info * info)
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
htab->sgot= s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (bed->want_got_plt)
@@ -618,7 +618,7 @@ _bfd_cr16_elf_create_got_section (bfd * abfd, struct bfd_link_info * info)
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
htab->sgotplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
@@ -1444,7 +1444,7 @@ elf32_cr16_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -2241,7 +2241,7 @@ _bfd_cr16_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->srelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (! _bfd_cr16_elf_create_got_section (abfd, info))
@@ -2278,7 +2278,7 @@ _bfd_cr16_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
@@ -2463,7 +2463,7 @@ _bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (strcmp (name, ".plt") == 0)
{
@@ -2489,8 +2489,7 @@ _bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd,
entry. The entries in the .rela.plt section
really apply to the .got section, which we
created ourselves and so know is not readonly. */
- outname = bfd_get_section_name (output_bfd,
- s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 5);
if (target != NULL
&& (target->flags & SEC_READONLY) != 0
diff --git a/bfd/elf32-cr16c.c b/bfd/elf32-cr16c.c
index 9a2fda0ea8..35bacbbc6f 100644
--- a/bfd/elf32-cr16c.c
+++ b/bfd/elf32-cr16c.c
@@ -763,7 +763,7 @@ elf32_cr16c_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -827,9 +827,9 @@ elf32_cr16c_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".fcommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".fcommon") == 0)
*retval = SHN_CR16C_FCOMMON;
- else if (strcmp (bfd_get_section_name (abfd, sec), ".ncommon") == 0)
+ else if (strcmp (bfd_section_name (sec), ".ncommon") == 0)
*retval = SHN_CR16C_NCOMMON;
else
return FALSE;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 5d230562a5..9c07b6d7b9 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -1044,7 +1044,7 @@ cris_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
symname = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (symname == NULL)
- symname = bfd_section_name (input_bfd, sec);
+ symname = bfd_section_name (sec);
}
else
{
@@ -2480,7 +2480,7 @@ cris_elf_plt_sym_val (bfd_vma i ATTRIBUTE_UNUSED, const asection *plt,
if ((got = bfd_get_section_by_name (abfd, ".got")) == NULL)
return (bfd_vma) -1;
- plt_sec_size = bfd_section_size (plt->owner, plt);
+ plt_sec_size = bfd_section_size (plt);
plt_entry_size
= (bfd_get_mach (abfd) == bfd_mach_cris_v32
? PLT_ENTRY_SIZE_V32 : PLT_ENTRY_SIZE);
@@ -3580,7 +3580,7 @@ elf_cris_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (strcmp (name, ".plt") == 0)
{
diff --git a/bfd/elf32-crx.c b/bfd/elf32-crx.c
index 306a0e4f2b..6d15b2b10b 100644
--- a/bfd/elf32-crx.c
+++ b/bfd/elf32-crx.c
@@ -905,7 +905,7 @@ elf32_crx_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index b3451b60b2..16897b3930 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -2092,7 +2092,7 @@ csky_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
if (htab->elf.hplt != NULL)
strip_section = FALSE;
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rel") )
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rel") )
{
if (s->size != 0 )
relocs = TRUE;
@@ -5070,7 +5070,7 @@ csky_elf_relocate_section (bfd * output_bfd,
if (name == NULL)
break;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
(*info->callbacks->reloc_overflow)
(info,
diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c
index a03ce63286..bd07ad68b2 100644
--- a/bfd/elf32-d10v.c
+++ b/bfd/elf32-d10v.c
@@ -482,7 +482,7 @@ elf32_d10v_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
diff --git a/bfd/elf32-epiphany.c b/bfd/elf32-epiphany.c
index 4bd417d6f5..c45f0b3504 100644
--- a/bfd/elf32-epiphany.c
+++ b/bfd/elf32-epiphany.c
@@ -518,7 +518,7 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c
index 6a13767c7a..0d299c64b6 100644
--- a/bfd/elf32-fr30.c
+++ b/bfd/elf32-fr30.c
@@ -549,7 +549,7 @@ fr30_elf_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 8c6a97dea2..7770687f55 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -2736,7 +2736,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
if (name == NULL || name[0] == 0)
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
else
{
@@ -3566,8 +3566,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
&& (!h || FRVFDPIC_FUNCDESC_LOCAL (info, h)))
{
addend += frvfdpic_got_section (info)->output_section->vma;
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@ -3597,8 +3596,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
picrel);
}
}
- else if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ else if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@ -3691,8 +3689,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
if (osec)
addend += osec->output_section->vma;
if (IS_FDPIC (input_bfd)
- && (bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ && (bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_frvfdpic_osec_readonly_p (output_bfd,
@@ -3732,8 +3729,7 @@ elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
}
else
{
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@ -4192,7 +4188,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (bed->want_got_sym)
@@ -4230,14 +4226,14 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
(flags | SEC_READONLY));
elf_hash_table (info)->srelgot = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
/* Machine-specific. */
s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
(flags | SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
frvfdpic_gotfixup_section (info) = s;
@@ -4285,7 +4281,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_plt_section (info) = s;
@@ -4305,7 +4301,7 @@ _frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_pltrel_section (info) = s;
@@ -4373,7 +4369,7 @@ elf32_frvfdpic_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
}
}
@@ -6137,7 +6133,7 @@ elf32_frv_check_relocs (bfd *abfd,
case R_FRV_FUNCDESC_VALUE:
picrel->relocsfdv++;
- if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ if (bfd_section_flags (sec) & SEC_ALLOC)
picrel->relocs32--;
/* Fall through. */
@@ -6146,7 +6142,7 @@ elf32_frv_check_relocs (bfd *abfd,
break;
picrel->sym = 1;
- if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ if (bfd_section_flags (sec) & SEC_ALLOC)
picrel->relocs32++;
break;
diff --git a/bfd/elf32-ft32.c b/bfd/elf32-ft32.c
index d67372429d..b8e69e5a24 100644
--- a/bfd/elf32-ft32.c
+++ b/bfd/elf32-ft32.c
@@ -389,7 +389,7 @@ ft32_elf_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index a2f06d5a92..ba7c8b2062 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -502,7 +502,7 @@ elf32_h8_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index a61adbc3c8..f065449b15 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -2270,12 +2270,12 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Make space for the plt stub at the end of the .plt
section. We want this stub right at the end, up
against the .got section. */
- int gotalign = bfd_section_alignment (dynobj, htab->etab.sgot);
- int pltalign = bfd_section_alignment (dynobj, sec);
+ int gotalign = bfd_section_alignment (htab->etab.sgot);
+ int pltalign = bfd_section_alignment (sec);
bfd_size_type mask;
if (gotalign > pltalign)
- (void) bfd_set_section_alignment (dynobj, sec, gotalign);
+ bfd_set_section_alignment (sec, gotalign);
mask = ((bfd_size_type) 1 << gotalign) - 1;
sec->size = (sec->size + sizeof (plt_stub) + mask) & ~mask;
}
@@ -2284,7 +2284,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|| sec == htab->etab.sdynbss
|| sec == htab->etab.sdynrelro)
;
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, sec), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (sec), ".rela"))
{
if (sec->size != 0)
{
@@ -4151,7 +4151,7 @@ elf32_hppa_relocate_section (bfd *output_bfd,
if (sym_name == NULL)
return FALSE;
if (*sym_name == '\0')
- sym_name = bfd_section_name (input_bfd, sym_sec);
+ sym_name = bfd_section_name (sym_sec);
_bfd_error_handler
(_("%pB:%s has both normal and TLS relocs"),
input_bfd, sym_name);
@@ -4201,7 +4201,7 @@ elf32_hppa_relocate_section (bfd *output_bfd,
if (sym_name == NULL)
return FALSE;
if (*sym_name == '\0')
- sym_name = bfd_section_name (input_bfd, sym_sec);
+ sym_name = bfd_section_name (sym_sec);
}
howto = elf_hppa_howto_table + r_type;
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index d7a61d7a48..9248ef5a41 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1948,7 +1948,7 @@ elf_i386_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
/* This is an ugly, but unfortunately necessary hack that is
needed when producing EFI binaries on x86. It tells
@@ -3429,7 +3429,7 @@ check_relocation_error:
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-ip2k.c b/bfd/elf32-ip2k.c
index 43e7be63da..6e5131ff98 100644
--- a/bfd/elf32-ip2k.c
+++ b/bfd/elf32-ip2k.c
@@ -1435,7 +1435,7 @@ ip2k_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c
index 6e47027292..e95f1a56ea 100644
--- a/bfd/elf32-iq2000.c
+++ b/bfd/elf32-iq2000.c
@@ -625,7 +625,7 @@ iq2000_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, osec) : name;
+ name = name == NULL ? bfd_section_name (osec) : name;
}
else
{
diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index 5233dbbb67..0601f1454b 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -195,8 +195,7 @@ create_rofixup_section (bfd *dynobj, struct bfd_link_info *info)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (lm32fdpic_fixup32_section (info) == NULL
- || ! bfd_set_section_alignment (dynobj,
- lm32fdpic_fixup32_section (info), 2))
+ || !bfd_set_section_alignment (lm32fdpic_fixup32_section (info), 2))
return FALSE;
return TRUE;
@@ -821,7 +820,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
@@ -1036,7 +1035,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
if ((!h) || (h && h->root.type != bfd_link_hash_undefweak))
{
/* Only create .rofixup entries for relocs in loadable sections. */
- if ((bfd_get_section_flags (output_bfd, input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
@@ -1090,7 +1089,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -2120,7 +2119,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->root.srelplt)
relocs = TRUE;
@@ -2255,7 +2254,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
/* Don't generate entries for weak symbols. */
if (!h || (h && h->root.type != bfd_link_hash_undefweak))
{
- if (!discarded_section (s) && !((bfd_get_section_flags (ibfd, s) & SEC_ALLOC) == 0))
+ if (!discarded_section (s) && !((bfd_section_flags (s) & SEC_ALLOC) == 0))
{
switch (ELF32_R_TYPE (internal_relocs->r_info))
{
@@ -2277,7 +2276,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
if (!strcmp (current->name, h->root.root.string))
break;
}
- if (!current && !discarded_section (s) && (bfd_get_section_flags (ibfd, s) & SEC_ALLOC))
+ if (!current && !discarded_section (s) && (bfd_section_flags (s) & SEC_ALLOC))
{
/* Will this have an entry in the GOT. */
if (ELF32_R_TYPE (internal_relocs->r_info) == R_LM32_16_GOT)
@@ -2377,7 +2376,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
htab->root.splt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
if (bed->want_plt_sym)
@@ -2408,7 +2407,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->root.srelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (htab->root.sgot == NULL
@@ -2447,7 +2446,7 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->srelbss = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c
index b12c788c0d..e3f03cc045 100644
--- a/bfd/elf32-m32c.c
+++ b/bfd/elf32-m32c.c
@@ -450,7 +450,7 @@ m32c_elf_relocate_section
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+ name = sym->st_name == 0 ? bfd_section_name (sec) : name;
}
else
{
@@ -709,7 +709,7 @@ m32c_elf_check_relocs
flags);
elf_hash_table (info)->splt = splt;
if (splt == NULL
- || ! bfd_set_section_alignment (dynobj, splt, 1))
+ || !bfd_set_section_alignment (splt, 1))
return FALSE;
}
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 2f182e782d..edd04b91d9 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1322,7 +1322,7 @@ _bfd_m32r_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
{
*retval = SHN_M32R_SCOMMON;
return TRUE;
@@ -1407,7 +1407,7 @@ m32r_elf_add_symbol_hook (bfd *abfd,
flags);
if (s == NULL)
return FALSE;
- if (! bfd_set_section_alignment (abfd, s, 2))
+ if (!bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -1623,7 +1623,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
htab->root.splt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
if (bed->want_plt_sym)
@@ -1654,7 +1654,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->root.srelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (htab->root.sgot == NULL
@@ -1693,7 +1693,7 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->srelbss = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
@@ -2234,7 +2234,7 @@ m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->root.srelplt)
relocs = TRUE;
@@ -2954,7 +2954,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
const char *name;
BFD_ASSERT (sec != NULL);
- name = bfd_get_section_name (sec->owner, sec);
+ name = bfd_section_name (sec);
if ( strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0
@@ -3022,7 +3022,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (errmsg != NULL)
diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c
index 6a996789b5..8739ca86c1 100644
--- a/bfd/elf32-m68hc1x.c
+++ b/bfd/elf32-m68hc1x.c
@@ -267,7 +267,7 @@ elf32_m68hc11_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info)
section != NULL;
section = section->next)
{
- const char* name = bfd_get_section_name (input_bfd, section);
+ const char *name = bfd_section_name (section);
if (!strcmp (name, ".tramp"))
htab->tramp_section = section;
@@ -1014,7 +1014,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (is_far && ELF32_R_TYPE (rel->r_info) == R_M68HC11_16)
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 177be5d1d3..559578d818 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -3104,7 +3104,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (strcmp (name, ".plt") == 0)
{
@@ -3938,7 +3938,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
_bfd_error_handler
@@ -3973,7 +3973,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-mcore.c b/bfd/elf32-mcore.c
index 7bca458508..3a58ff3038 100644
--- a/bfd/elf32-mcore.c
+++ b/bfd/elf32-mcore.c
@@ -536,7 +536,7 @@ mcore_elf_relocate_section (bfd * output_bfd,
break;
if (* name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
(*info->callbacks->reloc_overflow)
diff --git a/bfd/elf32-mep.c b/bfd/elf32-mep.c
index 414e6f394b..f46e3bcbe3 100644
--- a/bfd/elf32-mep.c
+++ b/bfd/elf32-mep.c
@@ -477,7 +477,7 @@ mep_elf_relocate_section
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index f68f9dca6f..e3df8c5684 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -1519,7 +1519,7 @@ elf_metag_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
@@ -2934,7 +2934,7 @@ elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->etab.srelplt)
relocs = TRUE;
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index 8d1700bf0f..c187d83ee0 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -1071,7 +1071,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
/* Only relocate if the symbol is defined. */
if (sec)
{
- name = bfd_get_section_name (sec->owner, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".sdata2") == 0
|| strcmp (name, ".sbss2") == 0)
@@ -1119,7 +1119,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
/* Only relocate if the symbol is defined. */
if (sec)
{
- name = bfd_get_section_name (sec->owner, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0)
@@ -1608,7 +1608,7 @@ microblaze_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (errmsg != NULL)
@@ -2766,7 +2766,7 @@ microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
if (power_of_two > s->alignment_power)
{
- if (!bfd_set_section_alignment (s->owner, s, power_of_two))
+ if (!bfd_set_section_alignment (s, power_of_two))
return FALSE;
}
@@ -3115,7 +3115,7 @@ microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (strncmp (name, ".rela", 5) == 0)
{
@@ -3501,7 +3501,7 @@ microblaze_elf_add_symbol_hook (bfd *abfd,
put into .sbss. */
*secp = bfd_make_section_old_way (abfd, ".sbss");
if (*secp == NULL
- || ! bfd_set_section_flags (abfd, *secp, SEC_IS_COMMON))
+ || !bfd_set_section_flags (*secp, SEC_IS_COMMON))
return FALSE;
*valp = sym->st_size;
diff --git a/bfd/elf32-moxie.c b/bfd/elf32-moxie.c
index 9834d8978f..9b6048f0c0 100644
--- a/bfd/elf32-moxie.c
+++ b/bfd/elf32-moxie.c
@@ -243,7 +243,7 @@ moxie_elf_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index fe5fd8ff8c..4dcc8d480d 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -1314,7 +1314,7 @@ elf32_msp430_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL || * name == 0) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL || *name == 0 ? bfd_section_name (sec) : name;
}
else
{
@@ -1691,7 +1691,7 @@ msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,
name = bfd_elf_string_from_elf_section
(abfd, symtab_hdr->sh_link, isym->st_name);
- name = (name == NULL || * name == 0) ? bfd_section_name (abfd, sec) : name;
+ name = name == NULL || *name == 0 ? bfd_section_name (sec) : name;
if (isym->st_shndx != sec_shndx)
continue;
diff --git a/bfd/elf32-mt.c b/bfd/elf32-mt.c
index ca6aa13f19..d120d05482 100644
--- a/bfd/elf32-mt.c
+++ b/bfd/elf32-mt.c
@@ -346,7 +346,7 @@ mt_elf_relocate_section
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 27ffea2e69..013355a490 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -3723,11 +3723,11 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
/* _bfd_elf_create_got_section will create it for us. */
ehtab->srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
if (ehtab->srelgot == NULL
- || !bfd_set_section_flags (dynobj, ehtab->srelgot,
+ || !bfd_set_section_flags (ehtab->srelgot,
(SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
| SEC_IN_MEMORY | SEC_LINKER_CREATED
| SEC_READONLY))
- || !bfd_set_section_alignment (dynobj, ehtab->srelgot, 2))
+ || !bfd_set_section_alignment (ehtab->srelgot, 2))
return FALSE;
return TRUE;
@@ -3769,8 +3769,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section (abfd, ".plt");
ehtab->splt = s;
if (s == NULL
- || !bfd_set_section_flags (abfd, s, pltflags)
- || !bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_flags (s, pltflags)
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
if (bed->want_plt_sym)
@@ -3798,8 +3798,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
bed->default_use_rela_p ? ".rela.plt" : ".rel.plt");
ehtab->srelplt = s;
if (s == NULL
- || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
- || !bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_flags (s, flags | SEC_READONLY)
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (ehtab->sgot == NULL && !create_got_section (abfd, info))
@@ -3807,11 +3807,11 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
for (sec = abfd->sections; sec; sec = sec->next)
{
- secflags = bfd_get_section_flags (abfd, sec);
+ secflags = bfd_section_flags (sec);
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
continue;
- secname = bfd_get_section_name (abfd, sec);
+ secname = bfd_section_name (sec);
relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6);
strcpy (relname, ".rela");
strcat (relname, secname);
@@ -3819,8 +3819,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
continue;
s = bfd_make_section (abfd, relname);
if (s == NULL
- || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
- || !bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_flags (s, flags | SEC_READONLY)
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
@@ -3835,7 +3835,7 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section (abfd, ".dynbss");
htab->sdynbss = s;
if (s == NULL
- || !bfd_set_section_flags (abfd, s, SEC_ALLOC | SEC_LINKER_CREATED))
+ || !bfd_set_section_flags (s, SEC_ALLOC | SEC_LINKER_CREATED))
return FALSE;
/* The .rel[a].bss section holds copy relocs. This section is not
normally needed. We need to create it here, though, so that the
@@ -3854,8 +3854,8 @@ nds32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"));
htab->srelbss = s;
if (s == NULL
- || !bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
- || !bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_flags (s, flags | SEC_READONLY)
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
@@ -4065,9 +4065,9 @@ nds32_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Apply the required alignment. */
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > bfd_get_section_alignment (dynobj, s))
+ if (power_of_two > bfd_section_alignment (s))
{
- if (!bfd_set_section_alignment (dynobj, s, power_of_two))
+ if (!bfd_set_section_alignment (s, power_of_two))
return FALSE;
}
@@ -4525,7 +4525,7 @@ nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
{
got_size += s->size;
}
- else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0)
+ else if (strncmp (bfd_section_name (s), ".rela", 5) == 0)
{
if (s->size != 0 && s != elf_hash_table (info)->srelplt)
relocs = TRUE;
@@ -5571,8 +5571,7 @@ nds32_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
return FALSE;
BFD_ASSERT (strncmp (name, ".rela", 5) == 0
- && strcmp (bfd_get_section_name (input_bfd,
- input_section),
+ && strcmp (bfd_section_name (input_section),
name + 5) == 0);
sreloc = bfd_get_section_by_name (dynobj, name);
@@ -6166,7 +6165,7 @@ check_reloc:
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (errmsg != NULL)
@@ -7390,7 +7389,7 @@ nds32_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
return FALSE;
BFD_ASSERT (strncmp (name, ".rela", 5) == 0
- && strcmp (bfd_get_section_name (abfd, sec),
+ && strcmp (bfd_section_name (sec),
name + 5) == 0);
sreloc = bfd_get_section_by_name (dynobj, name);
@@ -7404,8 +7403,8 @@ nds32_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if ((sec->flags & SEC_ALLOC) != 0)
flags |= SEC_ALLOC | SEC_LOAD;
if (sreloc == NULL
- || !bfd_set_section_flags (dynobj, sreloc, flags)
- || !bfd_set_section_alignment (dynobj, sreloc, 2))
+ || !bfd_set_section_flags (sreloc, flags)
+ || !bfd_set_section_alignment (sreloc, 2))
return FALSE;
elf_section_type (sreloc) = SHT_RELA;
diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
index 5d787eb2f4..698e4e5c2d 100644
--- a/bfd/elf32-nios2.c
+++ b/bfd/elf32-nios2.c
@@ -3846,7 +3846,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
(input_bfd, symtab_hdr->sh_link,
sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
/* xgettext:c-format */
format = _("unable to reach %s (at %#" PRIx64 ") from "
@@ -4484,7 +4484,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
symtab_hdr->sh_link,
sym->st_name);
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -4554,7 +4554,7 @@ static bfd_boolean
nios2_elf32_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
Elf_Internal_Shdr *hdr, asection *sec)
{
- register const char *name = bfd_get_section_name (abfd, sec);
+ const char *name = bfd_section_name (sec);
if ((sec->flags & SEC_SMALL_DATA)
|| strcmp (name, ".sdata") == 0
@@ -4580,7 +4580,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
/* In order for the two loads in .PLTresolve to share the same %hiadj,
_GLOBAL_OFFSET_TABLE_ must be aligned to a 16-byte boundary. */
- if (!bfd_set_section_alignment (dynobj, htab->root.sgotplt, 4))
+ if (!bfd_set_section_alignment (htab->root.sgotplt, 4))
return FALSE;
/* The Nios II ABI specifies that GOT-relative relocations are relative
@@ -4616,7 +4616,7 @@ nios2_elf32_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
same %hiadj, the start of the PLT (as well as the GOT) must be aligned
to a 16-byte boundary. This is because the addresses for these loads
include the -(.plt+4) PIC correction. */
- return bfd_set_section_alignment (dynobj, htab->root.splt, 4);
+ return bfd_set_section_alignment (htab->root.splt, 4);
}
/* Implement elf_backend_copy_indirect_symbol:
@@ -5429,8 +5429,8 @@ nios2_elf32_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Align dynbss. */
s->size = BFD_ALIGN (s->size, (bfd_size_type)1 << align2);
- if (align2 > bfd_get_section_alignment (dynobj, s)
- && !bfd_set_section_alignment (dynobj, s, align2))
+ if (align2 > bfd_section_alignment (s)
+ && !bfd_set_section_alignment (s, align2))
return FALSE;
/* Define the symbol as being at this point in the section. */
@@ -5853,7 +5853,7 @@ nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".rela"))
{
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index 0d1336ceac..4cf0b7cc36 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -1303,7 +1303,7 @@ or1k_elf_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
@@ -2064,8 +2064,7 @@ or1k_elf_check_relocs (bfd *abfd,
return FALSE;
if (strncmp (name, ".rela", 5) != 0
- || strcmp (bfd_get_section_name (abfd, sec),
- name + 5) != 0)
+ || strcmp (bfd_section_name (sec), name + 5) != 0)
{
_bfd_error_handler
/* xgettext:c-format */
@@ -2996,7 +2995,7 @@ or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->root.srelplt)
relocs = TRUE;
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 5e5834a70c..9765a33541 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -1329,14 +1329,14 @@ ppc_elf_section_from_shdr (bfd *abfd,
return FALSE;
newsect = hdr->bfd_section;
- flags = bfd_get_section_flags (abfd, newsect);
+ flags = bfd_section_flags (newsect);
if (hdr->sh_flags & SHF_EXCLUDE)
flags |= SEC_EXCLUDE;
if (hdr->sh_type == SHT_ORDERED)
flags |= SEC_SORT_ENTRIES;
- bfd_set_section_flags (abfd, newsect, flags);
+ bfd_set_section_flags (newsect, flags);
return TRUE;
}
@@ -1674,7 +1674,7 @@ ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info)
/* Set the output section size, if it exists. */
asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
- if (asec && ! bfd_set_section_size (abfd, asec, 20 + num_entries * 4))
+ if (asec && !bfd_set_section_size (asec, 20 + num_entries * 4))
{
ibfd = abfd;
/* xgettext:c-format */
@@ -2337,7 +2337,7 @@ ppc_elf_create_got (bfd *abfd, struct bfd_link_info *info)
executable. */
flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS
| SEC_IN_MEMORY | SEC_LINKER_CREATED);
- if (!bfd_set_section_flags (abfd, htab->elf.sgot, flags))
+ if (!bfd_set_section_flags (htab->elf.sgot, flags))
return FALSE;
}
@@ -2390,7 +2390,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
if (p2align < htab->params->plt_stub_align)
p2align = htab->params->plt_stub_align;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, p2align))
+ || !bfd_set_section_alignment (s, p2align))
return FALSE;
if (!info->no_ld_generated_unwind_info)
@@ -2400,7 +2400,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".eh_frame", flags);
htab->glink_eh_frame = s;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -2408,7 +2408,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".iplt", flags);
htab->elf.iplt = s;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 4))
+ || !bfd_set_section_alignment (s, 4))
return FALSE;
flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS
@@ -2416,7 +2416,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rela.iplt", flags);
htab->elf.irelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || ! bfd_set_section_alignment (s, 2))
return FALSE;
/* Local plt entries. */
@@ -2425,7 +2425,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
htab->pltlocal = bfd_make_section_anyway_with_flags (abfd, ".branch_lt",
flags);
if (htab->pltlocal == NULL
- || ! bfd_set_section_alignment (abfd, htab->pltlocal, 2))
+ || !bfd_set_section_alignment (htab->pltlocal, 2))
return FALSE;
if (bfd_link_pic (info))
@@ -2435,7 +2435,7 @@ ppc_elf_create_glink (bfd *abfd, struct bfd_link_info *info)
htab->relpltlocal
= bfd_make_section_anyway_with_flags (abfd, ".rela.branch_lt", flags);
if (htab->relpltlocal == NULL
- || ! bfd_set_section_alignment (abfd, htab->relpltlocal, 2))
+ || !bfd_set_section_alignment (htab->relpltlocal, 2))
return FALSE;
}
@@ -2487,7 +2487,7 @@ ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rela.sbss", flags);
htab->relsbss = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -2500,7 +2500,7 @@ ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
if (htab->plt_type == PLT_VXWORKS)
/* The VxWorks PLT is a loaded section with contents. */
flags |= SEC_HAS_CONTENTS | SEC_LOAD | SEC_READONLY;
- return bfd_set_section_flags (abfd, s, flags);
+ return bfd_set_section_flags (s, flags);
}
/* Copy the extra info we tack onto an elf_link_hash_entry. */
@@ -2739,7 +2739,7 @@ elf_allocate_pointer_linker_section (bfd *abfd,
linker_section_ptr->lsect = lsect;
*ptr_linker_section_ptr = linker_section_ptr;
- if (!bfd_set_section_alignment (lsect->section->owner, lsect->section, 2))
+ if (!bfd_set_section_alignment (lsect->section, 2))
return FALSE;
linker_section_ptr->offset = lsect->section->size;
lsect->section->size += 4;
@@ -4029,19 +4029,19 @@ ppc_elf_select_plt_layout (bfd *output_bfd ATTRIBUTE_UNUSED,
/* The new PLT is a loaded section. */
if (htab->elf.splt != NULL
- && !bfd_set_section_flags (htab->elf.dynobj, htab->elf.splt, flags))
+ && !bfd_set_section_flags (htab->elf.splt, flags))
return -1;
/* The new GOT is not executable. */
if (htab->elf.sgot != NULL
- && !bfd_set_section_flags (htab->elf.dynobj, htab->elf.sgot, flags))
+ && !bfd_set_section_flags (htab->elf.sgot, flags))
return -1;
}
else
{
/* Stop an unused .glink section from affecting .text alignment. */
if (htab->glink != NULL
- && !bfd_set_section_alignment (htab->elf.dynobj, htab->glink, 0))
+ && !bfd_set_section_alignment (htab->glink, 0))
return -1;
}
return htab->plt_type == PLT_NEW;
@@ -5823,8 +5823,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd,
{
strip_section = (s->flags & SEC_KEEP) == 0;
}
- else if (CONST_STRNEQ (bfd_get_section_name (htab->elf.dynobj, s),
- ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0)
{
@@ -8394,10 +8393,8 @@ ppc_elf_relocate_section (bfd *output_bfd,
unresolved_reloc = TRUE;
break;
}
- BFD_ASSERT (strcmp (bfd_get_section_name (sec->owner, sec),
- ".got") == 0
- || strcmp (bfd_get_section_name (sec->owner, sec),
- ".cgot") == 0);
+ BFD_ASSERT (strcmp (bfd_section_name (sec), ".got") == 0
+ || strcmp (bfd_section_name (sec), ".cgot") == 0);
addend -= sec->output_section->vma + sec->output_offset + 0x8000;
break;
@@ -8512,7 +8509,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
}
addend -= SYM_VAL (sda);
- name = bfd_get_section_name (output_bfd, sec->output_section);
+ name = bfd_section_name (sec->output_section);
if (!(strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0))
{
@@ -8543,7 +8540,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
}
addend -= SYM_VAL (sda);
- name = bfd_get_section_name (output_bfd, sec->output_section);
+ name = bfd_section_name (sec->output_section);
if (!(strcmp (name, ".sdata2") == 0
|| strcmp (name, ".sbss2") == 0))
{
@@ -8618,7 +8615,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
break;
}
- name = bfd_get_section_name (output_bfd, sec->output_section);
+ name = bfd_section_name (sec->output_section);
if (strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0)
{
@@ -8725,7 +8722,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
break;
}
- name = bfd_get_section_name (output_bfd, sec->output_section);
+ name = bfd_section_name (sec->output_section);
if (strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0)
sda = htab->sdata[0].sym;
diff --git a/bfd/elf32-pru.c b/bfd/elf32-pru.c
index d9be74f916..054f1650f2 100644
--- a/bfd/elf32-pru.c
+++ b/bfd/elf32-pru.c
@@ -905,7 +905,7 @@ pru_elf32_relocate_section (bfd *output_bfd,
symtab_hdr->sh_link,
sym->st_name);
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c
index 8fa7ea30be..ba95515f7d 100644
--- a/bfd/elf32-rl78.c
+++ b/bfd/elf32-rl78.c
@@ -726,7 +726,7 @@ rl78_elf_relocate_section
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+ name = sym->st_name == 0 ? bfd_section_name (sec) : name;
}
else
{
@@ -1349,7 +1349,7 @@ rl78_elf_check_relocs
flags);
elf_hash_table (info)->splt = splt;
if (splt == NULL
- || ! bfd_set_section_alignment (dynobj, splt, 1))
+ || !bfd_set_section_alignment (splt, 1))
return FALSE;
}
diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c
index e130784bc8..7978244f1e 100644
--- a/bfd/elf32-rx.c
+++ b/bfd/elf32-rx.c
@@ -543,7 +543,7 @@ rx_elf_relocate_section
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+ name = sym->st_name == 0 ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 7bdccdbef9..7e22d9666a 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -2003,7 +2003,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0)
relocs = TRUE;
@@ -3254,7 +3254,7 @@ elf_s390_relocate_section (bfd *output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index 1bbf64fe6d..3d499ca071 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -1257,8 +1257,8 @@ score_elf_rel_dyn_section (bfd *dynobj, bfd_boolean create_p)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (sreloc == NULL
- || ! bfd_set_section_alignment (dynobj, sreloc,
- SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+ || !bfd_set_section_alignment (sreloc,
+ SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
return NULL;
}
return sreloc;
@@ -1431,7 +1431,7 @@ score_elf_create_got_section (bfd *abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 4))
+ || !bfd_set_section_alignment (s, 4))
return FALSE;
/* Define the symbol _GLOBAL_OFFSET_TABLE_. We don't do this in the
@@ -3070,7 +3070,7 @@ s3_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
{
*retval = SHN_SCORE_SCOMMON;
return TRUE;
@@ -3283,7 +3283,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".rel"))
{
@@ -3296,8 +3296,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
the linker now does not create empty output sections. */
if (s->output_section != NULL
&& strcmp (name,
- bfd_get_section_name (s->output_section->owner,
- s->output_section)) == 0)
+ bfd_section_name (s->output_section)) == 0)
s->flags |= SEC_EXCLUDE;
}
else
@@ -3311,7 +3310,7 @@ s3_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
assert a DT_TEXTREL entry rather than testing whether
there exists a relocation to a read only section or
not. */
- outname = bfd_get_section_name (output_bfd, s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 4);
if ((target != NULL
&& (target->flags & SEC_READONLY) != 0
@@ -3424,7 +3423,7 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_get_linker_section (abfd, ".dynamic");
if (s != NULL)
{
- if (!bfd_set_section_flags (abfd, s, flags))
+ if (!bfd_set_section_flags (s, flags))
return FALSE;
}
@@ -3441,7 +3440,7 @@ s3_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
flags | SEC_CODE);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -3709,7 +3708,7 @@ s3_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".got") == 0
|| strcmp (name, ".srdata") == 0
@@ -3732,7 +3731,7 @@ s3_bfd_score_elf_section_processing (bfd *abfd ATTRIBUTE_UNUSED, Elf_Internal_Sh
{
if (hdr->bfd_section != NULL)
{
- const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+ const char *name = bfd_section_name (hdr->bfd_section);
if (strcmp (name, ".sdata") == 0)
{
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index 51a5fb106d..e625435ff5 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -1114,8 +1114,8 @@ score_elf_rel_dyn_section (bfd *dynobj, bfd_boolean create_p)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (sreloc == NULL
- || ! bfd_set_section_alignment (dynobj, sreloc,
- SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+ || !bfd_set_section_alignment (sreloc,
+ SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
return NULL;
}
return sreloc;
@@ -1289,7 +1289,7 @@ score_elf_create_got_section (bfd *abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 4))
+ || !bfd_set_section_alignment (s, 4))
return FALSE;
/* Define the symbol _GLOBAL_OFFSET_TABLE_. We don't do this in the
@@ -2875,7 +2875,7 @@ s7_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
{
*retval = SHN_SCORE_SCOMMON;
return TRUE;
@@ -3091,7 +3091,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".rel"))
{
@@ -3104,8 +3104,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
the linker now does not create empty output sections. */
if (s->output_section != NULL
&& strcmp (name,
- bfd_get_section_name (s->output_section->owner,
- s->output_section)) == 0)
+ bfd_section_name (s->output_section)) == 0)
s->flags |= SEC_EXCLUDE;
}
else
@@ -3119,7 +3118,7 @@ s7_bfd_score_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *i
assert a DT_TEXTREL entry rather than testing whether
there exists a relocation to a read only section or
not. */
- outname = bfd_get_section_name (output_bfd, s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 4);
if ((target != NULL
&& (target->flags & SEC_READONLY) != 0
@@ -3232,7 +3231,7 @@ s7_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_get_linker_section (abfd, ".dynamic");
if (s != NULL)
{
- if (!bfd_set_section_flags (abfd, s, flags))
+ if (!bfd_set_section_flags (s, flags))
return FALSE;
}
@@ -3249,7 +3248,7 @@ s7_bfd_score_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
flags | SEC_CODE);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -3520,7 +3519,7 @@ s7_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".got") == 0
|| strcmp (name, ".srdata") == 0
@@ -3544,7 +3543,7 @@ s7_bfd_score_elf_section_processing (bfd *abfd ATTRIBUTE_UNUSED, Elf_Internal_Sh
{
if (hdr->bfd_section != NULL)
{
- const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+ const char *name = bfd_section_name (hdr->bfd_section);
if (strcmp (name, ".sdata") == 0)
{
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 91900b8bea..c572f709f2 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -2324,7 +2324,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (htab->sfuncdesc == NULL
- || ! bfd_set_section_alignment (dynobj, htab->sfuncdesc, 2))
+ || !bfd_set_section_alignment (htab->sfuncdesc, 2))
return FALSE;
htab->srelfuncdesc = bfd_make_section_anyway_with_flags (dynobj,
@@ -2335,7 +2335,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (htab->srelfuncdesc == NULL
- || ! bfd_set_section_alignment (dynobj, htab->srelfuncdesc, 2))
+ || !bfd_set_section_alignment (htab->srelfuncdesc, 2))
return FALSE;
/* Also create .rofixup. */
@@ -2346,7 +2346,7 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (htab->srofixup == NULL
- || ! bfd_set_section_alignment (dynobj, htab->srofixup, 2))
+ || !bfd_set_section_alignment (htab->srofixup, 2))
return FALSE;
return TRUE;
@@ -2401,7 +2401,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
htab->root.splt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
if (bed->want_plt_sym)
@@ -2433,7 +2433,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->root.srelplt = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (htab->root.sgot == NULL
@@ -2473,7 +2473,7 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
htab->srelbss = s;
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
}
}
@@ -3211,7 +3211,7 @@ sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->root.srelplt && s != htab->srelplt2)
relocs = TRUE;
@@ -3619,7 +3619,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
symname = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
if (symname == NULL || *symname == '\0')
- symname = bfd_section_name (input_bfd, sec);
+ symname = bfd_section_name (sec);
relocation = (sec->output_section->vma
+ sec->output_offset
@@ -5170,7 +5170,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
(*info->callbacks->reloc_overflow)
(info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elf32-spu.c b/bfd/elf32-spu.c
index f66e37cd00..e75d999fd5 100644
--- a/bfd/elf32-spu.c
+++ b/bfd/elf32-spu.c
@@ -585,7 +585,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
flags = SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
s = bfd_make_section_anyway_with_flags (ibfd, SPU_PTNOTE_SPUNAME, flags);
if (s == NULL
- || !bfd_set_section_alignment (ibfd, s, 4))
+ || !bfd_set_section_alignment (s, 4))
return FALSE;
/* Because we didn't set SEC_LINKER_CREATED we need to set the
proper section type. */
@@ -595,7 +595,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
size = 12 + ((sizeof (SPU_PLUGIN_NAME) + 3) & -4);
size += (name_len + 3) & -4;
- if (!bfd_set_section_size (ibfd, s, size))
+ if (!bfd_set_section_size (s, size))
return FALSE;
data = bfd_zalloc (ibfd, size);
@@ -622,7 +622,7 @@ spu_elf_create_sections (struct bfd_link_info *info)
flags = (SEC_LOAD | SEC_ALLOC | SEC_READONLY | SEC_HAS_CONTENTS
| SEC_IN_MEMORY | SEC_LINKER_CREATED);
s = bfd_make_section_anyway_with_flags (ibfd, ".fixup", flags);
- if (s == NULL || !bfd_set_section_alignment (ibfd, s, 2))
+ if (s == NULL || !bfd_set_section_alignment (s, 2))
return FALSE;
htab->sfixup = s;
}
@@ -1694,7 +1694,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
stub = bfd_make_section_anyway_with_flags (ibfd, ".stub", flags);
htab->stub_sec[0] = stub;
if (stub == NULL
- || !bfd_set_section_alignment (ibfd, stub,
+ || !bfd_set_section_alignment (stub,
ovl_stub_size_log2 (htab->params)))
return 0;
stub->size = htab->stub_count[0] * ovl_stub_size (htab->params);
@@ -1709,7 +1709,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
stub = bfd_make_section_anyway_with_flags (ibfd, ".stub", flags);
htab->stub_sec[ovl] = stub;
if (stub == NULL
- || !bfd_set_section_alignment (ibfd, stub,
+ || !bfd_set_section_alignment (stub,
ovl_stub_size_log2 (htab->params)))
return 0;
stub->size = htab->stub_count[ovl] * ovl_stub_size (htab->params);
@@ -1727,7 +1727,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
flags = SEC_ALLOC;
htab->ovtab = bfd_make_section_anyway_with_flags (ibfd, ".ovtab", flags);
if (htab->ovtab == NULL
- || !bfd_set_section_alignment (ibfd, htab->ovtab, 4))
+ || !bfd_set_section_alignment (htab->ovtab, 4))
return 0;
htab->ovtab->size = (16 + 16 + (16 << htab->fromelem_size_log2))
@@ -1736,7 +1736,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
htab->init = bfd_make_section_anyway_with_flags (ibfd, ".ovini", flags);
if (htab->init == NULL
- || !bfd_set_section_alignment (ibfd, htab->init, 4))
+ || !bfd_set_section_alignment (htab->init, 4))
return 0;
htab->init->size = 16;
@@ -1761,7 +1761,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
htab->ovtab = bfd_make_section_anyway_with_flags (ibfd, ".ovtab", flags);
if (htab->ovtab == NULL
- || !bfd_set_section_alignment (ibfd, htab->ovtab, 4))
+ || !bfd_set_section_alignment (htab->ovtab, 4))
return 0;
htab->ovtab->size = htab->num_overlays * 16 + 16 + htab->num_buf * 4;
@@ -1769,7 +1769,7 @@ spu_elf_size_stubs (struct bfd_link_info *info)
htab->toe = bfd_make_section_anyway_with_flags (ibfd, ".toe", SEC_ALLOC);
if (htab->toe == NULL
- || !bfd_set_section_alignment (ibfd, htab->toe, 4))
+ || !bfd_set_section_alignment (htab->toe, 4))
return 0;
htab->toe->size = 16;
@@ -5049,7 +5049,7 @@ spu_elf_relocate_section (bfd *output_bfd,
(_("%pB(%s+%#" PRIx64 "): "
"unresolvable %s relocation against symbol `%s'"),
input_bfd,
- bfd_get_section_name (input_bfd, input_section),
+ bfd_section_name (input_section),
(uint64_t) rel->r_offset,
howto->name,
sym_name);
@@ -5436,7 +5436,7 @@ spu_elf_modify_program_headers (bfd *abfd, struct bfd_link_info *info)
}
bfd_boolean
-spu_elf_size_sections (bfd * output_bfd, struct bfd_link_info *info)
+spu_elf_size_sections (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
{
struct spu_link_hash_table *htab = spu_hash_table (info);
if (htab->params->emit_fixups)
@@ -5493,7 +5493,7 @@ spu_elf_size_sections (bfd * output_bfd, struct bfd_link_info *info)
/* We always have a NULL fixup as a sentinel */
size = (fixup_count + 1) * FIXUP_RECORD_SIZE;
- if (!bfd_set_section_size (output_bfd, sfixup, size))
+ if (!bfd_set_section_size (sfixup, size))
return FALSE;
sfixup->contents = (bfd_byte *) bfd_zalloc (info->input_bfds, size);
if (sfixup->contents == NULL)
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index 87ec8475a8..258349cfb7 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -1684,8 +1684,8 @@ elf32_tic6x_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
htab->dsbt = bfd_make_section_anyway_with_flags (dynobj, ".dsbt",
flags);
if (htab->dsbt == NULL
- || ! bfd_set_section_alignment (dynobj, htab->dsbt, 2)
- || ! bfd_set_section_alignment (dynobj, htab->elf.splt, 5))
+ || !bfd_set_section_alignment (htab->dsbt, 2)
+ || !bfd_set_section_alignment (htab->elf.splt, 5))
return FALSE;
return TRUE;
@@ -1992,7 +1992,7 @@ elf32_tic6x_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char * name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (is_tic6x_elf_unwind_section_name (name))
{
@@ -2683,7 +2683,7 @@ elf32_tic6x_relocate_section (bfd *output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r)
@@ -3016,7 +3016,7 @@ elf32_tic6x_add_symbol_hook (bfd *abfd,
*secp = bfd_make_section_old_way (abfd, ".scommon");
(*secp)->flags |= SEC_IS_COMMON;
*valp = sym->st_size;
- (void) bfd_set_section_alignment (abfd, *secp, bfd_log2 (sym->st_value));
+ bfd_set_section_alignment (*secp, bfd_log2 (sym->st_value));
break;
}
@@ -3072,7 +3072,7 @@ elf32_tic6x_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
{
*retval = SHN_TIC6X_SCOMMON;
return TRUE;
@@ -3385,7 +3385,7 @@ elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
if (s == htab->elf.splt && s->size > 0)
s->size = (s->size + 31) & ~(bfd_vma)31;
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0
&& s != htab->elf.srelplt)
@@ -3992,10 +3992,10 @@ elf32_tic6x_adjust_exidx_size (asection *exidx_sec, int adjust)
if (!exidx_sec->rawsize)
exidx_sec->rawsize = exidx_sec->size;
- bfd_set_section_size (exidx_sec->owner, exidx_sec, exidx_sec->size + adjust);
+ bfd_set_section_size (exidx_sec, exidx_sec->size + adjust);
out_sec = exidx_sec->output_section;
/* Adjust size of output section. */
- bfd_set_section_size (out_sec->owner, out_sec, out_sec->size +adjust);
+ bfd_set_section_size (out_sec, out_sec->size +adjust);
}
/* Insert an EXIDX_CANTUNWIND marker at the end of a section. */
diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c
index 832561d260..249b3aaf5b 100644
--- a/bfd/elf32-tilepro.c
+++ b/bfd/elf32-tilepro.c
@@ -1229,13 +1229,13 @@ tilepro_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
(bed->dynamic_sec_flags
| SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelgot = s;
s = s_got = bfd_make_section_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgot = s;
@@ -1246,8 +1246,7 @@ tilepro_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
s = bfd_make_section_with_flags (abfd, ".got.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgotplt = s;
@@ -2754,7 +2753,7 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r_type)
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 74e1546321..21df3c8b9a 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -177,7 +177,7 @@ v850_elf_check_relocs (bfd *abfd,
if (h && h->root.type == bfd_link_hash_common
&& h->root.u.c.p
- && !strcmp (bfd_get_section_name (abfd, h->root.u.c.p->section), "COMMON"))
+ && !strcmp (bfd_section_name (h->root.u.c.p->section), "COMMON"))
{
asection * section;
@@ -2269,7 +2269,7 @@ v850_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch ((int) r)
@@ -2372,11 +2372,11 @@ v850_elf_make_note_section (bfd * abfd)
if (s == NULL)
return NULL;
- if (!bfd_set_section_alignment (abfd, s, 2))
+ if (!bfd_set_section_alignment (s, 2))
return NULL;
/* Allocate space for all known notes. */
- if (!bfd_set_section_size (abfd, s, NUM_V850_NOTES * SIZEOF_V850_NOTE))
+ if (!bfd_set_section_size (s, NUM_V850_NOTES * SIZEOF_V850_NOTE))
return NULL;
data = bfd_zalloc (abfd, NUM_V850_NOTES * SIZEOF_V850_NOTE);
@@ -2443,7 +2443,7 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obfd)
if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) == NULL)
return;
- if (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes))
+ if (bfd_section_size (inotes) == bfd_section_size (onotes))
{
bfd_byte * icont;
bfd_byte * ocont;
@@ -2457,7 +2457,7 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obfd)
return;
/* Copy/overwrite notes from the input to the output. */
- memcpy (ocont, icont, bfd_section_size (obfd, onotes));
+ memcpy (ocont, icont, bfd_section_size (onotes));
}
}
@@ -2490,7 +2490,7 @@ v850_elf_merge_notes (bfd * ibfd, bfd *obfd)
bfd_byte * icont;
bfd_byte * ocont;
- BFD_ASSERT (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes));
+ BFD_ASSERT (bfd_section_size (inotes) == bfd_section_size (onotes));
if ((icont = elf_section_data (inotes)->this_hdr.contents) == NULL)
BFD_ASSERT (bfd_malloc_and_get_section (ibfd, inotes, & icont));
@@ -2672,7 +2672,7 @@ v850_elf_print_notes (bfd * abfd, FILE * file)
if (notes == NULL || notes->contents == NULL)
return;
- BFD_ASSERT (bfd_section_size (abfd, notes) == NUM_V850_NOTES * SIZEOF_V850_NOTE);
+ BFD_ASSERT (bfd_section_size (notes) == NUM_V850_NOTES * SIZEOF_V850_NOTE);
for (id = V850_NOTE_ALIGNMENT; id <= NUM_V850_NOTES; id++)
print_v850_note (abfd, file, notes->contents, id);
@@ -2946,11 +2946,11 @@ v850_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
*retval = SHN_V850_SCOMMON;
- else if (strcmp (bfd_get_section_name (abfd, sec), ".tcommon") == 0)
+ else if (strcmp (bfd_section_name (sec), ".tcommon") == 0)
*retval = SHN_V850_TCOMMON;
- else if (strcmp (bfd_get_section_name (abfd, sec), ".zcommon") == 0)
+ else if (strcmp (bfd_section_name (sec), ".zcommon") == 0)
*retval = SHN_V850_ZCOMMON;
else
return FALSE;
@@ -3162,10 +3162,9 @@ v850_elf_section_from_shdr (bfd *abfd,
case SHT_V850_SCOMMON:
case SHT_V850_TCOMMON:
case SHT_V850_ZCOMMON:
- if (! bfd_set_section_flags (abfd, hdr->bfd_section,
- (bfd_get_section_flags (abfd,
- hdr->bfd_section)
- | SEC_IS_COMMON)))
+ if (!bfd_set_section_flags (hdr->bfd_section,
+ (bfd_section_flags (hdr->bfd_section)
+ | SEC_IS_COMMON)))
return FALSE;
}
@@ -3182,7 +3181,7 @@ v850_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char * name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".scommon") == 0)
hdr->sh_type = SHT_V850_SCOMMON;
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index 2af7050707..80162d87cb 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -1069,7 +1069,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (strcmp (name, ".plt") == 0)
{
@@ -1094,8 +1094,7 @@ elf_vax_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
section, then we probably need a DT_TEXTREL
entry. .rela.plt is actually associated with
.got.plt, which is never readonly. */
- outname = bfd_get_section_name (output_bfd,
- s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 5);
if (target != NULL
&& (target->flags & SEC_READONLY) != 0
@@ -1633,7 +1632,7 @@ elf_vax_relocate_section (bfd *output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
info->callbacks->reloc_overflow
(info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c
index 76271ce7cd..35e4b84ed1 100644
--- a/bfd/elf32-visium.c
+++ b/bfd/elf32-visium.c
@@ -599,7 +599,7 @@ visium_elf_relocate_section (bfd *output_bfd,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c
index 05a9326685..ef106b3f92 100644
--- a/bfd/elf32-xstormy16.c
+++ b/bfd/elf32-xstormy16.c
@@ -471,7 +471,7 @@ xstormy16_elf_check_relocs (bfd *abfd,
flags);
elf_hash_table (info)->splt = splt;
if (splt == NULL
- || ! bfd_set_section_alignment (dynobj, splt, 1))
+ || !bfd_set_section_alignment (splt, 1))
return FALSE;
}
@@ -834,7 +834,7 @@ xstormy16_elf_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index 8a7bf7e96f..306b18b4f2 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -1320,21 +1320,21 @@ elf_xtensa_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
/* Mark the ".got.plt" section READONLY. */
if (htab->elf.sgotplt == NULL
- || ! bfd_set_section_flags (dynobj, htab->elf.sgotplt, flags))
+ || !bfd_set_section_flags (htab->elf.sgotplt, flags))
return FALSE;
/* Create ".got.loc" (literal tables for use by dynamic linker). */
htab->sgotloc = bfd_make_section_anyway_with_flags (dynobj, ".got.loc",
flags);
if (htab->sgotloc == NULL
- || ! bfd_set_section_alignment (dynobj, htab->sgotloc, 2))
+ || !bfd_set_section_alignment (htab->sgotloc, 2))
return FALSE;
/* Create ".xt.lit.plt" (literal table for ".got.plt*"). */
htab->spltlittbl = bfd_make_section_anyway_with_flags (dynobj, ".xt.lit.plt",
noalloc_flags);
if (htab->spltlittbl == NULL
- || ! bfd_set_section_alignment (dynobj, htab->spltlittbl, 2))
+ || !bfd_set_section_alignment (htab->spltlittbl, 2))
return FALSE;
return TRUE;
@@ -1366,14 +1366,14 @@ add_extra_plt_sections (struct bfd_link_info *info, int count)
sprintf (sname, ".plt.%u", chunk);
s = bfd_make_section_anyway_with_flags (dynobj, sname, flags | SEC_CODE);
if (s == NULL
- || ! bfd_set_section_alignment (dynobj, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
sname = (char *) bfd_malloc (14);
sprintf (sname, ".got.plt.%u", chunk);
s = bfd_make_section_anyway_with_flags (dynobj, sname, flags);
if (s == NULL
- || ! bfd_set_section_alignment (dynobj, s, 2))
+ || !bfd_set_section_alignment (s, 2))
return FALSE;
}
@@ -1626,7 +1626,7 @@ elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".rela"))
{
@@ -2687,7 +2687,7 @@ elf_xtensa_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r_symndx != STN_UNDEF
@@ -11244,7 +11244,7 @@ xtensa_make_property_section (asection *sec, const char *base_name)
if (! prop_sec)
{
flagword flags = (SEC_RELOC | SEC_HAS_CONTENTS | SEC_READONLY);
- flags |= (bfd_get_section_flags (sec->owner, sec)
+ flags |= (bfd_section_flags (sec)
& (SEC_LINK_ONCE | SEC_LINK_DUPLICATES));
prop_sec = bfd_make_section_anyway_with_flags
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 490860123c..84ec83b74a 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -1168,9 +1168,8 @@ elf64_alpha_section_from_shdr (bfd *abfd,
if (hdr->sh_type == SHT_ALPHA_DEBUG)
{
- if (! bfd_set_section_flags (abfd, newsect,
- (bfd_get_section_flags (abfd, newsect)
- | SEC_DEBUGGING)))
+ if (!bfd_set_section_flags (newsect,
+ bfd_section_flags (newsect) | SEC_DEBUGGING))
return FALSE;
}
@@ -1196,7 +1195,7 @@ elf64_alpha_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
{
register const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".mdebug") == 0)
{
@@ -1270,7 +1269,7 @@ elf64_alpha_create_got_section (bfd *abfd,
| SEC_LINKER_CREATED);
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
alpha_elf_tdata (abfd)->got = s;
@@ -1302,7 +1301,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
| (elf64_alpha_use_secureplt ? SEC_READONLY : 0));
s = bfd_make_section_anyway_with_flags (abfd, ".plt", flags);
elf_hash_table (info)->splt = s;
- if (s == NULL || ! bfd_set_section_alignment (abfd, s, 4))
+ if (s == NULL || ! bfd_set_section_alignment (s, 4))
return FALSE;
/* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
@@ -1317,7 +1316,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
| SEC_LINKER_CREATED | SEC_READONLY);
s = bfd_make_section_anyway_with_flags (abfd, ".rela.plt", flags);
elf_hash_table (info)->srelplt = s;
- if (s == NULL || ! bfd_set_section_alignment (abfd, s, 3))
+ if (s == NULL || ! bfd_set_section_alignment (s, 3))
return FALSE;
if (elf64_alpha_use_secureplt)
@@ -1325,7 +1324,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags = SEC_ALLOC | SEC_LINKER_CREATED;
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
elf_hash_table (info)->sgotplt = s;
- if (s == NULL || ! bfd_set_section_alignment (abfd, s, 3))
+ if (s == NULL || ! bfd_set_section_alignment (s, 3))
return FALSE;
}
@@ -1343,7 +1342,7 @@ elf64_alpha_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rela.got", flags);
elf_hash_table (info)->srelgot = s;
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
/* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the
@@ -1616,7 +1615,7 @@ elf64_alpha_output_extsym (struct alpha_elf_link_hash_entry *h, void * data)
h->esym.asym.sc = scUndefined;
else
{
- name = bfd_section_name (output_section->owner, output_section);
+ name = bfd_section_name (output_section);
if (strcmp (name, ".text") == 0)
h->esym.asym.sc = scText;
@@ -2860,7 +2859,7 @@ elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".rela"))
{
@@ -4508,7 +4507,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (name == NULL)
name = _("<unknown>");
else if (name[0] == 0)
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
_bfd_error_handler
/* xgettext:c-format */
@@ -4779,7 +4778,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
(*info->callbacks->reloc_overflow)
(info, (h ? &h->root.root : NULL), name, howto->name,
diff --git a/bfd/elf64-bpf.c b/bfd/elf64-bpf.c
index 3e11f089ec..67c45a1fa4 100644
--- a/bfd/elf64-bpf.c
+++ b/bfd/elf64-bpf.c
@@ -407,7 +407,7 @@ bpf_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+ name = name == NULL ? bfd_section_name (sec) : name;
}
else
{
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 77811580c6..25e91d8a23 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -422,7 +422,7 @@ get_reloc_section (bfd *abfd,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (srel == NULL
- || !bfd_set_section_alignment (dynobj, srel, 3))
+ || !bfd_set_section_alignment (srel, 3))
return FALSE;
}
@@ -1159,7 +1159,7 @@ get_opd (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (!opd
- || !bfd_set_section_alignment (abfd, opd, 3))
+ || !bfd_set_section_alignment (opd, 3))
{
BFD_ASSERT (0);
return FALSE;
@@ -1195,7 +1195,7 @@ get_plt (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (!plt
- || !bfd_set_section_alignment (abfd, plt, 3))
+ || !bfd_set_section_alignment (plt, 3))
{
BFD_ASSERT (0);
return FALSE;
@@ -1231,7 +1231,7 @@ get_dlt (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (!dlt
- || !bfd_set_section_alignment (abfd, dlt, 3))
+ || !bfd_set_section_alignment (dlt, 3))
{
BFD_ASSERT (0);
return FALSE;
@@ -1267,7 +1267,7 @@ get_stub (bfd *abfd,
| SEC_READONLY
| SEC_LINKER_CREATED));
if (!stub
- || !bfd_set_section_alignment (abfd, stub, 3))
+ || !bfd_set_section_alignment (stub, 3))
{
BFD_ASSERT (0);
return FALSE;
@@ -1347,7 +1347,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
| SEC_READONLY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
hppa_info->dlt_rel_sec = s;
@@ -1358,7 +1358,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
| SEC_READONLY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
hppa_info->plt_rel_sec = s;
@@ -1369,7 +1369,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
| SEC_READONLY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
hppa_info->other_rel_sec = s;
@@ -1380,7 +1380,7 @@ elf64_hppa_create_dynamic_sections (bfd *abfd,
| SEC_READONLY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
hppa_info->opd_rel_sec = s;
@@ -1750,7 +1750,7 @@ elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".plt") == 0)
{
@@ -1783,8 +1783,7 @@ elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
entry. The entries in the .rela.plt section
really apply to the .got section, which we
created ourselves and so know is not readonly. */
- outname = bfd_get_section_name (output_bfd,
- sec->output_section);
+ outname = bfd_section_name (sec->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 4);
if (target != NULL
&& (target->flags & SEC_READONLY) != 0
@@ -3938,7 +3937,7 @@ elf64_hppa_relocate_section (bfd *output_bfd,
if (sym_name == NULL)
return FALSE;
if (*sym_name == '\0')
- sym_name = bfd_section_name (input_bfd, sym_sec);
+ sym_name = bfd_section_name (sym_sec);
}
(*info->callbacks->reloc_overflow)
diff --git a/bfd/elf64-ia64-vms.c b/bfd/elf64-ia64-vms.c
index 0ae9f353f4..aa2aa119f5 100644
--- a/bfd/elf64-ia64-vms.c
+++ b/bfd/elf64-ia64-vms.c
@@ -840,7 +840,7 @@ elf64_ia64_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (is_unwind_section_name (abfd, name))
{
@@ -1286,12 +1286,12 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
s = bfd_make_section_anyway_with_flags (abfd, ".dynamic",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
s = bfd_make_section_anyway_with_flags (abfd, ".plt", flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
ia64_info->root.splt = s;
@@ -1307,7 +1307,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 0))
+ || !bfd_set_section_alignment (s, 0))
return FALSE;
/* Create a fixup section. */
@@ -1317,7 +1317,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
ia64_info->fixups_sec = s;
@@ -1328,7 +1328,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
| SEC_IN_MEMORY
| SEC_LINKER_CREATED));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
s->size = sizeof (struct elf64_vms_transfer);
ia64_info->transfer_sec = s;
@@ -1340,7 +1340,7 @@ elf64_ia64_create_dynamic_sections (bfd *abfd,
| SEC_IN_MEMORY
| SEC_READONLY));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, 3))
+ || !bfd_set_section_alignment (s, 3))
return FALSE;
ia64_info->note_sec = s;
@@ -1738,7 +1738,7 @@ get_got (bfd *abfd, struct elf64_ia64_link_hash_table *ia64_info)
got = bfd_make_section_anyway_with_flags (dynobj, ".got",
flags | SEC_SMALL_DATA);
if (got == NULL
- || !bfd_set_section_alignment (dynobj, got, 3))
+ || !bfd_set_section_alignment (got, 3))
return NULL;
ia64_info->root.sgot = got;
}
@@ -1774,7 +1774,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
: SEC_READONLY)
| SEC_LINKER_CREATED));
if (!fptr
- || !bfd_set_section_alignment (dynobj, fptr, 4))
+ || !bfd_set_section_alignment (fptr, 4))
{
BFD_ASSERT (0);
return NULL;
@@ -1792,7 +1792,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (fptr_rel == NULL
- || !bfd_set_section_alignment (dynobj, fptr_rel, 3))
+ || !bfd_set_section_alignment (fptr_rel, 3))
{
BFD_ASSERT (0);
return NULL;
@@ -1827,7 +1827,7 @@ get_pltoff (bfd *abfd, struct elf64_ia64_link_hash_table *ia64_info)
| SEC_SMALL_DATA
| SEC_LINKER_CREATED));
if (!pltoff
- || !bfd_set_section_alignment (dynobj, pltoff, 4))
+ || !bfd_set_section_alignment (pltoff, 4))
{
BFD_ASSERT (0);
return NULL;
@@ -1855,11 +1855,9 @@ get_reloc_section (bfd *abfd,
return NULL;
BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela")
- && strcmp (bfd_get_section_name (abfd, sec),
- srel_name+5) == 0)
+ && strcmp (bfd_section_name (sec), srel_name+5) == 0)
|| (CONST_STRNEQ (srel_name, ".rel")
- && strcmp (bfd_get_section_name (abfd, sec),
- srel_name+4) == 0));
+ && strcmp (bfd_section_name (sec), srel_name+4) == 0));
dynobj = ia64_info->root.dynobj;
if (!dynobj)
@@ -1875,7 +1873,7 @@ get_reloc_section (bfd *abfd,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (srel == NULL
- || !bfd_set_section_alignment (dynobj, srel, 3))
+ || !bfd_set_section_alignment (srel, 3))
return NULL;
}
@@ -2750,7 +2748,7 @@ elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".got.plt") == 0)
strip = FALSE;
@@ -4501,8 +4499,8 @@ elf64_vms_section_from_shdr (bfd *abfd,
{
asection *newsect = hdr->bfd_section;
- if (! bfd_set_section_flags
- (abfd, newsect, bfd_get_section_flags (abfd, newsect) | secflags))
+ if (!bfd_set_section_flags (newsect,
+ bfd_section_flags (newsect) | secflags))
return FALSE;
}
@@ -4629,7 +4627,7 @@ elf64_vms_section_processing (bfd *abfd ATTRIBUTE_UNUSED,
{
if (hdr->bfd_section != NULL)
{
- const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+ const char *name = bfd_section_name (hdr->bfd_section);
if (strcmp (name, ".text") == 0)
hdr->sh_flags |= SHF_IA_64_VMS_SHARED;
@@ -4670,7 +4668,7 @@ elf64_vms_final_write_processing (bfd *abfd)
{
hdr = &elf_section_data (s)->this_hdr;
- if (strcmp (bfd_get_section_name (abfd, hdr->bfd_section),
+ if (strcmp (bfd_section_name (hdr->bfd_section),
".IA_64.unwind_info") == 0)
unwind_info_sect_idx = elf_section_data (s)->this_idx;
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index 18ed456c2b..69d57a2ce9 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1414,7 +1414,7 @@ mmix_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
symtab_hdr->sh_link,
sym->st_name);
if (name == NULL)
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
else
{
@@ -1606,9 +1606,9 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
return bfd_reloc_undefined;
/* Check that we're not relocating against a register symbol. */
- if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+ if (strcmp (bfd_section_name (symsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0
- || strcmp (bfd_get_section_name (symsec->owner, symsec),
+ || strcmp (bfd_section_name (symsec),
MMIX_REG_SECTION_NAME) == 0)
{
/* Note: This is separated out into two messages in order
@@ -1641,7 +1641,7 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
if (symsec == NULL)
return bfd_reloc_undefined;
- if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+ if (strcmp (bfd_section_name (symsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0)
{
if ((srel & 7) != 0 || srel < 32*8 || srel > 255*8)
@@ -1652,7 +1652,7 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
}
srel /= 8;
}
- else if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+ else if (strcmp (bfd_section_name (symsec),
MMIX_REG_SECTION_NAME) == 0)
{
if (srel < 0 || srel > 255)
@@ -1704,9 +1704,9 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
accidentally handling it. */
if (!bfd_is_abs_section (symsec)
&& !bfd_is_und_section (symsec)
- && strcmp (bfd_get_section_name (symsec->owner, symsec),
+ && strcmp (bfd_section_name (symsec),
MMIX_REG_CONTENTS_SECTION_NAME) != 0
- && strcmp (bfd_get_section_name (symsec->owner, symsec),
+ && strcmp (bfd_section_name (symsec),
MMIX_REG_SECTION_NAME) != 0)
{
_bfd_error_handler
@@ -1722,10 +1722,8 @@ mmix_final_link_relocate (reloc_howto_type *howto, asection *input_section,
first_global = 255;
else
{
- first_global
- = bfd_get_section_vma (input_section->output_section->owner,
- regsec) / 8;
- if (strcmp (bfd_get_section_name (symsec->owner, symsec),
+ first_global = bfd_section_vma (regsec) / 8;
+ if (strcmp (bfd_section_name (symsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0)
{
if ((srel & 7) != 0 || srel < 32*8 || srel > 255*8)
@@ -1876,9 +1874,7 @@ mmix_elf_check_common_relocs (bfd *abfd,
those flags, as that is what currently happens for usual
GREG allocations, and that works. */
if (allocated_gregs_section == NULL
- || !bfd_set_section_alignment (bpo_greg_owner,
- allocated_gregs_section,
- 3))
+ || !bfd_set_section_alignment (allocated_gregs_section, 3))
return FALSE;
gregdata = (struct bpo_greg_section_info *)
@@ -2123,7 +2119,7 @@ mmix_elf_section_from_bfd_section (bfd * abfd ATTRIBUTE_UNUSED,
asection * sec,
int * retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), MMIX_REG_SECTION_NAME) == 0)
+ if (strcmp (bfd_section_name (sec), MMIX_REG_SECTION_NAME) == 0)
*retval = SHN_REGISTER;
else
return FALSE;
@@ -2222,7 +2218,7 @@ mmix_elf_final_link (bfd *abfd, struct bfd_link_info *info)
if (reg_section != NULL)
{
/* FIXME: Pass error state gracefully. */
- if (bfd_get_section_flags (abfd, reg_section) & SEC_HAS_CONTENTS)
+ if (bfd_section_flags (reg_section) & SEC_HAS_CONTENTS)
_bfd_abort (__FILE__, __LINE__, _("register section has contents\n"));
/* Really remove the section, if it hasn't already been done. */
@@ -2330,7 +2326,7 @@ _bfd_mmix_before_linker_allocation (bfd *abfd ATTRIBUTE_UNUSED,
/* Set the zeroth-order estimate for the GREGs size. */
gregs_size = n_gregs * 8;
- if (!bfd_set_section_size (bpo_greg_owner, bpo_gregs_section, gregs_size))
+ if (!bfd_set_section_size (bpo_gregs_section, gregs_size))
return FALSE;
/* Allocate and set up the GREG arrays. They're filled in at relaxation
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 345710ee59..14119dd259 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -3487,7 +3487,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->sfpr = bfd_make_section_anyway_with_flags (dynobj, ".sfpr",
flags);
if (htab->sfpr == NULL
- || !bfd_set_section_alignment (dynobj, htab->sfpr, 2))
+ || !bfd_set_section_alignment (htab->sfpr, 2))
return FALSE;
}
@@ -3498,7 +3498,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->glink = bfd_make_section_anyway_with_flags (dynobj, ".glink",
flags);
if (htab->glink == NULL
- || !bfd_set_section_alignment (dynobj, htab->glink, 3))
+ || !bfd_set_section_alignment (htab->glink, 3))
return FALSE;
/* The part of .glink used by global entry stubs, separate so that
@@ -3506,7 +3506,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->global_entry = bfd_make_section_anyway_with_flags (dynobj, ".glink",
flags);
if (htab->global_entry == NULL
- || !bfd_set_section_alignment (dynobj, htab->global_entry, 2))
+ || !bfd_set_section_alignment (htab->global_entry, 2))
return FALSE;
if (!info->no_ld_generated_unwind_info)
@@ -3517,14 +3517,14 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
".eh_frame",
flags);
if (htab->glink_eh_frame == NULL
- || !bfd_set_section_alignment (dynobj, htab->glink_eh_frame, 2))
+ || !bfd_set_section_alignment (htab->glink_eh_frame, 2))
return FALSE;
}
flags = SEC_ALLOC | SEC_LINKER_CREATED;
htab->elf.iplt = bfd_make_section_anyway_with_flags (dynobj, ".iplt", flags);
if (htab->elf.iplt == NULL
- || !bfd_set_section_alignment (dynobj, htab->elf.iplt, 3))
+ || !bfd_set_section_alignment (htab->elf.iplt, 3))
return FALSE;
flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
@@ -3532,7 +3532,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->elf.irelplt
= bfd_make_section_anyway_with_flags (dynobj, ".rela.iplt", flags);
if (htab->elf.irelplt == NULL
- || !bfd_set_section_alignment (dynobj, htab->elf.irelplt, 3))
+ || !bfd_set_section_alignment (htab->elf.irelplt, 3))
return FALSE;
/* Create branch lookup table for plt_branch stubs. */
@@ -3541,7 +3541,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->brlt = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt",
flags);
if (htab->brlt == NULL
- || !bfd_set_section_alignment (dynobj, htab->brlt, 3))
+ || !bfd_set_section_alignment (htab->brlt, 3))
return FALSE;
/* Local plt entries, put in .branch_lt but a separate section for
@@ -3549,7 +3549,7 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->pltlocal = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt",
flags);
if (htab->pltlocal == NULL
- || !bfd_set_section_alignment (dynobj, htab->pltlocal, 3))
+ || !bfd_set_section_alignment (htab->pltlocal, 3))
return FALSE;
if (!bfd_link_pic (info))
@@ -3560,13 +3560,13 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
htab->relbrlt
= bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags);
if (htab->relbrlt == NULL
- || !bfd_set_section_alignment (dynobj, htab->relbrlt, 3))
+ || !bfd_set_section_alignment (htab->relbrlt, 3))
return FALSE;
htab->relpltlocal
= bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags);
if (htab->relpltlocal == NULL
- || !bfd_set_section_alignment (dynobj, htab->relpltlocal, 3))
+ || !bfd_set_section_alignment (htab->relpltlocal, 3))
return FALSE;
return TRUE;
@@ -3762,13 +3762,13 @@ create_got_section (bfd *abfd, struct bfd_link_info *info)
got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (!got
- || !bfd_set_section_alignment (abfd, got, 3))
+ || !bfd_set_section_alignment (got, 3))
return FALSE;
relgot = bfd_make_section_anyway_with_flags (abfd, ".rela.got",
flags | SEC_READONLY);
if (!relgot
- || !bfd_set_section_alignment (abfd, relgot, 3))
+ || !bfd_set_section_alignment (relgot, 3))
return FALSE;
ppc64_elf_tdata (abfd)->got = got;
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 6bc6dfd50e..4ffcde92e2 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -1957,7 +1957,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->elf.srelplt)
relocs = TRUE;
@@ -3203,7 +3203,7 @@ elf_s390_relocate_section (bfd *output_bfd,
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 50b051aa6b..8bf9623bd9 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -748,7 +748,7 @@ elf64_sparc_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".stab") == 0)
{
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index e5c8003a68..16e66f95d2 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -3989,7 +3989,7 @@ check_relocation_error:
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r == bfd_reloc_overflow)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 8f18be07db..2169e2b40c 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -162,13 +162,13 @@ _bfd_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
(bed->dynamic_sec_flags
| SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelgot = s;
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgot = s;
@@ -176,8 +176,7 @@ _bfd_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgotplt = s;
}
@@ -286,25 +285,25 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version_d",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 1))
+ || !bfd_set_section_alignment (s, 1))
return FALSE;
s = bfd_make_section_anyway_with_flags (abfd, ".gnu.version_r",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
s = bfd_make_section_anyway_with_flags (abfd, ".dynsym",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
elf_hash_table (info)->dynsym = s;
@@ -315,7 +314,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".dynamic", flags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
/* The special symbol _DYNAMIC is always set to the start of the
@@ -334,7 +333,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".hash",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry;
}
@@ -344,7 +343,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".gnu.hash",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
/* For 64-bit ELF, .gnu.hash is a non-uniform entity size section:
4 32-bit words followed by variable count of 64-bit words, then
@@ -395,7 +394,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
htab->splt = s;
@@ -415,7 +414,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.plt" : ".rel.plt"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelplt = s;
@@ -466,7 +465,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelbss = s;
@@ -477,8 +476,7 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.data.rel.ro" : ".rel.data.rel.ro"),
flags | SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sreldynrelro = s;
}
@@ -3099,7 +3097,7 @@ _bfd_elf_adjust_dynamic_copy (struct bfd_link_info *info,
know the symbol alignment requirement, we start with the
maximum alignment and check low bits of the symbol address
for the minimum alignment. */
- power_of_two = bfd_get_section_alignment (sec->owner, sec);
+ power_of_two = bfd_section_alignment (sec);
mask = ((bfd_vma) 1 << power_of_two) - 1;
while ((h->root.u.def.value & mask) != 0)
{
@@ -3107,12 +3105,10 @@ _bfd_elf_adjust_dynamic_copy (struct bfd_link_info *info,
--power_of_two;
}
- if (power_of_two > bfd_get_section_alignment (dynbss->owner,
- dynbss))
+ if (power_of_two > bfd_section_alignment (dynbss))
{
/* Adjust the section alignment if needed. */
- if (! bfd_set_section_alignment (dynbss->owner, dynbss,
- power_of_two))
+ if (!bfd_set_section_alignment (dynbss, power_of_two))
return FALSE;
}
@@ -3949,7 +3945,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
{
const char *name;
- name = bfd_get_section_name (abfd, s);
+ name = bfd_section_name (s);
if (CONST_STRNEQ (name, ".gnu.warning."))
{
char *msg;
@@ -11393,8 +11389,7 @@ elf_reloc_link_order (bfd *output_bfd,
case bfd_reloc_overflow:
if (link_order->type == bfd_section_reloc_link_order)
- sym_name = bfd_section_name (output_bfd,
- link_order->u.reloc.p->u.section);
+ sym_name = bfd_section_name (link_order->u.reloc.p->u.section);
else
sym_name = link_order->u.reloc.p->u.name;
(*info->callbacks->reloc_overflow) (info, NULL, sym_name,
@@ -11837,7 +11832,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
}
attr_size = bfd_elf_obj_attr_size (abfd);
- bfd_set_section_size (abfd, o, attr_size);
+ bfd_set_section_size (o, attr_size);
/* Skip this section later on. */
o->map_head.link_order = NULL;
if (attr_size)
@@ -13588,7 +13583,7 @@ bfd_elf_parse_eh_frame_entries (bfd *abfd ATTRIBUTE_UNUSED,
for (sec = ibfd->sections; sec; sec = sec->next)
{
- if (CONST_STRNEQ (bfd_section_name (ibfd, sec), ".eh_frame_entry")
+ if (CONST_STRNEQ (bfd_section_name (sec), ".eh_frame_entry")
&& init_reloc_cookie_rels (&cookie, info, ibfd, sec))
{
_bfd_elf_parse_eh_frame_entry (info, sec, &cookie);
@@ -14444,7 +14439,7 @@ get_dynamic_reloc_section_name (bfd * abfd,
bfd_boolean is_rela)
{
char *name;
- const char *old_name = bfd_get_section_name (NULL, sec);
+ const char *old_name = bfd_section_name (sec);
const char *prefix = is_rela ? ".rela" : ".rel";
if (old_name == NULL)
@@ -14527,7 +14522,7 @@ _bfd_elf_make_dynamic_reloc_section (asection *sec,
section named "auto" we'll get ".relauto" which is
seen to be a .rela section. */
elf_section_type (reloc_sec) = is_rela ? SHT_RELA : SHT_REL;
- if (! bfd_set_section_alignment (dynobj, reloc_sec, alignment))
+ if (!bfd_set_section_alignment (reloc_sec, alignment))
reloc_sec = NULL;
}
}
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 7132b6bc73..6f3bd0d565 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -6790,7 +6790,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
if (r_symndx != 0
@@ -7273,7 +7273,7 @@ elfNN_aarch64_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
for (sec = ibfd->sections; sec != NULL; sec = sec->next)
{
- if ((bfd_get_section_flags (ibfd, sec)
+ if ((bfd_section_flags (sec)
& (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
== (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
only_data_sections = FALSE;
@@ -7519,13 +7519,13 @@ aarch64_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
(bed->dynamic_sec_flags
| SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelgot = s;
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgot = s;
htab->sgot->size += GOT_ENTRY_SIZE;
@@ -7547,8 +7547,7 @@ aarch64_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgotplt = s;
}
@@ -9150,7 +9149,7 @@ elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Strip this section if we don't need it; see the
comment below. */
}
- else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
+ else if (CONST_STRNEQ (bfd_section_name (s), ".rela"))
{
if (s->size != 0 && s != htab->root.srelplt)
relocs = TRUE;
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 65471dd4a4..da10178d4f 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -956,7 +956,7 @@ elfNN_ia64_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr,
{
const char *name;
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (is_unwind_section_name (abfd, name))
{
@@ -1561,11 +1561,10 @@ elfNN_ia64_create_dynamic_sections (bfd *abfd,
return FALSE;
{
- flagword flags = bfd_get_section_flags (abfd, ia64_info->root.sgot);
- bfd_set_section_flags (abfd, ia64_info->root.sgot,
- SEC_SMALL_DATA | flags);
+ flagword flags = bfd_section_flags (ia64_info->root.sgot);
+ bfd_set_section_flags (ia64_info->root.sgot, SEC_SMALL_DATA | flags);
/* The .got section is always aligned at 8 bytes. */
- if (! bfd_set_section_alignment (abfd, ia64_info->root.sgot, 3))
+ if (!bfd_set_section_alignment (ia64_info->root.sgot, 3))
return FALSE;
}
@@ -1579,7 +1578,7 @@ elfNN_ia64_create_dynamic_sections (bfd *abfd,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, LOG_SECTION_ALIGN))
+ || !bfd_set_section_alignment (s, LOG_SECTION_ALIGN))
return FALSE;
ia64_info->rel_pltoff_sec = s;
@@ -1977,11 +1976,11 @@ get_got (bfd *abfd, struct bfd_link_info *info,
got = ia64_info->root.sgot;
/* The .got section is always aligned at 8 bytes. */
- if (!bfd_set_section_alignment (abfd, got, 3))
+ if (!bfd_set_section_alignment (got, 3))
return NULL;
- flags = bfd_get_section_flags (abfd, got);
- if (! bfd_set_section_flags (abfd, got, SEC_SMALL_DATA | flags))
+ flags = bfd_section_flags (got);
+ if (!bfd_set_section_flags (got, SEC_SMALL_DATA | flags))
return NULL;
}
@@ -2016,7 +2015,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
? 0 : SEC_READONLY)
| SEC_LINKER_CREATED));
if (!fptr
- || !bfd_set_section_alignment (abfd, fptr, 4))
+ || !bfd_set_section_alignment (fptr, 4))
{
BFD_ASSERT (0);
return NULL;
@@ -2034,8 +2033,7 @@ get_fptr (bfd *abfd, struct bfd_link_info *info,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (fptr_rel == NULL
- || !bfd_set_section_alignment (abfd, fptr_rel,
- LOG_SECTION_ALIGN))
+ || !bfd_set_section_alignment (fptr_rel, LOG_SECTION_ALIGN))
{
BFD_ASSERT (0);
return NULL;
@@ -2071,7 +2069,7 @@ get_pltoff (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED,
| SEC_SMALL_DATA
| SEC_LINKER_CREATED));
if (!pltoff
- || !bfd_set_section_alignment (abfd, pltoff, 4))
+ || !bfd_set_section_alignment (pltoff, 4))
{
BFD_ASSERT (0);
return NULL;
@@ -2112,8 +2110,7 @@ get_reloc_section (bfd *abfd,
| SEC_LINKER_CREATED
| SEC_READONLY));
if (srel == NULL
- || !bfd_set_section_alignment (dynobj, srel,
- LOG_SECTION_ALIGN))
+ || !bfd_set_section_alignment (srel, LOG_SECTION_ALIGN))
return NULL;
}
@@ -3171,7 +3168,7 @@ elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, sec);
+ name = bfd_section_name (sec);
if (strcmp (name, ".got.plt") == 0)
strip = FALSE;
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 1d04ae9b7e..ccf904af1b 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -310,13 +310,13 @@ riscv_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
(bed->dynamic_sec_flags
| SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelgot = s;
s = s_got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgot = s;
@@ -327,8 +327,7 @@ riscv_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgotplt = s;
@@ -1840,7 +1839,7 @@ riscv_elf_relocate_section (bfd *output_bfd,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
resolved_to_zero = (h != NULL
@@ -3160,7 +3159,7 @@ _bfd_riscv_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
for (sec = ibfd->sections; sec != NULL; sec = sec->next)
{
- if ((bfd_get_section_flags (ibfd, sec)
+ if ((bfd_section_flags (sec)
& (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
== (SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS))
only_data_sections = FALSE;
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index 1f69280713..e7290aaab1 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -758,11 +758,9 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info,
_("%F%P: failed to create GNU property section\n"));
align = (bfd_get_mach (ebfd) & bfd_mach_aarch64_ilp32) ? 2 : 3;
- if (!bfd_set_section_alignment (ebfd, sec, align))
- {
- info->callbacks->einfo (_("%F%pA: failed to align section\n"),
- sec);
- }
+ if (!bfd_set_section_alignment (sec, align))
+ info->callbacks->einfo (_("%F%pA: failed to align section\n"),
+ sec);
elf_section_type (sec) = SHT_NOTE;
}
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 8ad5268520..496e42e7c5 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -1726,7 +1726,7 @@ section_allows_mips16_refs_p (asection *section)
{
const char *name;
- name = bfd_get_section_name (section->owner, section);
+ name = bfd_section_name (section);
return (FN_STUB_P (name)
|| CALL_STUB_P (name)
|| CALL_FP_STUB_P (name)
@@ -1937,7 +1937,7 @@ mips_elf_add_la25_intro (struct mips_elf_la25_stub *stub,
/* Make sure that any padding goes before the stub. */
align = input_section->alignment_power;
- if (!bfd_set_section_alignment (s->owner, s, align))
+ if (!bfd_set_section_alignment (s, align))
return FALSE;
if (align > 3)
s->size = (1 << align) - 8;
@@ -1974,7 +1974,7 @@ mips_elf_add_la25_trampoline (struct mips_elf_la25_stub *stub,
asection *input_section = stub->h->root.root.u.def.section;
s = htab->add_stub_section (".text", NULL,
input_section->output_section);
- if (s == NULL || !bfd_set_section_alignment (s->owner, s, 4))
+ if (s == NULL || !bfd_set_section_alignment (s, 4))
return FALSE;
htab->strampoline = s;
}
@@ -2992,7 +2992,7 @@ mips_elf_output_extsym (struct mips_elf_link_hash_entry *h, void *data)
h->esym.asym.sc = scUndefined;
else
{
- name = bfd_section_name (output_section->owner, output_section);
+ name = bfd_section_name (output_section);
if (strcmp (name, ".text") == 0)
h->esym.asym.sc = scText;
@@ -3265,8 +3265,8 @@ mips_elf_rel_dyn_section (struct bfd_link_info *info, bfd_boolean create_p)
| SEC_LINKER_CREATED
| SEC_READONLY));
if (sreloc == NULL
- || ! bfd_set_section_alignment (dynobj, sreloc,
- MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
+ || !bfd_set_section_alignment (sreloc,
+ MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
return NULL;
}
return sreloc;
@@ -5201,8 +5201,7 @@ mips_elf_create_compact_rel_section
s = bfd_make_section_anyway_with_flags (abfd, ".compact_rel", flags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+ || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
return FALSE;
s->size = sizeof (Elf32_External_compact_rel);
@@ -5236,7 +5235,7 @@ mips_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
in the function stub generation and in the linker script. */
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, 4))
+ || !bfd_set_section_alignment (s, 4))
return FALSE;
htab->root.sgot = s;
@@ -5537,7 +5536,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
symtab_hdr->sh_link,
sym->st_name);
if (*namep == NULL || **namep == '\0')
- *namep = bfd_section_name (input_bfd, sec);
+ *namep = bfd_section_name (sec);
/* For relocations against a section symbol and ones against no
symbol (absolute relocations) infer the ISA mode from the addend. */
@@ -5735,7 +5734,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
sec = NULL;
for (o = input_bfd->sections; o != NULL; o = o->next)
{
- if (CALL_FP_STUB_P (bfd_get_section_name (input_bfd, o)))
+ if (CALL_FP_STUB_P (bfd_section_name (o)))
{
sec = h->call_fp_stub;
break;
@@ -7385,7 +7384,7 @@ _bfd_mips_elf_section_processing (bfd *abfd, Elf_Internal_Shdr *hdr)
if (hdr->bfd_section != NULL)
{
- const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
+ const char *name = bfd_section_name (hdr->bfd_section);
/* .sbss is not handled specially here because the GNU/Linux
prelinker can convert .sbss from NOBITS to PROGBITS and
@@ -7514,10 +7513,9 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
if (flags)
{
- if (! bfd_set_section_flags (abfd, hdr->bfd_section,
- (bfd_get_section_flags (abfd,
- hdr->bfd_section)
- | flags)))
+ if (!bfd_set_section_flags (hdr->bfd_section,
+ (bfd_section_flags (hdr->bfd_section)
+ | flags)))
return FALSE;
}
@@ -7624,7 +7622,7 @@ _bfd_mips_elf_section_from_shdr (bfd *abfd,
bfd_boolean
_bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
{
- const char *name = bfd_get_section_name (abfd, sec);
+ const char *name = bfd_section_name (sec);
if (strcmp (name, ".liblist") == 0)
{
@@ -7764,12 +7762,12 @@ bfd_boolean
_bfd_mips_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec, int *retval)
{
- if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".scommon") == 0)
{
*retval = SHN_MIPS_SCOMMON;
return TRUE;
}
- if (strcmp (bfd_get_section_name (abfd, sec), ".acommon") == 0)
+ if (strcmp (bfd_section_name (sec), ".acommon") == 0)
{
*retval = SHN_MIPS_ACOMMON;
return TRUE;
@@ -7996,7 +7994,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_get_linker_section (abfd, ".dynamic");
if (s != NULL)
{
- if (! bfd_set_section_flags (abfd, s, flags))
+ if (!bfd_set_section_flags (s, flags))
return FALSE;
}
}
@@ -8013,8 +8011,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
MIPS_ELF_STUB_SECTION_NAME (abfd),
flags | SEC_CODE);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+ || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
return FALSE;
htab->sstubs = s;
@@ -8025,8 +8022,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rld_map",
flags &~ (flagword) SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+ || !bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
return FALSE;
}
@@ -8069,24 +8065,24 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
/* Change alignments of some sections. */
s = bfd_get_linker_section (abfd, ".hash");
if (s != NULL)
- (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+ bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
s = bfd_get_linker_section (abfd, ".dynsym");
if (s != NULL)
- (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+ bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
s = bfd_get_linker_section (abfd, ".dynstr");
if (s != NULL)
- (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+ bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
/* ??? */
s = bfd_get_section_by_name (abfd, ".reginfo");
if (s != NULL)
- (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+ bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
s = bfd_get_linker_section (abfd, ".dynamic");
if (s != NULL)
- (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
+ bfd_set_section_alignment (s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
}
if (bfd_link_executable (info))
@@ -8378,7 +8374,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
/* Check for the mips16 stub sections. */
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
if (FN_STUB_P (name))
{
unsigned long r_symndx;
@@ -9375,12 +9371,12 @@ _bfd_mips_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
Encourage better cache usage by aligning. We do this
lazily to avoid pessimizing traditional objects. */
if (!htab->is_vxworks
- && !bfd_set_section_alignment (dynobj, htab->root.splt, 5))
+ && !bfd_set_section_alignment (htab->root.splt, 5))
return FALSE;
/* Make sure that .got.plt is word-aligned. We do this lazily
for the same reason as above. */
- if (!bfd_set_section_alignment (dynobj, htab->root.sgotplt,
+ if (!bfd_set_section_alignment (htab->root.sgotplt,
MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
return FALSE;
@@ -9588,7 +9584,7 @@ _bfd_mips_elf_always_size_sections (bfd *output_bfd,
sect = bfd_get_section_by_name (output_bfd, ".reginfo");
if (sect != NULL)
{
- bfd_set_section_size (output_bfd, sect, sizeof (Elf32_External_RegInfo));
+ bfd_set_section_size (sect, sizeof (Elf32_External_RegInfo));
sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
}
@@ -9596,8 +9592,7 @@ _bfd_mips_elf_always_size_sections (bfd *output_bfd,
sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags");
if (sect != NULL)
{
- bfd_set_section_size (output_bfd, sect,
- sizeof (Elf_External_ABIFlags_v0));
+ bfd_set_section_size (sect, sizeof (Elf_External_ABIFlags_v0));
sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS;
}
@@ -10030,7 +10025,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
/* It's OK to base decisions on the section name, because none
of the dynobj section names depend upon the input files. */
- name = bfd_get_section_name (dynobj, s);
+ name = bfd_section_name (s);
if ((s->flags & SEC_LINKER_CREATED) == 0)
continue;
@@ -10048,8 +10043,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
assert a DT_TEXTREL entry rather than testing whether
there exists a relocation to a read only section or
not. */
- outname = bfd_get_section_name (output_bfd,
- s->output_section);
+ outname = bfd_section_name (s->output_section);
target = bfd_get_section_by_name (output_bfd, outname + 4);
if ((target != NULL
&& (target->flags & SEC_READONLY) != 0
@@ -12445,7 +12439,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
case SHT_MIPS_GPTAB:
BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
- name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+ name = bfd_section_name ((*hdrpp)->bfd_section);
BFD_ASSERT (name != NULL
&& CONST_STRNEQ (name, ".gptab."));
sec = bfd_get_section_by_name (abfd, name + sizeof ".gptab" - 1);
@@ -12455,7 +12449,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
case SHT_MIPS_CONTENT:
BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
- name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+ name = bfd_section_name ((*hdrpp)->bfd_section);
BFD_ASSERT (name != NULL
&& CONST_STRNEQ (name, ".MIPS.content"));
sec = bfd_get_section_by_name (abfd,
@@ -12475,7 +12469,7 @@ _bfd_mips_final_write_processing (bfd *abfd)
case SHT_MIPS_EVENTS:
BFD_ASSERT ((*hdrpp)->bfd_section != NULL);
- name = bfd_get_section_name (abfd, (*hdrpp)->bfd_section);
+ name = bfd_section_name ((*hdrpp)->bfd_section);
BFD_ASSERT (name != NULL);
if (CONST_STRNEQ (name, ".MIPS.events"))
sec = bfd_get_section_by_name (abfd,
@@ -12861,8 +12855,7 @@ _bfd_mips_elf_gc_mark_extra_sections (struct bfd_link_info *info,
for (o = sub->sections; o != NULL; o = o->next)
if (!o->gc_mark
- && MIPS_ELF_ABIFLAGS_SECTION_NAME_P
- (bfd_get_section_name (sub, o)))
+ && MIPS_ELF_ABIFLAGS_SECTION_NAME_P (bfd_section_name (o)))
{
if (!_bfd_elf_gc_mark (info, o, gc_mark_hook))
return FALSE;
@@ -15024,7 +15017,7 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info)
".rtproc",
flags);
if (rtproc_sec == NULL
- || ! bfd_set_section_alignment (abfd, rtproc_sec, 4))
+ || !bfd_set_section_alignment (rtproc_sec, 4))
return FALSE;
}
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index e479884071..735e83f3de 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -1263,15 +1263,14 @@ create_ifunc_sections (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_with_flags (abfd, ".iplt", pltflags);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ || !bfd_set_section_alignment (s, bed->plt_alignment))
return FALSE;
htab->iplt = s;
s = bfd_make_section_with_flags (abfd, ".rela.iplt",
flags | SEC_READONLY);
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->irelplt = s;
@@ -4164,8 +4163,7 @@ do_relocation:
|| r_type == R_SPARC_UA32
|| r_type == R_SPARC_DISP32)
&& (((input_section->flags & SEC_DEBUGGING) != 0
- && strcmp (bfd_section_name (input_bfd,
- input_section),
+ && strcmp (bfd_section_name (input_section),
".stab") == 0)
|| _bfd_elf_section_offset (output_bfd, info,
input_section,
@@ -4194,7 +4192,7 @@ do_relocation:
if (name == NULL)
return FALSE;
if (*name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
(*info->callbacks->reloc_overflow)
(info, (h ? &h->root : NULL), name, howto->name,
diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c
index 2149fbcd22..41af167e1e 100644
--- a/bfd/elfxx-tilegx.c
+++ b/bfd/elfxx-tilegx.c
@@ -1438,13 +1438,13 @@ tilegx_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
(bed->dynamic_sec_flags
| SEC_READONLY));
if (s == NULL
- || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->srelgot = s;
s = s_got = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgot = s;
@@ -1455,8 +1455,7 @@ tilegx_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
if (s == NULL
- || !bfd_set_section_alignment (abfd, s,
- bed->s->log_file_align))
+ || !bfd_set_section_alignment (s, bed->s->log_file_align))
return FALSE;
htab->sgotplt = s;
@@ -3032,7 +3031,7 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name));
if (name == NULL || *name == '\0')
- name = bfd_section_name (input_bfd, sec);
+ name = bfd_section_name (sec);
}
switch (r_type)
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 634f911ca5..d8165d1752 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -1238,7 +1238,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd *output_bfd,
{
/* Strip these too. */
}
- else if (htab->is_reloc_section (bfd_get_section_name (dynobj, s)))
+ else if (htab->is_reloc_section (bfd_section_name (s)))
{
if (s->size != 0
&& s != htab->elf.srelplt
@@ -1280,8 +1280,7 @@ _bfd_x86_elf_size_dynamic_sections (bfd *output_bfd,
it is empty. Update its section alignment now since it
is non-empty. */
if (s == htab->elf.iplt)
- bfd_set_section_alignment (s->owner, s,
- htab->plt.iplt_alignment);
+ bfd_set_section_alignment (s, htab->plt.iplt_alignment);
/* Allocate memory for the section contents. We use bfd_zalloc
here in case unused entries are not reclaimed before the
@@ -2625,7 +2624,7 @@ _bfd_x86_elf_link_setup_gnu_properties
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
- if (!bfd_set_section_alignment (ebfd, sec, class_align))
+ if (!bfd_set_section_alignment (sec, class_align))
{
error_alignment:
info->callbacks->einfo (_("%F%pA: failed to align section\n"),
@@ -2839,11 +2838,11 @@ error_alignment:
instead of in create_dynamic_sections so that they are always
properly aligned even if create_dynamic_sections isn't called. */
sec = htab->elf.sgot;
- if (!bfd_set_section_alignment (dynobj, sec, got_align))
+ if (!bfd_set_section_alignment (sec, got_align))
goto error_alignment;
sec = htab->elf.sgotplt;
- if (!bfd_set_section_alignment (dynobj, sec, got_align))
+ if (!bfd_set_section_alignment (sec, got_align))
goto error_alignment;
/* Create the ifunc sections here so that check_relocs can be
@@ -2881,8 +2880,7 @@ error_alignment:
= bfd_log2 (htab->non_lazy_plt->plt_entry_size);
sec = pltsec;
- if (!bfd_set_section_alignment (sec->owner, sec,
- plt_alignment))
+ if (!bfd_set_section_alignment (sec, plt_alignment))
goto error_alignment;
/* Create the GOT procedure linkage table. */
@@ -2892,8 +2890,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create GOT PLT section\n"));
- if (!bfd_set_section_alignment (dynobj, sec,
- non_lazy_plt_alignment))
+ if (!bfd_set_section_alignment (sec, non_lazy_plt_alignment))
goto error_alignment;
htab->plt_got = sec;
@@ -2913,8 +2910,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create IBT-enabled PLT section\n"));
- if (!bfd_set_section_alignment (dynobj, sec,
- plt_alignment))
+ if (!bfd_set_section_alignment (sec, plt_alignment))
goto error_alignment;
}
else if (htab->params->bndplt && ABI_64_P (dynobj))
@@ -2928,8 +2924,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create BND PLT section\n"));
- if (!bfd_set_section_alignment (dynobj, sec,
- non_lazy_plt_alignment))
+ if (!bfd_set_section_alignment (sec, non_lazy_plt_alignment))
goto error_alignment;
}
@@ -2949,7 +2944,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create PLT .eh_frame section\n"));
- if (!bfd_set_section_alignment (dynobj, sec, class_align))
+ if (!bfd_set_section_alignment (sec, class_align))
goto error_alignment;
htab->plt_eh_frame = sec;
@@ -2962,7 +2957,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create GOT PLT .eh_frame section\n"));
- if (!bfd_set_section_alignment (dynobj, sec, class_align))
+ if (!bfd_set_section_alignment (sec, class_align))
goto error_alignment;
htab->plt_got_eh_frame = sec;
@@ -2976,7 +2971,7 @@ error_alignment:
if (sec == NULL)
info->callbacks->einfo (_("%F%P: failed to create the second PLT .eh_frame section\n"));
- if (!bfd_set_section_alignment (dynobj, sec, class_align))
+ if (!bfd_set_section_alignment (sec, class_align))
goto error_alignment;
htab->plt_second_eh_frame = sec;
@@ -2995,7 +2990,7 @@ error_alignment:
section backwards, resulting in a warning and section lma not
being set properly. It later leads to a "File truncated"
error. */
- if (!bfd_set_section_alignment (sec->owner, sec, 0))
+ if (!bfd_set_section_alignment (sec, 0))
goto error_alignment;
htab->plt.iplt_alignment = (normal_target
diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c
index 9c4ab4cece..18f332f60d 100644
--- a/bfd/i386msdos.c
+++ b/bfd/i386msdos.c
@@ -109,7 +109,7 @@ msdos_object_p (bfd *abfd)
return NULL;
}
- bfd_set_section_size (abfd, section, size);
+ bfd_set_section_size (section, size);
section->alignment_power = 4;
return abfd->xvec;
@@ -135,16 +135,16 @@ msdos_write_object_contents (bfd *abfd)
{
if (sec->size == 0)
continue;
- if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ if (bfd_section_flags (sec) & SEC_ALLOC)
{
- bfd_vma sec_vma = bfd_get_section_vma (abfd, sec) + sec->size;
+ bfd_vma sec_vma = bfd_section_vma (sec) + sec->size;
if (sec_vma > high_vma)
high_vma = sec_vma;
}
- if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
+ if (bfd_section_flags (sec) & SEC_LOAD)
{
file_ptr sec_end = (sizeof (hdr)
- + bfd_get_section_vma (abfd, sec)
+ + bfd_section_vma (sec)
+ sec->size);
if (sec_end > outfile_size)
outfile_size = sec_end;
@@ -195,9 +195,9 @@ msdos_set_section_contents (bfd *abfd,
if (count == 0)
return TRUE;
- section->filepos = EXE_PAGE_SIZE + bfd_get_section_vma (abfd, section);
+ section->filepos = EXE_PAGE_SIZE + bfd_section_vma (section);
- if (bfd_get_section_flags (abfd, section) & SEC_LOAD)
+ if (bfd_section_flags (section) & SEC_LOAD)
{
if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
|| bfd_bwrite (location, count, abfd) != count)
diff --git a/bfd/linker.c b/bfd/linker.c
index 2518371f24..143b8eb950 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -2396,7 +2396,7 @@ _bfd_generic_reloc_link_order (bfd *abfd,
(*info->callbacks->reloc_overflow)
(info, NULL,
(link_order->type == bfd_section_reloc_link_order
- ? bfd_section_name (abfd, link_order->u.reloc.p->u.section)
+ ? bfd_section_name (link_order->u.reloc.p->u.section)
: link_order->u.reloc.p->u.name),
r->howto->name, link_order->u.reloc.p->addend,
NULL, NULL, 0);
@@ -2942,7 +2942,7 @@ _bfd_generic_section_already_linked (bfd *abfd ATTRIBUTE_UNUSED,
into a single large link once section, which defeats the purpose
of having link once sections in the first place. */
- name = bfd_get_section_name (abfd, sec);
+ name = bfd_section_name (sec);
already_linked_list = bfd_section_already_linked_table_lookup (name);
diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index 7d70087c95..117e410d83 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -437,7 +437,7 @@ bfd_mach_o_convert_section_name_to_mach_o (bfd *abfd ATTRIBUTE_UNUSED,
bfd_mach_o_section *section)
{
const mach_o_section_name_xlat *xlat;
- const char *name = bfd_get_section_name (abfd, sect);
+ const char *name = bfd_section_name (sect);
const char *segname;
const char *dot;
unsigned int len;
@@ -2583,13 +2583,13 @@ bfd_mach_o_mangle_sections (bfd *abfd, bfd_mach_o_data_struct *mdata)
target_index = 0;
for (sec = abfd->sections; sec; sec = sec->next)
{
- unsigned bfd_align = bfd_get_section_alignment (abfd, sec);
+ unsigned bfd_align = bfd_section_alignment (sec);
bfd_mach_o_section *msect = bfd_mach_o_get_mach_o_section (sec);
mdata->sections[target_index] = msect;
- msect->addr = bfd_get_section_vma (abfd, sec);
- msect->size = bfd_get_section_size (sec);
+ msect->addr = bfd_section_vma (sec);
+ msect->size = bfd_section_size (sec);
/* Use the largest alignment set, in case it was bumped after the
section was created. */
@@ -2808,7 +2808,7 @@ bfd_mach_o_set_section_flags_from_bfd (bfd *abfd ATTRIBUTE_UNUSED,
bfd_mach_o_section *s = bfd_mach_o_get_mach_o_section (sec);
/* Create default flags. */
- bfd_flags = bfd_get_section_flags (abfd, sec);
+ bfd_flags = bfd_section_flags (sec);
if ((bfd_flags & SEC_CODE) == SEC_CODE)
s->flags = BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS
| BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS
@@ -2983,7 +2983,7 @@ bfd_mach_o_build_exec_seg_command (bfd *abfd, bfd_mach_o_segment_command *seg)
for (s = seg->sect_head; s != NULL; s = s->next)
{
asection *sec = s->bfdsection;
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
/* Adjust segment size. */
seg->vmsize = FILE_ALIGN (seg->vmsize, s->align);
@@ -3502,7 +3502,7 @@ bfd_boolean
bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
{
bfd_mach_o_section *s;
- unsigned bfdalign = bfd_get_section_alignment (abfd, sec);
+ unsigned bfdalign = bfd_section_alignment (sec);
s = bfd_mach_o_get_mach_o_section (sec);
if (s == NULL)
@@ -3526,10 +3526,10 @@ bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
s->flags = xlat->macho_sectype | xlat->macho_secattr;
s->align = xlat->sectalign > bfdalign ? xlat->sectalign
: bfdalign;
- (void) bfd_set_section_alignment (abfd, sec, s->align);
- bfd_flags = bfd_get_section_flags (abfd, sec);
+ bfd_set_section_alignment (sec, s->align);
+ bfd_flags = bfd_section_flags (sec);
if (bfd_flags == SEC_NO_FLAGS)
- bfd_set_section_flags (abfd, sec, xlat->bfd_flags);
+ bfd_set_section_flags (sec, xlat->bfd_flags);
}
else
/* Create default flags. */
@@ -3540,13 +3540,12 @@ bfd_mach_o_new_section_hook (bfd *abfd, asection *sec)
}
static void
-bfd_mach_o_init_section_from_mach_o (bfd *abfd, asection *sec,
- unsigned long prot)
+bfd_mach_o_init_section_from_mach_o (asection *sec, unsigned long prot)
{
flagword flags;
bfd_mach_o_section *section;
- flags = bfd_get_section_flags (abfd, sec);
+ flags = bfd_section_flags (sec);
section = bfd_mach_o_get_mach_o_section (sec);
/* TODO: see if we should use the xlat system for doing this by
@@ -3584,7 +3583,7 @@ bfd_mach_o_init_section_from_mach_o (bfd *abfd, asection *sec,
if (section->nreloc != 0)
flags |= SEC_RELOC;
- bfd_set_section_flags (abfd, sec, flags);
+ bfd_set_section_flags (sec, flags);
sec->vma = section->addr;
sec->lma = section->addr;
@@ -3651,7 +3650,7 @@ bfd_mach_o_read_section_32 (bfd *abfd, unsigned long prot)
section->reserved2 = bfd_h_get_32 (abfd, raw.reserved2);
section->reserved3 = 0;
- bfd_mach_o_init_section_from_mach_o (abfd, sec, prot);
+ bfd_mach_o_init_section_from_mach_o (sec, prot);
return sec;
}
@@ -3694,7 +3693,7 @@ bfd_mach_o_read_section_64 (bfd *abfd, unsigned long prot)
section->reserved2 = bfd_h_get_32 (abfd, raw.reserved2);
section->reserved3 = bfd_h_get_32 (abfd, raw.reserved3);
- bfd_mach_o_init_section_from_mach_o (abfd, sec, prot);
+ bfd_mach_o_init_section_from_mach_o (sec, prot);
return sec;
}
diff --git a/bfd/mmo.c b/bfd/mmo.c
index f48f9868fe..736ee4bed8 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -596,7 +596,7 @@ static bfd_boolean
mmo_section_has_contents (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p ATTRIBUTE_UNUSED)
{
/* The point is to match what --extract-symbols does (well, negated). */
- return bfd_get_section_size (sec) != 0;
+ return bfd_section_size (sec) != 0;
}
/* Find out whether we should omit symbol consistency checks for this
@@ -642,10 +642,10 @@ static void
mmo_find_sec_w_addr (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p)
{
struct mmo_find_sec_info *infop = (struct mmo_find_sec_info *) p;
- bfd_vma vma = bfd_get_section_vma (abfd, sec);
+ bfd_vma vma = bfd_section_vma (sec);
/* Ignore sections that aren't loaded. */
- if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
+ if ((bfd_section_flags (sec) & (SEC_LOAD | SEC_ALLOC))
!= (SEC_LOAD | SEC_ALLOC))
return;
@@ -657,10 +657,10 @@ static void
mmo_find_sec_w_addr_grow (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *p)
{
struct mmo_find_sec_info *infop = (struct mmo_find_sec_info *) p;
- bfd_vma vma = bfd_get_section_vma (abfd, sec);
+ bfd_vma vma = bfd_section_vma (sec);
/* Ignore sections that aren't loaded. */
- if ((bfd_get_section_flags (abfd, sec) & (SEC_LOAD | SEC_ALLOC))
+ if ((bfd_section_flags (sec) & (SEC_LOAD | SEC_ALLOC))
!= (SEC_LOAD | SEC_ALLOC))
return;
@@ -700,12 +700,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
if (sec == NULL)
return NULL;
- if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+ if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
return NULL;
- if (! bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec)
- | SEC_CODE | SEC_LOAD | SEC_ALLOC))
+ if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_CODE | SEC_LOAD | SEC_ALLOC)))
return NULL;
}
else if ((vma >> 56) == 0x20)
@@ -715,12 +714,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
if (sec == NULL)
return NULL;
- if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+ if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
return NULL;
- if (! bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec)
- | SEC_LOAD | SEC_ALLOC))
+ if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_LOAD | SEC_ALLOC)))
return NULL;
}
@@ -733,12 +731,11 @@ mmo_decide_section (bfd *abfd, bfd_vma vma)
sprintf (sec_name, ".MMIX.sec.%d", abfd->tdata.mmo_data->sec_no++);
sec = mmo_make_section (abfd, sec_name);
- if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma))
+ if (!sec->user_set_vma && !bfd_set_section_vma (sec, vma))
return NULL;
- if (! bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec)
- | SEC_LOAD | SEC_ALLOC))
+ if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_LOAD | SEC_ALLOC)))
return NULL;
return sec;
}
@@ -1136,14 +1133,13 @@ mmo_get_spec_section (bfd *abfd, int spec_data_number)
/* Add in the section flags we found to those bfd entered during this
process and set the contents. */
- if (! bfd_set_section_flags (abfd, sec,
- bfd_sec_flags_from_mmo_flags (flags)
- | bfd_get_section_flags (abfd, sec)
- | (section_length != 0 ? SEC_HAS_CONTENTS : 0))
- || ! bfd_set_section_size (abfd, sec, sec->size + section_length)
+ if (!bfd_set_section_flags (sec,
+ (bfd_sec_flags_from_mmo_flags (flags)
+ | bfd_section_flags (sec)
+ | (section_length != 0 ? SEC_HAS_CONTENTS : 0)))
+ || !bfd_set_section_size (sec, sec->size + section_length)
/* Set VMA only for the first occurrence. */
- || (! sec->user_set_vma
- && ! bfd_set_section_vma (abfd, sec, section_vma)))
+ || (!sec->user_set_vma && !bfd_set_section_vma (sec, section_vma)))
{
/* If we get an error for any of the calls above, signal more than
just a format error for the spec section. */
@@ -1561,9 +1557,8 @@ mmo_get_loc (asection *sec, bfd_vma vma, int size)
/* We get here for the first time (at other times too) for this
section. Say we have contents. */
- if (! bfd_set_section_flags (sec->owner, sec,
- bfd_get_section_flags (sec->owner, sec)
- | SEC_HAS_CONTENTS))
+ if (!bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_HAS_CONTENTS)))
return NULL;
}
}
@@ -2070,18 +2065,16 @@ mmo_scan (bfd *abfd)
section flags must be set then. */
sec = bfd_get_section_by_name (abfd, MMO_TEXT_SECTION_NAME);
if (sec != NULL
- && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
- && ! bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec)
- | SEC_ALLOC | SEC_LOAD | SEC_CODE))
+ && (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
+ && !bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_ALLOC | SEC_LOAD | SEC_CODE)))
error = TRUE;
sec = bfd_get_section_by_name (abfd, MMO_DATA_SECTION_NAME);
if (sec != NULL
- && (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
- && ! bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec)
- | SEC_ALLOC | SEC_LOAD))
+ && (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
+ && !bfd_set_section_flags (sec, (bfd_section_flags (sec)
+ | SEC_ALLOC | SEC_LOAD)))
error = TRUE;
/* Free whatever resources we took. */
@@ -2432,7 +2425,7 @@ bfd_sec_flags_from_mmo_flags (flagword flags)
static bfd_boolean
mmo_has_leading_or_trailing_zero_tetra_p (bfd *abfd, asection *sec)
{
- bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+ bfd_vma secaddr = bfd_section_vma (sec);
if (sec->size < 4)
return FALSE;
@@ -2464,7 +2457,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
if (strcmp (sec->name, MMO_TEXT_SECTION_NAME) == 0)
{
- bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+ bfd_vma secaddr = bfd_section_vma (sec);
/* Because leading and trailing zeros are omitted in output, we need to
specify the section boundaries so they're correct when the file
@@ -2485,7 +2478,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
}
else if (strcmp (sec->name, MMO_DATA_SECTION_NAME) == 0)
{
- bfd_vma secaddr = bfd_get_section_vma (abfd, sec);
+ bfd_vma secaddr = bfd_section_vma (sec);
/* Same goes as for MMO_TEXT_SECTION_NAME above. */
if (sec->size != 0
@@ -2519,7 +2512,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
}
/* Ignore sections that are just allocated or empty; we write out
_contents_ here. */
- else if ((bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS) != 0
+ else if ((bfd_section_flags (sec) & SEC_HAS_CONTENTS) != 0
&& sec->size != 0)
{
if (!mmo_write_section_description (abfd, sec))
@@ -2527,7 +2520,7 @@ mmo_internal_write_section (bfd *abfd, asection *sec)
/* Writing a LOP_LOC ends the LOP_SPEC data, and makes data actually
loaded. */
- if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
+ if (bfd_section_flags (sec) & SEC_LOAD)
return (! abfd->tdata.mmo_data->have_error
&& mmo_write_loc_chunk_list (abfd,
mmo_section_data (sec)->head));
@@ -2646,10 +2639,9 @@ EXAMPLE
for all alien sections; perhaps mmo.em should clear that flag. Might
be related to weak references. */
mmo_write_tetra (abfd,
- mmo_sec_flags_from_bfd_flags
- (bfd_get_section_flags (abfd, sec)));
+ mmo_sec_flags_from_bfd_flags (bfd_section_flags (sec)));
mmo_write_octa (abfd, sec->size);
- mmo_write_octa (abfd, bfd_get_section_vma (abfd, sec));
+ mmo_write_octa (abfd, bfd_section_vma (sec));
return TRUE;
}
@@ -3171,7 +3163,7 @@ mmo_write_section_unless_reg_contents (bfd *abfd, asection *sec, void *p)
/* Exclude the convenience register section. */
if (strcmp (sec->name, MMIX_REG_SECTION_NAME) == 0)
{
- if (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS)
+ if (bfd_section_flags (sec) & SEC_HAS_CONTENTS)
{
/* Make sure it hasn't got contents. It seems impossible to
make it carry contents, so we don't have a test-case for
diff --git a/bfd/opncls.c b/bfd/opncls.c
index d14dfe9320..b537dfd96d 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -1218,7 +1218,7 @@ bfd_get_debug_link_info_1 (bfd *abfd, void *crc32_out)
if (sect == NULL)
return NULL;
- size = bfd_get_section_size (sect);
+ size = bfd_section_size (sect);
/* PR 22794: Make sure that the section has a reasonable size. */
if (size < 8 || size >= bfd_get_size (abfd))
@@ -1308,7 +1308,7 @@ bfd_get_alt_debug_link_info (bfd * abfd, bfd_size_type *buildid_len,
if (sect == NULL)
return NULL;
- size = bfd_get_section_size (sect);
+ size = bfd_section_size (sect);
if (size < 8 || size >= bfd_get_size (abfd))
return NULL;
@@ -1322,7 +1322,7 @@ bfd_get_alt_debug_link_info (bfd * abfd, bfd_size_type *buildid_len,
/* BuildID value is stored after the filename. */
name = (char *) contents;
buildid_offset = strnlen (name, size) + 1;
- if (buildid_offset >= bfd_get_section_size (sect))
+ if (buildid_offset >= bfd_section_size (sect))
return NULL;
*buildid_len = size - buildid_offset;
@@ -1727,14 +1727,14 @@ bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename)
debuglink_size &= ~3;
debuglink_size += 4;
- if (! bfd_set_section_size (abfd, sect, debuglink_size))
+ if (!bfd_set_section_size (sect, debuglink_size))
/* XXX Should we delete the section from the bfd ? */
return NULL;
/* PR 21193: Ensure that the section has 4-byte alignment for the CRC.
Note - despite the name of the function being called, we are
setting an alignment power, not a byte alignment value. */
- bfd_set_section_alignment (abfd, sect, 2);
+ bfd_set_section_alignment (sect, 2);
return sect;
}
@@ -1872,7 +1872,7 @@ get_build_id (bfd *abfd)
return NULL;
}
- size = bfd_get_section_size (sect);
+ size = bfd_section_size (sect);
/* FIXME: Should we support smaller build-id notes ? */
if (size < 0x24)
{
@@ -1890,7 +1890,7 @@ get_build_id (bfd *abfd)
/* FIXME: Paranoia - allow for compressed build-id sections.
Maybe we should complain if this size is different from
the one obtained above... */
- size = bfd_get_section_size (sect);
+ size = bfd_section_size (sect);
if (size < sizeof (Elf_External_Note))
{
bfd_set_error (bfd_error_invalid_operation);
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 238f5144d4..a0c3ac0fa6 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -2802,17 +2802,17 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
break;
case N_TEXT | N_EXT:
section = obj_textsec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_DATA | N_EXT:
/* Treat N_SETV symbols as N_DATA symbol; see comment in
translate_from_native_sym_flags. */
section = obj_datasec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
case N_BSS | N_EXT:
section = obj_bsssec (abfd);
- value -= bfd_get_section_vma (abfd, section);
+ value -= bfd_section_vma (section);
break;
}
@@ -3151,8 +3151,7 @@ aout_link_reloc_link_order (struct aout_final_link_info *flaginfo,
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, NULL,
(p->type == bfd_section_reloc_link_order
- ? bfd_section_name (flaginfo->output_bfd,
- pr->u.section)
+ ? bfd_section_name (pr->u.section)
: pr->u.name),
howto->name, pr->addend, NULL,
(asection *) NULL, (bfd_vma) 0);
@@ -3477,7 +3476,7 @@ pdp11_aout_link_input_section (struct aout_final_link_info *flaginfo,
asection *s;
s = aout_reloc_type_to_section (input_bfd, r_type);
- name = bfd_section_name (input_bfd, s);
+ name = bfd_section_name (s);
}
(*flaginfo->info->callbacks->reloc_overflow)
(flaginfo->info, (h ? &h->root : NULL), name, howto->name,
@@ -3997,8 +3996,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
return FALSE;
PUT_WORD (output_bfd, strtab_index, outsym->e_strx);
PUT_WORD (output_bfd,
- (bfd_get_section_vma (output_bfd,
- obj_textsec (input_bfd)->output_section)
+ (bfd_section_vma (obj_textsec (input_bfd)->output_section)
+ obj_textsec (input_bfd)->output_offset),
outsym->e_value);
++obj_aout_external_sym_count (output_bfd);
@@ -4206,7 +4204,7 @@ aout_link_write_symbols (struct aout_final_link_info *flaginfo, bfd *input_bfd)
BFD_ASSERT (bfd_is_abs_section (output_section)
|| output_section->owner == output_bfd);
val = (hresolve->root.u.def.value
- + bfd_get_section_vma (output_bfd, output_section)
+ + bfd_section_vma (output_section)
+ input_section->output_offset);
/* Get the correct type based on the section. If
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 2588e6c6e9..c0b97351de 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -770,7 +770,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
if (PEX64_IS_RUNTIME_FUNCTION_CHAINED (&rf))
{
bfd_vma altent = PEX64_GET_UNWINDDATA_UNIFIED_RVA (&rf);
- bfd_vma pdata_vma = bfd_get_section_vma (abfd, pdata_section);
+ bfd_vma pdata_vma = bfd_section_vma (pdata_section);
struct pex64_runtime_function arf;
fprintf (file, "\t shares information with ");
diff --git a/bfd/peicode.h b/bfd/peicode.h
index 679474ecd1..1e2b104430 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -608,16 +608,16 @@ pe_ILF_make_a_section (pe_ILF_vars * vars,
flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_KEEP | SEC_IN_MEMORY;
- bfd_set_section_flags (vars->abfd, sec, flags | extra_flags);
+ bfd_set_section_flags (sec, flags | extra_flags);
- (void) bfd_set_section_alignment (vars->abfd, sec, 2);
+ bfd_set_section_alignment (sec, 2);
/* Check that we will not run out of space. */
BFD_ASSERT (vars->data + size < vars->bim->buffer + vars->bim->size);
/* Set the section size and contents. The actual
contents are filled in by our parent. */
- bfd_set_section_size (vars->abfd, sec, (bfd_size_type) size);
+ bfd_set_section_size (sec, (bfd_size_type) size);
sec->contents = vars->data;
sec->target_index = vars->sec_index ++;
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 8eac73ddfe..0c67ecd313 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1526,8 +1526,7 @@ _bfd_clear_contents (reloc_howto_type *howto,
/* For a range list, use 1 instead of 0 as placeholder. 0
would terminate the list, hiding any later entries. */
- if (strcmp (bfd_get_section_name (input_bfd, input_section),
- ".debug_ranges") == 0
+ if (strcmp (bfd_section_name (input_section), ".debug_ranges") == 0
&& (howto->dst_mask & 1) != 0)
x |= 1;
diff --git a/bfd/section.c b/bfd/section.c
index 74feb73be9..3a9cb26023 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -554,26 +554,31 @@ CODE_FRAGMENT
. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
. compilers will complain about comma expressions that have no effect. *}
.static inline bfd_boolean
-.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-. void * val)
+.bfd_set_section_userdata (asection *sec, void *val)
.{
-. ptr->userdata = val;
+. sec->userdata = val;
. return TRUE;
.}
.
.static inline bfd_boolean
-.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
+.bfd_set_section_vma (asection *sec, bfd_vma val)
.{
-. ptr->vma = ptr->lma = val;
-. ptr->user_set_vma = TRUE;
+. sec->vma = sec->lma = val;
+. sec->user_set_vma = TRUE;
. return TRUE;
.}
.
.static inline bfd_boolean
-.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
-. unsigned int val)
+.bfd_set_section_lma (asection *sec, bfd_vma val)
.{
-. ptr->alignment_power = val;
+. sec->lma = val;
+. return TRUE;
+.}
+.
+.static inline bfd_boolean
+.bfd_set_section_alignment (asection *sec, unsigned int val)
+.{
+. sec->alignment_power = val;
. return TRUE;
.}
.
@@ -1289,13 +1294,12 @@ FUNCTION
bfd_set_section_flags
SYNOPSIS
- bfd_boolean bfd_set_section_flags
- (bfd *abfd, asection *sec, flagword flags);
+ bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
DESCRIPTION
- Set the attributes of the section @var{sec} in the BFD
- @var{abfd} to the value @var{flags}. Return <<TRUE>> on success,
- <<FALSE>> on error. Possible error returns are:
+ Set the attributes of the section @var{sec} to the value @var{flags}.
+ Return <<TRUE>> on success, <<FALSE>> on error. Possible error
+ returns are:
o <<bfd_error_invalid_operation>> -
The section cannot have one or more of the attributes
@@ -1305,9 +1309,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED,
- sec_ptr section,
- flagword flags)
+bfd_set_section_flags (asection *section, flagword flags)
{
section->flags = flags;
return TRUE;
@@ -1319,21 +1321,21 @@ FUNCTION
SYNOPSIS
void bfd_rename_section
- (bfd *abfd, asection *sec, const char *newname);
+ (asection *sec, const char *newname);
DESCRIPTION
- Rename section @var{sec} in @var{abfd} to @var{newname}.
+ Rename section @var{sec} to @var{newname}.
*/
void
-bfd_rename_section (bfd *abfd, sec_ptr sec, const char *newname)
+bfd_rename_section (asection *sec, const char *newname)
{
struct section_hash_entry *sh;
sh = (struct section_hash_entry *)
((char *) sec - offsetof (struct section_hash_entry, section));
sh->section.name = newname;
- bfd_hash_rename (&abfd->section_htab, newname, &sh->root);
+ bfd_hash_rename (&sec->owner->section_htab, newname, &sh->root);
}
/*
@@ -1417,8 +1419,7 @@ FUNCTION
bfd_set_section_size
SYNOPSIS
- bfd_boolean bfd_set_section_size
- (bfd *abfd, asection *sec, bfd_size_type val);
+ bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
DESCRIPTION
Set @var{sec} to the size @var{val}. If the operation is
@@ -1431,18 +1432,18 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_section_size (bfd *abfd, sec_ptr ptr, bfd_size_type val)
+bfd_set_section_size (asection *sec, bfd_size_type val)
{
/* Once you've started writing to any section you cannot create or change
the size of any others. */
- if (abfd->output_has_begun)
+ if (sec->owner == NULL || sec->owner->output_has_begun)
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
}
- ptr->size = val;
+ sec->size = val;
return TRUE;
}
@@ -1486,7 +1487,7 @@ bfd_set_section_contents (bfd *abfd,
{
bfd_size_type sz;
- if (!(bfd_get_section_flags (abfd, section) & SEC_HAS_CONTENTS))
+ if (!(bfd_section_flags (section) & SEC_HAS_CONTENTS))
{
bfd_set_error (bfd_error_no_contents);
return FALSE;
diff --git a/bfd/syms.c b/bfd/syms.c
index 4d532b2cd2..9a2754ebe6 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -1290,7 +1290,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
/* We are passed a section relative offset. The offsets in the
stabs information are absolute. */
- offset += bfd_get_section_vma (abfd, section);
+ offset += bfd_section_vma (section);
#ifdef ENABLE_CACHING
if (info->cached_indexentry != NULL
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index 8d2a2dff62..4dde056e1e 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -632,7 +632,7 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned int offset)
section->size = size;
section->vma = vaddr;
- if (!bfd_set_section_flags (abfd, section, bfd_flags))
+ if (!bfd_set_section_flags (section, bfd_flags))
return FALSE;
}
@@ -687,7 +687,7 @@ _bfd_vms_slurp_eihs (bfd *abfd, unsigned int offset)
section->size = dstsize;
section->filepos = VMS_BLOCK_SIZE * (dstvbn - 1);
- if (!bfd_set_section_flags (abfd, section, bfd_flags))
+ if (!bfd_set_section_flags (section, bfd_flags))
return FALSE;
PRIV (dst_section) = section;
@@ -705,7 +705,7 @@ _bfd_vms_slurp_eihs (bfd *abfd, unsigned int offset)
section->size = dmtbytes;
section->filepos = VMS_BLOCK_SIZE * (dmtvbn - 1);
- if (!bfd_set_section_flags (abfd, section, bfd_flags))
+ if (!bfd_set_section_flags (section, bfd_flags))
return FALSE;
}
@@ -1261,7 +1261,7 @@ _bfd_vms_slurp_egsd (bfd *abfd)
new_flags |= SEC_CODE;
new_flags &= ~SEC_DATA;
}
- if (!bfd_set_section_flags (abfd, section, new_flags))
+ if (!bfd_set_section_flags (section, new_flags))
return FALSE;
/* Give a non-overlapping vma to non absolute sections. */
@@ -2441,7 +2441,7 @@ vms_slurp_debug (bfd *abfd)
section = bfd_make_section (abfd, "$DST$");
if (!section)
return FALSE;
- if (!bfd_set_section_flags (abfd, section, flags))
+ if (!bfd_set_section_flags (section, flags))
return FALSE;
PRIV (dst_section) = section;
}
@@ -4623,7 +4623,7 @@ build_module_list (bfd *abfd)
section and build the list of modules. This is sufficient
since we can compute the start address and the end address
of every module from the section contents. */
- bfd_size_type size = bfd_get_section_size (dmt);
+ bfd_size_type size = bfd_section_size (dmt);
unsigned char *ptr, *end;
ptr = (unsigned char *) bfd_alloc (abfd, size);
@@ -9324,7 +9324,7 @@ vms_new_section_hook (bfd * abfd, asection *section)
vms_debug2 ((1, "vms_new_section_hook (%p, [%u]%s)\n",
abfd, section->index, section->name));
- if (! bfd_set_section_alignment (abfd, section, 0))
+ if (!bfd_set_section_alignment (section, 0))
return FALSE;
vms_debug2 ((7, "%u: %s\n", section->index, section->name));
@@ -9412,11 +9412,11 @@ vms_get_symbol_info (bfd * abfd ATTRIBUTE_UNUSED,
else if (bfd_is_ind_section (sec))
ret->type = 'I';
else if ((symbol->flags & BSF_FUNCTION)
- || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
+ || (bfd_section_flags (sec) & SEC_CODE))
ret->type = 'T';
- else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
+ else if (bfd_section_flags (sec) & SEC_DATA)
ret->type = 'D';
- else if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+ else if (bfd_section_flags (sec) & SEC_ALLOC)
ret->type = 'B';
else
ret->type = '?';
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 1a2f87c4b0..52691720ae 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -2080,14 +2080,14 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
for (o = abfd->sections; o != first_csect; o = o->next)
{
/* Debugging sections have no csects. */
- if (bfd_get_section_flags (abfd, o) & SEC_DEBUGGING)
+ if (bfd_section_flags (o) & SEC_DEBUGGING)
continue;
/* Reset the section size and the line number count, since the
data is now attached to the csects. Don't reset the size of
the .debug section, since we need to read it below in
bfd_xcoff_size_dynamic_sections. */
- if (strcmp (bfd_get_section_name (abfd, o), ".debug") != 0)
+ if (strcmp (bfd_section_name (o), ".debug") != 0)
o->size = 0;
o->lineno_count = 0;
@@ -3019,7 +3019,7 @@ xcoff_sweep (struct bfd_link_info *info)
|| o == xcoff_hash_table (info)->loader_section
|| o == xcoff_hash_table (info)->linkage_section
|| o == xcoff_hash_table (info)->descriptor_section
- || (bfd_get_section_flags (sub, o) & SEC_DEBUGGING)
+ || (bfd_section_flags (o) & SEC_DEBUGGING)
|| strcmp (o->name, ".debug") == 0)
o->flags |= SEC_MARK;
else
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9c791f6d65..9f6300f17d 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * addr2line.c, * bucomm.c, * coffgrok.c, * dlltool.c, * nm.c,
+ * objcopy.c, * objdump.c, * od-elf32_avr.c, * od-macho.c,
+ * od-xcoff.c, * prdbg.c, * rdcoff.c, * rddbg.c, * rescoff.c,
+ * resres.c, * size.c, * srconv.c, * strings.c, * windmc.c: Update
+ throughout for bfd section macro and function changes.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* nm.c: Update bfd_get_section to bfd_asymbol_section throughout.
diff --git a/binutils/addr2line.c b/binutils/addr2line.c
index 8a77c473ba..d9cc2881f8 100644
--- a/binutils/addr2line.c
+++ b/binutils/addr2line.c
@@ -182,14 +182,14 @@ find_address_in_section (bfd *abfd, asection *section,
if (found)
return;
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
return;
- vma = bfd_get_section_vma (abfd, section);
+ vma = bfd_section_vma (section);
if (pc < vma)
return;
- size = bfd_get_section_size (section);
+ size = bfd_section_size (section);
if (pc >= vma + size)
return;
@@ -208,10 +208,10 @@ find_offset_in_section (bfd *abfd, asection *section)
if (found)
return;
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
return;
- size = bfd_get_section_size (section);
+ size = bfd_section_size (section);
if (pc >= size)
return;
diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index e8ac3b6de8..2493fd561b 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -94,7 +94,7 @@ bfd_nonfatal_message (const char *filename,
if (!filename)
filename = bfd_get_archive_filename (abfd);
if (section)
- section_name = bfd_get_section_name (abfd, section);
+ section_name = bfd_section_name (section);
}
if (section_name)
fprintf (stderr, ":%s[%s]", filename, section_name);
diff --git a/binutils/coffgrok.c b/binutils/coffgrok.c
index 1556a0b8ad..177c66ed76 100644
--- a/binutils/coffgrok.c
+++ b/binutils/coffgrok.c
@@ -145,7 +145,7 @@ do_sections_p1 (struct coff_ofile *head)
if (strcmp (section->name, ".bss") == 0)
head->sections[i].data = 1;
head->sections[i].address = section->lma;
- head->sections[i].size = bfd_get_section_size (section);
+ head->sections[i].size = bfd_section_size (section);
head->sections[i].number = idx;
head->sections[i].nrelocs = section->reloc_count;
head->sections[i].relocs =
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index cd2ff24325..85304d0c37 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -1384,7 +1384,7 @@ scan_drectve_symbols (bfd *abfd)
if (s == NULL)
return;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
buf = xmalloc (size);
bfd_get_section_contents (abfd, s, buf, 0, size);
@@ -2482,11 +2482,9 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (si->id != i)
abort ();
si->sec = bfd_make_section_old_way (abfd, si->name);
- bfd_set_section_flags (abfd,
- si->sec,
- si->flags & applicable);
+ bfd_set_section_flags (si->sec, si->flags & applicable);
- bfd_set_section_alignment(abfd, si->sec, si->align);
+ bfd_set_section_alignment (si->sec, si->align);
si->sec->output_section = si->sec;
si->sym = bfd_make_empty_symbol(abfd);
si->sym->name = si->sec->name;
@@ -2822,7 +2820,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
arelent *imglue, *ba_rel, *ea_rel, *pea_rel;
/* Alignment must be set to 2**2 or you get extra stuff. */
- bfd_set_section_alignment(abfd, sec, 2);
+ bfd_set_section_alignment (sec, 2);
si->size = 4 * 5;
si->data = xmalloc (si->size);
@@ -2908,8 +2906,8 @@ make_one_lib_file (export_type *exp, int i, int delay)
{
sinfo *si = secdata + i;
- bfd_set_section_size (abfd, si->sec, si->size);
- bfd_set_section_vma (abfd, si->sec, vma);
+ bfd_set_section_size (si->sec, si->size);
+ bfd_set_section_vma (si->sec, vma);
}
}
/* Write them out. */
@@ -3691,7 +3689,7 @@ identify_search_section (bfd * abfd, asection * section, void * obj)
if (ms_style && ((section->flags & SEC_DATA) == 0))
return;
- if ((datasize = bfd_section_size (abfd, section)) == 0)
+ if ((datasize = bfd_section_size (section)) == 0)
return;
data = (bfd_byte *) xmalloc (datasize + 1);
diff --git a/binutils/nm.c b/binutils/nm.c
index 0bded07391..e177d444ef 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -791,8 +791,8 @@ sort_symbols_by_size (bfd *abfd, bfd_boolean is_dynamic, void *minisyms,
&& sec == bfd_asymbol_section (next))
sz = valueof (next) - valueof (sym);
else
- sz = (bfd_get_section_vma (abfd, sec)
- + bfd_section_size (abfd, sec)
+ sz = (bfd_section_vma (sec)
+ + bfd_section_size (sec)
- valueof (sym));
}
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index ce4a4afa55..6489fbe72f 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1255,7 +1255,7 @@ group_signature (asection *group)
static bfd_boolean
is_dwo_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
{
- const char *name = bfd_get_section_name (abfd, sec);
+ const char *name = bfd_section_name (sec);
int len = strlen (name);
return strncmp (name + len - 4, ".dwo", 4) == 0;
@@ -1310,17 +1310,17 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
struct section_list *p;
struct section_list *q;
- p = find_section_list (bfd_get_section_name (abfd, sec), FALSE,
+ p = find_section_list (bfd_section_name (sec), FALSE,
SECTION_CONTEXT_REMOVE);
- q = find_section_list (bfd_get_section_name (abfd, sec), FALSE,
+ q = find_section_list (bfd_section_name (sec), FALSE,
SECTION_CONTEXT_COPY);
if (p && q)
fatal (_("error: section %s matches both remove and copy options"),
- bfd_get_section_name (abfd, sec));
+ bfd_section_name (sec));
if (p && is_update_section (abfd, sec))
fatal (_("error: section %s matches both update and remove options"),
- bfd_get_section_name (abfd, sec));
+ bfd_section_name (sec));
if (p != NULL)
return TRUE;
@@ -1328,7 +1328,7 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
return TRUE;
}
- if ((bfd_get_section_flags (abfd, sec) & SEC_DEBUGGING) != 0)
+ if ((bfd_section_flags (sec) & SEC_DEBUGGING) != 0)
{
if (strip_symbols == STRIP_DEBUG
|| strip_symbols == STRIP_UNNEEDED
@@ -1339,7 +1339,7 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
/* By default we don't want to strip .reloc section.
This section has for pe-coff special meaning. See
pe-dll.c file in ld, and peXXigen.c in bfd for details. */
- if (strcmp (bfd_get_section_name (abfd, sec), ".reloc") != 0)
+ if (strcmp (bfd_section_name (sec), ".reloc") != 0)
return TRUE;
}
@@ -1364,7 +1364,7 @@ is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
if (is_strip_section_1 (abfd, sec))
return TRUE;
- if ((bfd_get_section_flags (abfd, sec) & SEC_GROUP) != 0)
+ if ((bfd_section_flags (sec) & SEC_GROUP) != 0)
{
asymbol *gsym;
const char *gname;
@@ -1414,7 +1414,7 @@ is_nondebug_keep_contents_section (bfd *ibfd, asection *isection)
directory", but that may be the .text section for objects produced by some
tools, which it is not sensible to keep. */
if (ibfd->xvec->flavour == bfd_target_coff_flavour)
- return (strcmp (bfd_get_section_name (ibfd, isection), ".buildid") == 0);
+ return (strcmp (bfd_section_name (isection), ".buildid") == 0);
return FALSE;
}
@@ -2728,7 +2728,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
}
}
- if (! bfd_set_section_size (obfd, padd->section, padd->size))
+ if (!bfd_set_section_size (padd->section, padd->size))
{
bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
return FALSE;
@@ -2737,7 +2737,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
pset = find_section_list (padd->name, FALSE,
SECTION_CONTEXT_SET_VMA | SECTION_CONTEXT_ALTER_VMA);
if (pset != NULL
- && ! bfd_set_section_vma (obfd, padd->section, pset->vma_val))
+ && !bfd_set_section_vma (padd->section, pset->vma_val))
{
bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
return FALSE;
@@ -2749,9 +2749,8 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
padd->section->lma = pset->lma_val;
- if (! bfd_set_section_alignment
- (obfd, padd->section,
- bfd_section_alignment (obfd, padd->section)))
+ if (!bfd_set_section_alignment
+ (padd->section, bfd_section_alignment (padd->section)))
{
bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
return FALSE;
@@ -2776,7 +2775,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
}
osec = pupdate->section->output_section;
- if (! bfd_set_section_size (obfd, osec, pupdate->size))
+ if (!bfd_set_section_size (osec, pupdate->size))
{
bfd_nonfatal_message (NULL, obfd, osec, NULL);
return FALSE;
@@ -2793,7 +2792,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_size_type size;
- size = bfd_get_section_size (osec);
+ size = bfd_section_size (osec);
if (size == 0)
{
bfd_nonfatal_message (NULL, ibfd, osec, _("warning: note section is empty"));
@@ -2820,7 +2819,8 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
else
{
if (osec->output_section == NULL
- || ! bfd_set_section_size (obfd, osec->output_section, merged_size))
+ || !bfd_set_section_size (osec->output_section,
+ merged_size))
{
bfd_nonfatal_message (NULL, obfd, osec, _("warning: failed to set merged notes size"));
free (merged_notes);
@@ -2848,14 +2848,14 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
continue;
}
- if ((bfd_get_section_flags (ibfd, osec) & SEC_HAS_CONTENTS) == 0)
+ if ((bfd_section_flags (osec) & SEC_HAS_CONTENTS) == 0)
{
bfd_nonfatal_message (NULL, ibfd, osec,
_("can't dump section - it has no contents"));
continue;
}
- bfd_size_type size = bfd_get_section_size (osec);
+ bfd_size_type size = bfd_section_size (osec);
if (size == 0)
{
bfd_nonfatal_message (NULL, ibfd, osec,
@@ -2948,7 +2948,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
+ highest_section->size,
/* FIXME: We ought to be using
COFF_PAGE_SIZE here or maybe
- bfd_get_section_alignment() (if it
+ bfd_section_alignment() (if it
was set) but since this is for PE
and we know the required alignment
it is easier just to hard code it. */
@@ -2957,7 +2957,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
/* Umm, not sure what to do in this case. */
debuglink_vma = 0x1000;
- bfd_set_section_vma (obfd, gnu_debuglink_section, debuglink_vma);
+ bfd_set_section_vma (gnu_debuglink_section, debuglink_vma);
}
}
}
@@ -2991,18 +2991,18 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
bfd_size_type size;
bfd_vma gap_start, gap_stop;
- flags = bfd_get_section_flags (obfd, osections[i]);
+ flags = bfd_section_flags (osections[i]);
if ((flags & SEC_HAS_CONTENTS) == 0
|| (flags & SEC_LOAD) == 0)
continue;
- size = bfd_section_size (obfd, osections[i]);
- gap_start = bfd_section_lma (obfd, osections[i]) + size;
- gap_stop = bfd_section_lma (obfd, osections[i + 1]);
+ size = bfd_section_size (osections[i]);
+ gap_start = bfd_section_lma (osections[i]) + size;
+ gap_stop = bfd_section_lma (osections[i + 1]);
if (gap_start < gap_stop)
{
- if (! bfd_set_section_size (obfd, osections[i],
- size + (gap_stop - gap_start)))
+ if (!bfd_set_section_size (osections[i],
+ size + (gap_stop - gap_start)))
{
bfd_nonfatal_message (NULL, obfd, osections[i],
_("Can't fill gap after section"));
@@ -3021,12 +3021,11 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
bfd_vma lma;
bfd_size_type size;
- lma = bfd_section_lma (obfd, osections[c - 1]);
- size = bfd_section_size (obfd, osections[c - 1]);
+ lma = bfd_section_lma (osections[c - 1]);
+ size = bfd_section_size (osections[c - 1]);
if (lma + size < pad_to)
{
- if (! bfd_set_section_size (obfd, osections[c - 1],
- pad_to - lma))
+ if (!bfd_set_section_size (osections[c - 1], pad_to - lma))
{
bfd_nonfatal_message (NULL, obfd, osections[c - 1],
_("can't add padding"));
@@ -3204,7 +3203,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
file_ptr off;
left = gaps[i];
- off = bfd_section_size (obfd, osections[i]) - left;
+ off = bfd_section_size (osections[i]) - left;
while (left > 0)
{
@@ -3779,13 +3778,13 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
return;
/* Get the, possibly new, name of the output section. */
- name = bfd_section_name (ibfd, isection);
- flags = bfd_get_section_flags (ibfd, isection);
+ name = bfd_section_name (isection);
+ flags = bfd_section_flags (isection);
name = find_section_rename (name, &flags);
/* Prefix sections. */
if ((prefix_alloc_sections_string)
- && (bfd_get_section_flags (ibfd, isection) & SEC_ALLOC))
+ && (bfd_section_flags (isection) & SEC_ALLOC))
prefix = prefix_alloc_sections_string;
else if (prefix_sections_string)
prefix = prefix_sections_string;
@@ -3802,7 +3801,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
make_nobits = FALSE;
- p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+ p = find_section_list (bfd_section_name (isection), FALSE,
SECTION_CONTEXT_SET_FLAGS);
if (p != NULL)
flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
@@ -3834,20 +3833,20 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
if (make_nobits)
elf_section_type (osection) = SHT_NOBITS;
- size = bfd_section_size (ibfd, isection);
+ size = bfd_section_size (isection);
size = bfd_convert_section_size (ibfd, isection, obfd, size);
if (copy_byte >= 0)
size = (size + interleave - 1) / interleave * copy_width;
else if (extract_symbol)
size = 0;
- if (! bfd_set_section_size (obfd, osection, size))
+ if (!bfd_set_section_size (osection, size))
{
err = _("failed to set size");
goto loser;
}
- vma = bfd_section_vma (ibfd, isection);
- p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+ vma = bfd_section_vma (isection);
+ p = find_section_list (bfd_section_name (isection), FALSE,
SECTION_CONTEXT_ALTER_VMA | SECTION_CONTEXT_SET_VMA);
if (p != NULL)
{
@@ -3859,14 +3858,14 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
else
vma += change_section_address;
- if (! bfd_set_section_vma (obfd, osection, vma))
+ if (!bfd_set_section_vma (osection, vma))
{
err = _("failed to set vma");
goto loser;
}
lma = isection->lma;
- p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+ p = find_section_list (bfd_section_name (isection), FALSE,
SECTION_CONTEXT_ALTER_LMA | SECTION_CONTEXT_SET_LMA);
if (p != NULL)
{
@@ -3880,18 +3879,16 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
osection->lma = lma;
- p = find_section_list (bfd_section_name (ibfd, isection), FALSE,
+ p = find_section_list (bfd_section_name (isection), FALSE,
SECTION_CONTEXT_SET_ALIGNMENT);
if (p != NULL)
alignment = p->alignment;
else
- alignment = bfd_section_alignment (ibfd, isection);
+ alignment = bfd_section_alignment (isection);
/* FIXME: This is probably not enough. If we change the LMA we
may have to recompute the header for the file as well. */
- if (!bfd_set_section_alignment (obfd,
- osection,
- alignment))
+ if (!bfd_set_section_alignment (osection, alignment))
{
err = _("failed to set alignment");
goto loser;
@@ -3965,12 +3962,12 @@ skip_section (bfd *ibfd, sec_ptr isection, bfd_boolean skip_copy)
if (skip_copy && is_merged_note_section (ibfd, isection))
return TRUE;
- flags = bfd_get_section_flags (ibfd, isection);
+ flags = bfd_section_flags (isection);
if ((flags & SEC_GROUP) != 0)
return TRUE;
osection = isection->output_section;
- size = bfd_get_section_size (isection);
+ size = bfd_section_size (isection);
if (size == 0 || osection == 0)
return TRUE;
@@ -3995,7 +3992,7 @@ handle_remove_relocations_option (const char *section_pattern)
static bfd_boolean
discard_relocations (bfd *ibfd ATTRIBUTE_UNUSED, asection *isection)
{
- return (find_section_list (bfd_section_name (ibfd, isection), FALSE,
+ return (find_section_list (bfd_section_name (isection), FALSE,
SECTION_CONTEXT_REMOVE_RELOCS) != NULL);
}
@@ -4140,10 +4137,10 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
ELF classes of input and output aren't the same. We can't use
the output section size since --interleave will shrink the output
section. Size will be updated if the section is converted. */
- size = bfd_get_section_size (isection);
+ size = bfd_section_size (isection);
- if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS
- && bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS)
+ if (bfd_section_flags (isection) & SEC_HAS_CONTENTS
+ && bfd_section_flags (osection) & SEC_HAS_CONTENTS)
{
bfd_byte *memhunk = NULL;
@@ -4180,7 +4177,7 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
else
/* User must pad the section up in order to do this. */
fatal (_("cannot reverse bytes: length of section %s must be evenly divisible by %d"),
- bfd_section_name (ibfd, isection), reverse_bytes);
+ bfd_section_name (isection), reverse_bytes);
}
if (copy_byte >= 0)
@@ -4223,7 +4220,7 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
}
free (memhunk);
}
- else if ((p = find_section_list (bfd_get_section_name (ibfd, isection),
+ else if ((p = find_section_list (bfd_section_name (isection),
FALSE, SECTION_CONTEXT_SET_FLAGS)) != NULL
&& (p->flags & SEC_HAS_CONTENTS) != 0)
{
@@ -4294,9 +4291,9 @@ compare_section_lma (const void *arg1, const void *arg2)
return -1;
/* Sort sections with the same LMA by size. */
- if (bfd_get_section_size (*sec1) > bfd_get_section_size (*sec2))
+ if (bfd_section_size (*sec1) > bfd_section_size (*sec2))
return 1;
- else if (bfd_get_section_size (*sec1) < bfd_get_section_size (*sec2))
+ else if (bfd_section_size (*sec1) < bfd_section_size (*sec2))
return -1;
return 0;
@@ -4378,10 +4375,10 @@ write_debugging_info (bfd *obfd, void *dhandle,
stabstrsec = bfd_make_section_with_flags (obfd, ".stabstr", flags);
if (stabsec == NULL
|| stabstrsec == NULL
- || ! bfd_set_section_size (obfd, stabsec, symsize)
- || ! bfd_set_section_size (obfd, stabstrsec, stringsize)
- || ! bfd_set_section_alignment (obfd, stabsec, 2)
- || ! bfd_set_section_alignment (obfd, stabstrsec, 0))
+ || !bfd_set_section_size (stabsec, symsize)
+ || !bfd_set_section_size (stabstrsec, stringsize)
+ || !bfd_set_section_alignment (stabsec, 2)
+ || !bfd_set_section_alignment (stabstrsec, 0))
{
bfd_nonfatal_message (NULL, obfd, NULL,
_("can't create debugging section"));
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 4a7c8f9a74..96727a0f51 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -545,13 +545,13 @@ dump_section_header (bfd *abfd, asection *section, void *data)
return;
printf ("%3d %-*s %08lx ", section->index, longest_section_name,
- sanitize_string (bfd_get_section_name (abfd, section)),
- (unsigned long) bfd_section_size (abfd, section) / opb);
- bfd_printf_vma (abfd, bfd_get_section_vma (abfd, section));
+ sanitize_string (bfd_section_name (section)),
+ (unsigned long) bfd_section_size (section) / opb);
+ bfd_printf_vma (abfd, bfd_section_vma (section));
printf (" ");
bfd_printf_vma (abfd, section->lma);
printf (" %08lx 2**%u", (unsigned long) section->filepos,
- bfd_get_section_alignment (abfd, section));
+ bfd_section_alignment (section));
if (! wide_output)
printf ("\n ");
printf (" ");
@@ -631,7 +631,8 @@ dump_section_header (bfd *abfd, asection *section, void *data)
DATA which contains the string length of the longest section name. */
static void
-find_longest_section_name (bfd *abfd, asection *section, void *data)
+find_longest_section_name (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section, void *data)
{
int *longest_so_far = (int *) data;
const char *name;
@@ -645,7 +646,7 @@ find_longest_section_name (bfd *abfd, asection *section, void *data)
if (! process_section_p (section))
return;
- name = bfd_get_section_name (abfd, section);
+ name = bfd_section_name (section);
len = (int) strlen (name);
if (len > *longest_so_far)
*longest_so_far = len;
@@ -1034,8 +1035,8 @@ sym_ok (bfd_boolean want_section,
debug info file, whilst the section we want is in a normal file.
So the section pointers will be different, but the section names
will be the same. */
- if (strcmp (bfd_section_name (abfd, sorted_syms[place]->section),
- bfd_section_name (abfd, sec)) != 0)
+ if (strcmp (bfd_section_name (sorted_syms[place]->section),
+ bfd_section_name (sec)) != 0)
return FALSE;
}
@@ -1141,9 +1142,9 @@ find_symbol_for_address (bfd_vma vma,
Also give the target a chance to reject symbols. */
want_section = (aux->require_sec
|| ((abfd->flags & HAS_RELOC) != 0
- && vma >= bfd_get_section_vma (abfd, sec)
- && vma < (bfd_get_section_vma (abfd, sec)
- + bfd_section_size (abfd, sec) / opb)));
+ && vma >= bfd_section_vma (sec)
+ && vma < (bfd_section_vma (sec)
+ + bfd_section_size (sec) / opb)));
if (! sym_ok (want_section, abfd, thisplace, sec, inf))
{
@@ -1267,8 +1268,8 @@ objdump_print_addr_with_sym (bfd *abfd, asection *sec, asymbol *sym,
bfd_vma secaddr;
(*inf->fprintf_func) (inf->stream, " <%s",
- sanitize_string (bfd_get_section_name (abfd, sec)));
- secaddr = bfd_get_section_vma (abfd, sec);
+ sanitize_string (bfd_section_name (sec)));
+ secaddr = bfd_section_vma (sec);
if (vma < secaddr)
{
(*inf->fprintf_func) (inf->stream, "-0x");
@@ -2235,7 +2236,7 @@ disassemble_bytes (struct disassemble_info * inf,
asection *sym_sec;
sym_sec = bfd_asymbol_section (*q->sym_ptr_ptr);
- sym_name = bfd_get_section_name (aux->abfd, sym_sec);
+ sym_name = bfd_section_name (sym_sec);
if (sym_name == NULL || *sym_name == '\0')
sym_name = "*unknown*";
printf ("%s", sanitize_string (sym_name));
@@ -2308,7 +2309,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
if (! process_section_p (section))
return;
- datasize = bfd_get_section_size (section);
+ datasize = bfd_section_size (section);
if (datasize == 0)
return;
@@ -2538,7 +2539,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
else
{
#define is_valid_next_sym(SYM) \
- (strcmp (bfd_section_name (abfd, (SYM)->section), bfd_section_name (abfd, section)) == 0 \
+ (strcmp (bfd_section_name ((SYM)->section), bfd_section_name (section)) == 0 \
&& (bfd_asymbol_value (SYM) > bfd_asymbol_value (sym)) \
&& pinfo->symbol_is_valid (SYM, pinfo))
@@ -2750,9 +2751,9 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
section->filename = bfd_get_filename (abfd);
section->reloc_info = NULL;
section->num_relocs = 0;
- section->address = bfd_get_section_vma (abfd, sec);
+ section->address = bfd_section_vma (sec);
section->user_data = sec;
- section->size = bfd_get_section_size (sec);
+ section->size = bfd_section_size (sec);
/* PR 24360: On 32-bit hosts sizeof (size_t) < sizeof (bfd_size_type). */
alloced = amt = section->size + 1;
if (alloced != amt || alloced == 0)
@@ -2925,7 +2926,7 @@ static void
dump_dwarf_section (bfd *abfd, asection *section,
void *arg ATTRIBUTE_UNUSED)
{
- const char *name = bfd_get_section_name (abfd, section);
+ const char *name = bfd_section_name (section);
const char *match;
int i;
@@ -3050,7 +3051,7 @@ read_section_stabs (bfd *abfd, const char *sect_name, bfd_size_type *size_ptr,
return NULL;
}
- *size_ptr = bfd_section_size (abfd, stabsect);
+ *size_ptr = bfd_section_size (stabsect);
if (entsize_ptr)
*entsize_ptr = stabsect->entsize;
@@ -3459,7 +3460,7 @@ dump_section (bfd *abfd, asection *section, void *dummy ATTRIBUTE_UNUSED)
if (! process_section_p (section))
return;
- if ((datasize = bfd_section_size (abfd, section)) == 0)
+ if ((datasize = bfd_section_size (section)) == 0)
return;
/* Compute the address range to display. */
diff --git a/binutils/od-elf32_avr.c b/binutils/od-elf32_avr.c
index aaa97bb581..4a607d20ee 100644
--- a/binutils/od-elf32_avr.c
+++ b/binutils/od-elf32_avr.c
@@ -85,7 +85,7 @@ elf32_avr_get_note_section_contents (bfd *abfd, bfd_size_type *size)
if ((section = bfd_get_section_by_name (abfd, ".note.gnu.avr.deviceinfo")) == NULL)
return NULL;
- *size = bfd_get_section_size (section);
+ *size = bfd_section_size (section);
char *contents = (char *) xmalloc (*size);
bfd_get_section_contents (abfd, section, contents, 0, *size);
@@ -162,17 +162,17 @@ elf32_avr_get_memory_usage (bfd *abfd,
asection *section;
if ((section = bfd_get_section_by_name (abfd, ".data")) != NULL)
- avr_datasize = bfd_section_size (abfd, section);
+ avr_datasize = bfd_section_size (section);
if ((section = bfd_get_section_by_name (abfd, ".text")) != NULL)
- avr_textsize = bfd_section_size (abfd, section);
+ avr_textsize = bfd_section_size (section);
if ((section = bfd_get_section_by_name (abfd, ".bss")) != NULL)
- avr_bsssize = bfd_section_size (abfd, section);
+ avr_bsssize = bfd_section_size (section);
if ((section = bfd_get_section_by_name (abfd, ".bootloader")) != NULL)
- bootloadersize = bfd_section_size (abfd, section);
+ bootloadersize = bfd_section_size (section);
if ((section = bfd_get_section_by_name (abfd, ".noinit")) != NULL)
- noinitsize = bfd_section_size (abfd, section);
+ noinitsize = bfd_section_size (section);
if ((section = bfd_get_section_by_name (abfd, ".eeprom")) != NULL)
- eepromsize = bfd_section_size (abfd, section);
+ eepromsize = bfd_section_size (section);
*text_usage = avr_textsize + avr_datasize + bootloadersize;
*data_usage = avr_datasize + avr_bsssize + noinitsize;
@@ -255,12 +255,12 @@ elf32_avr_dump_avr_prop (bfd *abfd)
for (i = 0; i < r_list->record_count; ++i)
{
printf (" %d %s @ %s + %#08lx (%#08lx)\n",
- i,
- avr_elf32_property_record_name (&r_list->records [i]),
- r_list->records [i].section->name,
- r_list->records [i].offset,
- (bfd_get_section_vma (abfd, r_list->records [i].section)
- + r_list->records [i].offset));
+ i,
+ avr_elf32_property_record_name (&r_list->records [i]),
+ r_list->records [i].section->name,
+ r_list->records [i].offset,
+ (bfd_section_vma (r_list->records [i].section)
+ + r_list->records [i].offset));
switch (r_list->records [i].type)
{
case RECORD_ORG:
diff --git a/binutils/od-macho.c b/binutils/od-macho.c
index 6dc8c4d385..ada86b5236 100644
--- a/binutils/od-macho.c
+++ b/binutils/od-macho.c
@@ -2259,7 +2259,7 @@ dump_section_content (bfd *abfd,
asection *bfdsec = sec->bfdsection;
unsigned char *content;
- size = bfd_get_section_size (bfdsec);
+ size = bfd_section_size (bfdsec);
content = (unsigned char *) xmalloc (size);
bfd_get_section_contents (abfd, bfdsec, content, 0, size);
diff --git a/binutils/od-xcoff.c b/binutils/od-xcoff.c
index 1f79985002..e5566bc9a7 100644
--- a/binutils/od-xcoff.c
+++ b/binutils/od-xcoff.c
@@ -763,7 +763,7 @@ dump_xcoff32_symbols (bfd *abfd, struct xcoff_dump *data)
{
bfd_size_type size;
- size = bfd_get_section_size (debugsec);
+ size = bfd_section_size (debugsec);
debug = (char *) xmalloc (size);
bfd_get_section_contents (abfd, debugsec, debug, 0, size);
}
@@ -1051,7 +1051,7 @@ dump_xcoff32_loader (bfd *abfd)
printf (_("no .loader section in file\n"));
return;
}
- size = bfd_get_section_size (loader);
+ size = bfd_section_size (loader);
if (size < sizeof (*lhdr))
{
printf (_("section .loader is too short\n"));
@@ -1198,7 +1198,7 @@ dump_xcoff32_except (bfd *abfd, struct xcoff_dump *data)
printf (_("no .except section in file\n"));
return;
}
- size = bfd_get_section_size (sec);
+ size = bfd_section_size (sec);
excp_data = (bfd_byte *) xmalloc (size);
bfd_get_section_contents (abfd, sec, excp_data, 0, size);
exceptab = (struct external_exceptab *)excp_data;
@@ -1241,7 +1241,7 @@ dump_xcoff32_typchk (bfd *abfd)
printf (_("no .typchk section in file\n"));
return;
}
- size = bfd_get_section_size (sec);
+ size = bfd_section_size (sec);
data = (bfd_byte *) xmalloc (size);
bfd_get_section_contents (abfd, sec, data, 0, size);
@@ -1449,9 +1449,9 @@ dump_xcoff32_traceback (bfd *abfd, struct xcoff_dump *data)
text_sec = bfd_get_section_by_name (abfd, ".text");
if (text_sec == NULL)
return;
- text_vma = bfd_get_section_vma (abfd, text_sec);
+ text_vma = bfd_section_vma (text_sec);
- text_size = bfd_get_section_size (text_sec);
+ text_size = bfd_section_size (text_sec);
text = (char *) xmalloc (text_size);
bfd_get_section_contents (abfd, text_sec, text, 0, text_size);
diff --git a/binutils/prdbg.c b/binutils/prdbg.c
index d44f5c4fcc..40cf54b8fe 100644
--- a/binutils/prdbg.c
+++ b/binutils/prdbg.c
@@ -1930,14 +1930,14 @@ find_address_in_section (bfd *abfd, asection *section, void *data)
if (found)
return;
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
return;
- vma = bfd_get_section_vma (abfd, section);
+ vma = bfd_section_vma (section);
if (pc < vma)
return;
- size = bfd_get_section_size (section);
+ size = bfd_section_size (section);
if (pc >= vma + size)
return;
diff --git a/binutils/rdcoff.c b/binutils/rdcoff.c
index cbb5db1b94..006f13b3aa 100644
--- a/binutils/rdcoff.c
+++ b/binutils/rdcoff.c
@@ -816,7 +816,7 @@ parse_coff (bfd *abfd, asymbol **syms, long symcount, void *dhandle)
else
base = auxent.x_sym.x_misc.x_lnsz.x_lnno - 1;
- addr = bfd_get_section_vma (abfd, bfd_asymbol_section (sym));
+ addr = bfd_section_vma (bfd_asymbol_section (sym));
++linenos;
diff --git a/binutils/rddbg.c b/binutils/rddbg.c
index 92052783ba..eb8ffcbc02 100644
--- a/binutils/rddbg.c
+++ b/binutils/rddbg.c
@@ -121,7 +121,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
bfd_byte *stab;
bfd_size_type stroff, next_stroff;
- stabsize = bfd_section_size (abfd, sec);
+ stabsize = bfd_section_size (sec);
stabs = (bfd_byte *) xmalloc (stabsize);
if (! bfd_get_section_contents (abfd, sec, stabs, 0, stabsize))
{
@@ -133,7 +133,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
return FALSE;
}
- strsize = bfd_section_size (abfd, strsec);
+ strsize = bfd_section_size (strsec);
strings = (bfd_byte *) xmalloc (strsize + 1);
if (! bfd_get_section_contents (abfd, strsec, strings, 0, strsize))
{
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 815f0a1733..9a0fcda2ac 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -141,7 +141,7 @@ read_coff_rsrc (const char *filename, const char *target)
}
set_windres_bfd (&wrbfd, abfd, sec, WR_KIND_BFD);
- size = bfd_section_size (abfd, sec);
+ size = bfd_section_size (sec);
/* PR 17512: file: 1b25ba5d
The call to get_file_size here may be expensive
but there is no other way to determine if the section size
@@ -155,8 +155,8 @@ read_coff_rsrc (const char *filename, const char *target)
flaginfo.filename = filename;
flaginfo.data = data;
flaginfo.data_end = data + size;
- flaginfo.secaddr = (bfd_get_section_vma (abfd, sec)
- - pe_data (abfd)->pe_opthdr.ImageBase);
+ flaginfo.secaddr = (bfd_section_vma (sec)
+ - pe_data (abfd)->pe_opthdr.ImageBase);
/* Now just read in the top level resource directory. Note that we
don't free data, since we create resource entries that point into
@@ -547,7 +547,7 @@ write_coff_file (const char *filename, const char *target,
+ cwi.dataentsize
+ cwi.resources.length);
- if (! bfd_set_section_size (abfd, sec, length))
+ if (!bfd_set_section_size (sec, length))
bfd_fatal ("bfd_set_section_size");
bfd_set_reloc (abfd, sec, cwi.relocs, cwi.reloc_count);
diff --git a/binutils/resres.c b/binutils/resres.c
index e9444bda0e..161ea354fe 100644
--- a/binutils/resres.c
+++ b/binutils/resres.c
@@ -142,7 +142,7 @@ write_res_file (const char *fn,const rc_res_directory *resdir)
sec_length = write_res_directory ((windres_bfd *) NULL, 0x20UL, resdir,
(const rc_res_id *) NULL,
(const rc_res_id *) NULL, &language, 1);
- if (! bfd_set_section_size (abfd, sec, (sec_length + 3) & ~3))
+ if (!bfd_set_section_size (sec, (sec_length + 3) & ~3))
bfd_fatal ("bfd_set_section_size");
if ((sec_length & 3) != 0)
set_windres_bfd_content (&wrbfd, sign, sec_length, 4-(sec_length & 3));
diff --git a/binutils/size.c b/binutils/size.c
index 479a464887..b147221e91 100644
--- a/binutils/size.c
+++ b/binutils/size.c
@@ -478,11 +478,11 @@ berkeley_or_gnu_sum (bfd *abfd ATTRIBUTE_UNUSED, sec_ptr sec,
flagword flags;
bfd_size_type size;
- flags = bfd_get_section_flags (abfd, sec);
+ flags = bfd_section_flags (sec);
if ((flags & SEC_ALLOC) == 0)
return;
- size = bfd_get_section_size (sec);
+ size = bfd_section_size (sec);
if ((flags & SEC_CODE) != 0
|| (selected_output_format == FORMAT_BERKLEY
&& (flags & SEC_READONLY) != 0))
@@ -557,21 +557,21 @@ static void
sysv_internal_sizer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
void *ignore ATTRIBUTE_UNUSED)
{
- bfd_size_type size = bfd_section_size (file, sec);
+ bfd_size_type size = bfd_section_size (sec);
if ( ! bfd_is_abs_section (sec)
&& ! bfd_is_com_section (sec)
&& ! bfd_is_und_section (sec))
{
- int namelen = strlen (bfd_section_name (file, sec));
+ int namelen = strlen (bfd_section_name (sec));
if (namelen > svi_namelen)
svi_namelen = namelen;
svi_total += size;
- if (bfd_section_vma (file, sec) > svi_maxvma)
- svi_maxvma = bfd_section_vma (file, sec);
+ if (bfd_section_vma (sec) > svi_maxvma)
+ svi_maxvma = bfd_section_vma (sec);
}
}
@@ -589,7 +589,7 @@ static void
sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
void *ignore ATTRIBUTE_UNUSED)
{
- bfd_size_type size = bfd_section_size (file, sec);
+ bfd_size_type size = bfd_section_size (sec);
if ( ! bfd_is_abs_section (sec)
&& ! bfd_is_com_section (sec)
@@ -597,9 +597,9 @@ sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
{
svi_total += size;
- sysv_one_line (bfd_section_name (file, sec),
+ sysv_one_line (bfd_section_name (sec),
size,
- bfd_section_vma (file, sec));
+ bfd_section_vma (sec));
}
}
diff --git a/binutils/srconv.c b/binutils/srconv.c
index 39c1a4f4e7..a421f642e0 100644
--- a/binutils/srconv.c
+++ b/binutils/srconv.c
@@ -419,14 +419,14 @@ wr_ob (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_section *section)
unsigned char stuff[200];
i = 0;
- while (i < bfd_get_section_size (section->bfd_section))
+ while (i < bfd_section_size (section->bfd_section))
{
struct IT_ob ob;
int todo = 200; /* Copy in 200 byte lumps. */
ob.spare = 0;
- if (i + todo > bfd_get_section_size (section->bfd_section))
- todo = bfd_get_section_size (section->bfd_section) - i;
+ if (i + todo > bfd_section_size (section->bfd_section))
+ todo = bfd_section_size (section->bfd_section) - i;
if (first)
{
diff --git a/binutils/strings.c b/binutils/strings.c
index ea48f92feb..8150c1181d 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -332,7 +332,7 @@ strings_a_section (bfd *abfd, asection *sect, const char *filename,
if ((sect->flags & DATA_FLAGS) != DATA_FLAGS)
return;
- sectsize = bfd_get_section_size (sect);
+ sectsize = bfd_section_size (sect);
if (sectsize == 0)
return;
diff --git a/binutils/windmc.c b/binutils/windmc.c
index eaf4d6e4e1..10bd6144c6 100644
--- a/binutils/windmc.c
+++ b/binutils/windmc.c
@@ -698,7 +698,7 @@ windmc_write_bin (const char *filename, mc_node_lang **nl, int elems)
dta_off += mi[i].res_len;
}
sec_length = (dta_off + 3) & ~3;
- if (! bfd_set_section_size (mc_bfd.abfd, mc_bfd.sec, sec_length))
+ if (!bfd_set_section_size (mc_bfd.sec, sec_length))
bfd_fatal ("bfd_set_section_size");
/* Make sure we write the complete block. */
set_windmc_bfd_content ("\0", sec_length - 1, 1);
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3d61530a9b..819585d9e3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,31 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * as.c, * as.h, * dw2gencfi.c, * dwarf2dbg.c, * ecoff.c,
+ * read.c, * stabs.c, * subsegs.c, * subsegs.h, * write.c,
+ * config/obj-coff-seh.c, * config/obj-coff.c, * config/obj-ecoff.c,
+ * config/obj-elf.c, * config/obj-macho.c, * config/obj-som.c,
+ * config/tc-aarch64.c, * config/tc-alpha.c, * config/tc-arc.c,
+ * config/tc-arm.c, * config/tc-avr.c, * config/tc-bfin.c,
+ * config/tc-bpf.c, * config/tc-d10v.c, * config/tc-d30v.c,
+ * config/tc-epiphany.c, * config/tc-fr30.c, * config/tc-frv.c,
+ * config/tc-h8300.c, * config/tc-hppa.c, * config/tc-i386.c,
+ * config/tc-ia64.c, * config/tc-ip2k.c, * config/tc-iq2000.c,
+ * config/tc-lm32.c, * config/tc-m32c.c, * config/tc-m32r.c,
+ * config/tc-m68hc11.c, * config/tc-mep.c, * config/tc-microblaze.c,
+ * config/tc-mips.c, * config/tc-mmix.c, * config/tc-mn10200.c,
+ * config/tc-mn10300.c, * config/tc-msp430.c, * config/tc-mt.c,
+ * config/tc-nds32.c, * config/tc-or1k.c, * config/tc-ppc.c,
+ * config/tc-pru.c, * config/tc-rl78.c, * config/tc-rx.c,
+ * config/tc-s12z.c, * config/tc-s390.c, * config/tc-score.c,
+ * config/tc-score7.c, * config/tc-sh.c, * config/tc-sparc.c,
+ * config/tc-spu.c, * config/tc-tic4x.c, * config/tc-tic54x.c,
+ * config/tc-tic6x.c, * config/tc-tilegx.c, * config/tc-tilepro.c,
+ * config/tc-v850.c, * config/tc-visium.c, * config/tc-wasm32.c,
+ * config/tc-xc16x.c, * config/tc-xgate.c, * config/tc-xstormy16.c,
+ * config/tc-xtensa.c, * config/tc-z8k.c: Update throughout for
+ bfd section macro and function changes.
+ * write.c (compress_debug): Use bfd_rename_section.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* symbols.c (S_IS_LOCAL): Update bfd_get_section to
diff --git a/gas/as.c b/gas/as.c
index c7bdf0cd88..d53db113e2 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1147,13 +1147,13 @@ perform_an_assembly_pass (int argc, char ** argv)
/* @@ FIXME -- we're setting the RELOC flag so that sections are assumed
to have relocs, otherwise we don't find out in time. */
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, text_section,
+ bfd_set_section_flags (text_section,
applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
| SEC_CODE | SEC_READONLY));
- bfd_set_section_flags (stdoutput, data_section,
+ bfd_set_section_flags (data_section,
applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
| SEC_DATA));
- bfd_set_section_flags (stdoutput, bss_section, applicable & SEC_ALLOC);
+ bfd_set_section_flags (bss_section, applicable & SEC_ALLOC);
seg_info (bss_section)->bss = 1;
#endif
subseg_new (BFD_ABS_SECTION_NAME, 0);
@@ -1360,7 +1360,7 @@ main (int argc, char ** argv)
segT gnustack;
gnustack = subseg_new (".note.GNU-stack", 0);
- bfd_set_section_flags (stdoutput, gnustack,
+ bfd_set_section_flags (gnustack,
SEC_READONLY | (flag_execstack ? SEC_CODE : 0));
}
diff --git a/gas/as.h b/gas/as.h
index 96b551eded..5b604a4534 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -226,7 +226,7 @@ COMMON subsegT now_subseg;
/* Segment our instructions emit to. */
COMMON segT now_seg;
-#define segment_name(SEG) bfd_get_section_name (stdoutput, SEG)
+#define segment_name(SEG) bfd_section_name (SEG)
extern segT reg_section, expr_section;
/* Shouldn't these be eliminated someday? */
diff --git a/gas/config/obj-coff-seh.c b/gas/config/obj-coff-seh.c
index 183be7925f..b24e435677 100644
--- a/gas/config/obj-coff-seh.c
+++ b/gas/config/obj-coff-seh.c
@@ -48,7 +48,7 @@ get_pxdata_name (segT seg, const char *base_name)
const char *name,*dollar, *dot;
char *sname;
- name = bfd_get_section_name (stdoutput, seg);
+ name = bfd_section_name (seg);
dollar = strchr (name, '$');
dot = strchr (name + 1, '.');
@@ -95,16 +95,16 @@ make_pxdata_seg (segT cseg, char *name)
r = subseg_new (name, 0);
/* Check if code segment is marked as linked once. */
- flags = bfd_get_section_flags (stdoutput, cseg)
- & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
- | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
- | SEC_LINK_DUPLICATES_SAME_CONTENTS);
+ flags = (bfd_section_flags (cseg)
+ & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
+ | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
+ | SEC_LINK_DUPLICATES_SAME_CONTENTS));
/* Add standard section flags. */
flags |= SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA;
/* Apply possibly linked once flags to new generated segment, too. */
- if (!bfd_set_section_flags (stdoutput, r, flags))
+ if (!bfd_set_section_flags (r, flags))
as_bad (_("bfd_set_section_flags: %s"),
bfd_errmsg (bfd_get_error ()));
@@ -161,8 +161,8 @@ seh_validate_seg (const char *directive)
const char *cseg_name, *nseg_name;
if (seh_ctx_cur->code_seg == now_seg)
return 1;
- cseg_name = bfd_get_section_name (stdoutput, seh_ctx_cur->code_seg);
- nseg_name = bfd_get_section_name (stdoutput, now_seg);
+ cseg_name = bfd_section_name (seh_ctx_cur->code_seg);
+ nseg_name = bfd_section_name (now_seg);
as_bad (_("%s used in segment '%s' instead of expected '%s'"),
directive, nseg_name, cseg_name);
ignore_rest_of_line ();
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index c4e1d71ce4..d1dd0f0131 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -205,13 +205,12 @@ obj_coff_common_parse (int ignore ATTRIBUTE_UNUSED, symbolS *symbolP, addressT s
char numbuff[20];
sec = subseg_new (".drectve", 0);
- oldflags = bfd_get_section_flags (stdoutput, sec);
+ oldflags = bfd_section_flags (sec);
if (oldflags == SEC_NO_FLAGS)
{
- if (!bfd_set_section_flags (stdoutput, sec,
- TC_COFF_SECTION_DEFAULT_ATTRIBUTES))
+ if (!bfd_set_section_flags (sec, TC_COFF_SECTION_DEFAULT_ATTRIBUTES))
as_warn (_("error setting flags for \"%s\": %s"),
- bfd_section_name (stdoutput, sec),
+ bfd_section_name (sec),
bfd_errmsg (bfd_get_error ()));
}
@@ -554,7 +553,7 @@ obj_coff_ident (int ignore ATTRIBUTE_UNUSED)
that shouldn't be loaded into memory, which requires linker
changes... For now, until proven otherwise, use .rdata. */
sec = subseg_new (".rdata$zzz", 0);
- bfd_set_section_flags (stdoutput, sec,
+ bfd_set_section_flags (sec,
((SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA)
& bfd_applicable_section_flags (stdoutput)));
}
@@ -774,8 +773,7 @@ obj_coff_endef (int ignore ATTRIBUTE_UNUSED)
if (S_GET_STORAGE_CLASS (def_symbol_in_progress) == C_EFCN
|| S_GET_STORAGE_CLASS (def_symbol_in_progress) == C_LABEL
- || (streq (bfd_get_section_name (stdoutput,
- S_GET_SEGMENT (def_symbol_in_progress)),
+ || (streq (bfd_section_name (S_GET_SEGMENT (def_symbol_in_progress)),
"*DEBUG*")
&& !SF_GET_TAG (def_symbol_in_progress))
|| S_GET_SEGMENT (def_symbol_in_progress) == absolute_section
@@ -1480,7 +1478,7 @@ coff_adjust_section_syms (bfd *abfd ATTRIBUTE_UNUSED,
fixp = fixp->fx_next;
}
}
- if (bfd_get_section_size (sec) == 0
+ if (bfd_section_size (sec) == 0
&& nrelocs == 0
&& nlnno == 0
&& sec != text_section
@@ -1657,7 +1655,7 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
if (alignment >= 0)
sec->alignment_power = alignment;
- oldflags = bfd_get_section_flags (stdoutput, sec);
+ oldflags = bfd_section_flags (sec);
if (oldflags == SEC_NO_FLAGS)
{
/* Set section flags for a new section just created by subseg_new.
@@ -1673,9 +1671,9 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
#endif
- if (! bfd_set_section_flags (stdoutput, sec, flags))
+ if (!bfd_set_section_flags (sec, flags))
as_warn (_("error setting flags for \"%s\": %s"),
- bfd_section_name (stdoutput, sec),
+ bfd_section_name (sec),
bfd_errmsg (bfd_get_error ()));
}
else if (flags != SEC_NO_FLAGS)
@@ -1713,7 +1711,7 @@ coff_frob_section (segT sec)
supposedly because standard COFF has no other way of encoding alignment
for sections. If your COFF flavor has a different way of encoding
section alignment, then skip this step, as TICOFF does. */
- bfd_vma size = bfd_get_section_size (sec);
+ bfd_vma size = bfd_section_size (sec);
#if !defined(TICOFF)
bfd_vma align_power = (bfd_vma) sec->alignment_power + OCTETS_PER_BYTE_POWER;
bfd_vma mask = ((bfd_vma) 1 << align_power) - 1;
@@ -1724,7 +1722,7 @@ coff_frob_section (segT sec)
fragS *last;
new_size = (size + mask) & ~mask;
- bfd_set_section_size (stdoutput, sec, new_size);
+ bfd_set_section_size (sec, new_size);
/* If the size had to be rounded up, add some padding in
the last non-empty frag. */
@@ -1751,7 +1749,7 @@ coff_frob_section (segT sec)
unsigned char sclass = C_STAT;
#ifdef OBJ_XCOFF
- if (bfd_get_section_flags (stdoutput, sec) & SEC_DEBUGGING)
+ if (bfd_section_flags (sec) & SEC_DEBUGGING)
sclass = C_DWARF;
#endif
S_SET_STORAGE_CLASS (secsym, sclass);
@@ -1772,9 +1770,9 @@ coff_frob_section (segT sec)
strsec = sec;
sec = subseg_get (STAB_SECTION_NAME, 0);
/* size is already rounded up, since other section will be listed first */
- size = bfd_get_section_size (strsec);
+ size = bfd_section_size (strsec);
- n_entries = bfd_get_section_size (sec) / 12 - 1;
+ n_entries = bfd_section_size (sec) / 12 - 1;
/* Find first non-empty frag. It should be large enough. */
fragp = seg_info (sec)->frchainP->frch_root;
diff --git a/gas/config/obj-ecoff.c b/gas/config/obj-ecoff.c
index b62176fe73..a5616f388e 100644
--- a/gas/config/obj-ecoff.c
+++ b/gas/config/obj-ecoff.c
@@ -90,15 +90,15 @@ ecoff_frob_file_before_fix (void)
}
if (i == n_names)
{
- bfd_set_section_vma (stdoutput, sec, addr);
- addr += bfd_section_size (stdoutput, sec);
+ bfd_set_section_vma (sec, addr);
+ addr += bfd_section_size (sec);
}
}
for (i = 0; i < n_names; i++)
if (secs[i])
{
- bfd_set_section_vma (stdoutput, secs[i], addr);
- addr += bfd_section_size (stdoutput, secs[i]);
+ bfd_set_section_vma (secs[i], addr);
+ addr += bfd_section_size (secs[i]);
}
for (i = n_names - 1; i >= 0; i--)
if (secs[i])
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index bdf3da8119..56293584a0 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -737,7 +737,7 @@ obj_elf_change_section (const char *name,
if (type == SHT_NOBITS)
seg_info (sec)->bss = 1;
- bfd_set_section_flags (stdoutput, sec, flags);
+ bfd_set_section_flags (sec, flags);
if (flags & SEC_MERGE)
sec->entsize = entsize;
elf_group_name (sec) = group_name;
@@ -1859,9 +1859,7 @@ obj_elf_version (int ignore ATTRIBUTE_UNUSED)
/* Create the .note section. */
note_secp = subseg_new (".note", 0);
- bfd_set_section_flags (stdoutput,
- note_secp,
- SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_flags (note_secp, SEC_HAS_CONTENTS | SEC_READONLY);
record_alignment (note_secp, 2);
/* Process the version string. */
@@ -2140,9 +2138,8 @@ obj_elf_ident (int ignore ATTRIBUTE_UNUSED)
{
char *p;
comment_section = subseg_new (".comment", 0);
- bfd_set_section_flags (stdoutput, comment_section,
- SEC_READONLY | SEC_HAS_CONTENTS
- | SEC_MERGE | SEC_STRINGS);
+ bfd_set_section_flags (comment_section, (SEC_READONLY | SEC_HAS_CONTENTS
+ | SEC_MERGE | SEC_STRINGS));
comment_section->entsize = 1;
#ifdef md_elf_section_change_hook
md_elf_section_change_hook ();
@@ -2170,7 +2167,7 @@ obj_elf_init_stab_section (segT seg)
/* Force the section to align to a longword boundary. Without this,
UnixWare ar crashes. */
- bfd_set_section_alignment (stdoutput, seg, 2);
+ bfd_set_section_alignment (seg, 2);
/* Make space for this first symbol. */
p = frag_more (12);
@@ -2204,10 +2201,10 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
name = concat (sec->name, "str", NULL);
strsec = bfd_get_section_by_name (abfd, name);
if (strsec)
- strsz = bfd_section_size (abfd, strsec);
+ strsz = bfd_section_size (strsec);
else
strsz = 0;
- nsyms = bfd_section_size (abfd, sec) / 12 - 1;
+ nsyms = bfd_section_size (sec) / 12 - 1;
p = seg_info (sec)->stabu.p;
gas_assert (p != 0);
@@ -2490,8 +2487,8 @@ elf_adjust_symtab (void)
sec_name = ".group";
s = subseg_force_new (sec_name, 0);
if (s == NULL
- || !bfd_set_section_flags (stdoutput, s, flags)
- || !bfd_set_section_alignment (stdoutput, s, 2))
+ || !bfd_set_section_flags (s, flags)
+ || !bfd_set_section_alignment (s, 2))
{
as_fatal (_("can't create group: %s"),
bfd_errmsg (bfd_get_error ()));
@@ -2598,7 +2595,7 @@ elf_frob_file_after_relocs (void)
group = elf_sec_group (head);
subseg_set (group, 0);
- bfd_set_section_size (stdoutput, group, size);
+ bfd_set_section_size (group, size);
group->contents = (unsigned char *) frag_more (size);
frag_now->fr_fix = frag_now_fix_octets ();
frag_wane (frag_now);
@@ -2656,8 +2653,8 @@ elf_frob_file_after_relocs (void)
to force the ELF backend to allocate a file position, and then
write out the data. FIXME: Is this really the best way to do
this? */
- bfd_set_section_size
- (stdoutput, sec, bfd_ecoff_debug_size (stdoutput, &debug, debug_swap));
+ bfd_set_section_size (sec, bfd_ecoff_debug_size (stdoutput, &debug,
+ debug_swap));
/* Pass BUF to bfd_set_section_contents because this will
eventually become a call to fwrite, and ISO C prohibits
diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c
index 185949ee1f..07c7831945 100644
--- a/gas/config/obj-macho.c
+++ b/gas/config/obj-macho.c
@@ -227,7 +227,7 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
/* Sub-segments don't exists as is on Mach-O. */
sec = subseg_new (name, 0);
- oldflags = bfd_get_section_flags (stdoutput, sec);
+ oldflags = bfd_section_flags (sec);
msect = bfd_mach_o_get_mach_o_section (sec);
if (oldflags == SEC_NO_FLAGS)
@@ -245,9 +245,9 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
flags |= SEC_DEBUGGING;
/* New, so just use the defaults or what's specified. */
- if (! bfd_set_section_flags (stdoutput, sec, flags))
+ if (!bfd_set_section_flags (sec, flags))
as_warn (_("failed to set flags for \"%s\": %s"),
- bfd_section_name (stdoutput, sec),
+ bfd_section_name (sec),
bfd_errmsg (bfd_get_error ()));
strncpy (msect->segname, segname, BFD_MACH_O_SEGNAME_SIZE);
@@ -1697,7 +1697,7 @@ static void
obj_mach_o_set_section_vma (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *v_p)
{
bfd_mach_o_section *ms = bfd_mach_o_get_mach_o_section (sec);
- unsigned bfd_align = bfd_get_section_alignment (abfd, sec);
+ unsigned bfd_align = bfd_section_alignment (sec);
obj_mach_o_set_vma_data *p = (struct obj_mach_o_set_vma_data *)v_p;
unsigned sectype = (ms->flags & BFD_MACH_O_SECTION_TYPE_MASK);
unsigned zf;
@@ -1719,16 +1719,16 @@ obj_mach_o_set_section_vma (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *v_p
/* We know the section size now - so make a vma for the section just
based on order. */
- ms->size = bfd_get_section_size (sec);
+ ms->size = bfd_section_size (sec);
/* Make sure that the align agrees, and set to the largest value chosen. */
ms->align = ms->align > bfd_align ? ms->align : bfd_align;
- bfd_set_section_alignment (abfd, sec, ms->align);
+ bfd_set_section_alignment (sec, ms->align);
p->vma += (1 << ms->align) - 1;
p->vma &= ~((1 << ms->align) - 1);
ms->addr = p->vma;
- bfd_set_section_vma (abfd, sec, p->vma);
+ bfd_set_section_vma (sec, p->vma);
p->vma += ms->size;
}
@@ -1752,7 +1752,7 @@ static void
obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec,
void *xxx ATTRIBUTE_UNUSED)
{
- bfd_vma sect_size = bfd_section_size (abfd, sec);
+ bfd_vma sect_size = bfd_section_size (sec);
bfd_mach_o_section *ms = bfd_mach_o_get_mach_o_section (sec);
unsigned lazy = 0;
diff --git a/gas/config/obj-som.c b/gas/config/obj-som.c
index edd49dc7f1..20213b8b32 100644
--- a/gas/config/obj-som.c
+++ b/gas/config/obj-som.c
@@ -224,14 +224,14 @@ obj_som_init_stab_section (segT seg)
of the various stabs spaces/subspaces need to be "small". We
reserve range 72/73 which appear to work well. */
obj_set_section_attributes (space, 1, 1, 72, 2);
- bfd_set_section_alignment (stdoutput, space, 2);
+ bfd_set_section_alignment (space, 2);
/* Set the containing space for both stab sections to be $GDB_DEBUG$
(just created above). Also set some attributes which BFD does
not understand. In particular, access bits, sort keys, and load
quadrant. */
obj_set_subsection_attributes (seg, space, 0x1f, 73, 0, 0, 0, 0);
- bfd_set_section_alignment (stdoutput, seg, 2);
+ bfd_set_section_alignment (seg, 2);
/* Make some space for the first special stab entry and zero the memory.
It contains information about the length of this file's
@@ -254,7 +254,7 @@ obj_som_init_stab_section (segT seg)
quadrant. */
seg = bfd_get_section_by_name (stdoutput, "$GDB_STRINGS$");
obj_set_subsection_attributes (seg, space, 0x1f, 72, 0, 0, 0, 0);
- bfd_set_section_alignment (stdoutput, seg, 2);
+ bfd_set_section_alignment (seg, 2);
subseg_set (saved_seg, saved_subseg);
}
@@ -273,10 +273,10 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
strsec = bfd_get_section_by_name (abfd, "$GDB_STRINGS$");
if (strsec)
- strsz = bfd_section_size (abfd, strsec);
+ strsz = bfd_section_size (strsec);
else
strsz = 0;
- nsyms = bfd_section_size (abfd, sec) / 12 - 1;
+ nsyms = bfd_section_size (sec) / 12 - 1;
p = seg_info (sec)->stabu.p;
gas_assert (p != 0);
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 735ecd6073..522efebfe4 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7363,7 +7363,7 @@ aarch64_init_frag (fragS * fragP, int max_chars)
/* PR 21809: Do not set a mapping state for debug sections
- it just confuses other tools. */
- if (bfd_get_section_flags (NULL, now_seg) & SEC_DEBUGGING)
+ if (bfd_section_flags (now_seg) & SEC_DEBUGGING)
return;
switch (fragP->fr_type)
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index 7f80036157..70ceba02c1 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -1205,10 +1205,9 @@ create_literal_section (const char *name,
*secp = new_sec = subseg_new (name, 0);
subseg_set (current_section, current_subsec);
- bfd_set_section_alignment (stdoutput, new_sec, 4);
- bfd_set_section_flags (stdoutput, new_sec,
- SEC_RELOC | SEC_ALLOC | SEC_LOAD | SEC_READONLY
- | SEC_DATA);
+ bfd_set_section_alignment (new_sec, 4);
+ bfd_set_section_flags (new_sec, (SEC_RELOC | SEC_ALLOC | SEC_LOAD
+ | SEC_READONLY | SEC_DATA));
S_CLEAR_EXTERNAL (*symp = section_symbol (new_sec));
}
@@ -3985,8 +3984,8 @@ s_alpha_stab (int n)
if (alpha_flag_mdebug < 0)
{
segT sec = subseg_new (".mdebug", 0);
- bfd_set_section_flags (stdoutput, sec, SEC_HAS_CONTENTS | SEC_READONLY);
- bfd_set_section_alignment (stdoutput, sec, 3);
+ bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_alignment (sec, 3);
ecoff_read_begin_hook ();
@@ -5301,7 +5300,7 @@ maybe_set_gp (asection *sec)
if (!sec)
return;
- vma = bfd_get_section_vma (sec->owner, sec);
+ vma = bfd_section_vma (sec);
if (vma && vma < alpha_gp_value)
alpha_gp_value = vma;
}
@@ -5515,8 +5514,8 @@ md_begin (void)
if (ECOFF_DEBUGGING)
{
segT sec = subseg_new (".mdebug", (subsegT) 0);
- bfd_set_section_flags (stdoutput, sec, SEC_HAS_CONTENTS | SEC_READONLY);
- bfd_set_section_alignment (stdoutput, sec, 3);
+ bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_alignment (sec, 3);
}
#endif
@@ -5563,7 +5562,7 @@ md_assemble (char *str)
valueT
md_section_align (segT seg, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
valueT mask = ((valueT) 1 << align) - 1;
return (size + mask) & ~mask;
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index c1d5ea3d47..c73906b51b 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -2706,7 +2706,7 @@ valueT
md_section_align (segT segment,
valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
}
@@ -4529,8 +4529,7 @@ arc_set_ext_seg (void)
if (!arcext_section)
{
arcext_section = subseg_new (".arcextmap", 0);
- bfd_set_section_flags (stdoutput, arcext_section,
- SEC_READONLY | SEC_HAS_CONTENTS);
+ bfd_set_section_flags (arcext_section, SEC_READONLY | SEC_HAS_CONTENTS);
}
else
subseg_set (arcext_section, 0);
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 32a15f65ec..b0f1507c36 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -22878,7 +22878,7 @@ arm_frob_label (symbolS * sym)
out of the jump table, and chaos would ensue. */
if (label_is_thumb_function_name
&& (S_GET_NAME (sym)[0] != '.' || S_GET_NAME (sym)[1] != 'L')
- && (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ && (bfd_section_flags (now_seg) & SEC_CODE) != 0)
{
/* When the address of a Thumb function is taken the bottom
bit of that address should be set. This will allow
@@ -26491,7 +26491,7 @@ arm_init_frag (fragS * fragP, int max_chars)
/* PR 21809: Do not set a mapping state for debug sections
- it just confuses other tools. */
- if (bfd_get_section_flags (NULL, now_seg) & SEC_DEBUGGING)
+ if (bfd_section_flags (now_seg) & SEC_DEBUGGING)
return;
frag_thumb_mode = fragP->tc_frag_data.thumb_mode ^ MODE_RECORDED;
@@ -30019,9 +30019,8 @@ md_begin (void)
if (sec != NULL)
{
- bfd_set_section_flags
- (stdoutput, sec, SEC_READONLY | SEC_DEBUGGING /* | SEC_HAS_CONTENTS */);
- bfd_set_section_size (stdoutput, sec, 0);
+ bfd_set_section_flags (sec, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_size (sec, 0);
bfd_set_section_contents (stdoutput, sec, NULL, 0, 0);
}
}
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index df0833c761..36262ad8c0 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -1429,7 +1429,7 @@ avr_operands (struct avr_opcodes_s *opcode, char **line)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & (-1UL << align));
}
@@ -2229,7 +2229,7 @@ avr_create_property_section (void)
sec = bfd_make_section (stdoutput, section_name);
if (sec == NULL)
as_fatal (_("Failed to create property section `%s'\n"), section_name);
- bfd_set_section_flags (stdoutput, sec, flags);
+ bfd_set_section_flags (sec, flags);
sec->output_section = sec;
return sec;
}
@@ -2404,7 +2404,7 @@ avr_create_and_fill_property_section (void)
return;
prop_sec = avr_create_property_section ();
- bfd_set_section_size (stdoutput, prop_sec, sec_size);
+ bfd_set_section_size (prop_sec, sec_size);
subseg_set (prop_sec, 0);
frag_base = frag_more (sec_size);
diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c
index 104ab6aec9..5f10cb7fb4 100644
--- a/gas/config/tc-bfin.c
+++ b/gas/config/tc-bfin.c
@@ -789,7 +789,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED)
valueT
md_section_align (segT segment, valueT size)
{
- int boundary = bfd_get_section_alignment (stdoutput, segment);
+ int boundary = bfd_section_alignment (segment);
return ((size + (1 << boundary) - 1) & -(1 << boundary));
}
diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index d2da2feafb..7c3bf2e718 100644
--- a/gas/config/tc-bpf.c
+++ b/gas/config/tc-bpf.c
@@ -189,7 +189,7 @@ md_begin (void)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index 9f6c82e1f9..2eb679bb44 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -268,7 +268,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index 086215e306..a54945e1f3 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -302,7 +302,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
@@ -1490,7 +1490,7 @@ d30v_align (int n, char *pfill, symbolS *label)
if (pfill == NULL)
{
if (n > 2
- && (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ && (bfd_section_flags (now_seg) & SEC_CODE) != 0)
{
static char const nop[4] = { 0x00, 0xf0, 0x00, 0x00 };
diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c
index 5429fa9fb5..753cb6e0bf 100644
--- a/gas/config/tc-epiphany.c
+++ b/gas/config/tc-epiphany.c
@@ -152,7 +152,7 @@ md_begin (void)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c
index 3703e29ccc..5767eeb616 100644
--- a/gas/config/tc-fr30.c
+++ b/gas/config/tc-fr30.c
@@ -154,7 +154,7 @@ md_operand (expressionS * expressionP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c
index 3112fce4f2..d8ff553294 100644
--- a/gas/config/tc-frv.c
+++ b/gas/config/tc-frv.c
@@ -1225,7 +1225,7 @@ md_operand (expressionS *expressionP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
@@ -1651,7 +1651,7 @@ frv_frob_file_section (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
segment_info_type *seginfo = seg_info (sec);
fixS *fixp;
CGEN_CPU_DESC cd = gas_cgen_cpu_desc;
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
/* Skip relocations in known sections (.ctors, .dtors, and .gcc_except_table)
since we can fix those up by hand. */
diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c
index 5ddc889a4d..c79c6d4225 100644
--- a/gas/config/tc-h8300.c
+++ b/gas/config/tc-h8300.c
@@ -2225,7 +2225,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED,
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & (-1U << align));
}
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 82c71ebbfc..fb6d82bc59 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -1608,7 +1608,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
int align2 = (1 << align) - 1;
return (size + align2) & ~align2;
@@ -5962,7 +5962,7 @@ pa_build_unwind_subspace (struct call_info *call_info)
char *name, *p;
symbolS *symbolP;
- if ((bfd_get_section_flags (stdoutput, now_seg)
+ if ((bfd_section_flags (now_seg)
& (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
!= (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
return;
@@ -6006,10 +6006,9 @@ pa_build_unwind_subspace (struct call_info *call_info)
if (seg == ASEC_NULL)
{
seg = subseg_new (UNWIND_SECTION_NAME, 0);
- bfd_set_section_flags (stdoutput, seg,
- SEC_READONLY | SEC_HAS_CONTENTS
- | SEC_LOAD | SEC_RELOC | SEC_ALLOC | SEC_DATA);
- bfd_set_section_alignment (stdoutput, seg, 2);
+ bfd_set_section_flags (seg, (SEC_READONLY | SEC_HAS_CONTENTS | SEC_LOAD
+ | SEC_RELOC | SEC_ALLOC | SEC_DATA));
+ bfd_set_section_alignment (seg, 2);
}
subseg_set (seg, 0);
@@ -7533,14 +7532,13 @@ pa_subspace (int create_new)
seg_info (section)->bss = 1;
/* Now set the flags. */
- bfd_set_section_flags (stdoutput, section, applicable);
+ bfd_set_section_flags (section, applicable);
/* Record any alignment request for this section. */
record_alignment (section, exact_log2 (alignment));
/* Set the starting offset for this section. */
- bfd_set_section_vma (stdoutput, section,
- pa_subspace_start (space, quadrant));
+ bfd_set_section_vma (section, pa_subspace_start (space, quadrant));
/* Now that all the flags are set, update an existing subspace,
or create a new one. */
@@ -7614,7 +7612,7 @@ pa_spaces_begin (void)
{
text_section = segment;
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & (SEC_ALLOC | SEC_LOAD
| SEC_RELOC | SEC_CODE
| SEC_READONLY
@@ -7624,7 +7622,7 @@ pa_spaces_begin (void)
{
data_section = segment;
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & (SEC_ALLOC | SEC_LOAD
| SEC_RELOC
| SEC_HAS_CONTENTS));
@@ -7634,13 +7632,13 @@ pa_spaces_begin (void)
{
bss_section = segment;
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & SEC_ALLOC);
}
else if (!strcmp (pa_def_subspaces[i].name, "$LIT$"))
{
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & (SEC_ALLOC | SEC_LOAD
| SEC_RELOC
| SEC_READONLY
@@ -7649,7 +7647,7 @@ pa_spaces_begin (void)
else if (!strcmp (pa_def_subspaces[i].name, "$MILLICODE$"))
{
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & (SEC_ALLOC | SEC_LOAD
| SEC_RELOC
| SEC_READONLY
@@ -7658,7 +7656,7 @@ pa_spaces_begin (void)
else if (!strcmp (pa_def_subspaces[i].name, "$UNWIND$"))
{
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, segment,
+ bfd_set_section_flags (segment,
applicable & (SEC_ALLOC | SEC_LOAD
| SEC_RELOC
| SEC_READONLY
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 2710dcec72..fec69c1397 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -8105,7 +8105,7 @@ x86_cleanup (void)
/* Create the .note.gnu.property section. */
sec = subseg_new (NOTE_GNU_PROPERTY_SECTION_NAME, 0);
- bfd_set_section_flags (stdoutput, sec,
+ bfd_set_section_flags (sec,
(SEC_ALLOC
| SEC_LOAD
| SEC_DATA
@@ -8123,7 +8123,7 @@ x86_cleanup (void)
alignment = 2;
}
- bfd_set_section_alignment (stdoutput, sec, alignment);
+ bfd_set_section_alignment (sec, alignment);
elf_section_type (sec) = SHT_NOTE;
/* GNU_PROPERTY_X86_ISA_1_USED: 4-byte type + 4-byte data size
@@ -11939,7 +11939,7 @@ md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size)
work. */
int align;
- align = bfd_get_section_alignment (stdoutput, segment);
+ align = bfd_section_alignment (segment);
size = ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
}
#endif
@@ -12382,8 +12382,7 @@ handle_large_common (int small ATTRIBUTE_UNUSED)
/* The .lbss section is for local .largecomm symbols. */
lbss_section = subseg_new (".lbss", 0);
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, lbss_section,
- applicable & SEC_ALLOC);
+ bfd_set_section_flags (lbss_section, applicable & SEC_ALLOC);
seg_info (lbss_section)->bss = 1;
subseg_set (seg, subseg);
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 8f25e557e0..0c618e811e 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -1152,14 +1152,14 @@ obj_elf_vms_common (int ignore ATTRIBUTE_UNUSED)
record_alignment (now_seg, log_align);
- cur_size = bfd_section_size (stdoutput, now_seg);
+ cur_size = bfd_section_size (now_seg);
if ((int) size > cur_size)
{
char *pfrag
= frag_var (rs_fill, 1, 1, (relax_substateT)0, NULL,
(valueT)size - (valueT)cur_size, NULL);
*pfrag = 0;
- bfd_section_size (stdoutput, now_seg) = size;
+ bfd_set_section_size (now_seg, size);
}
/* Switch back to current segment. */
@@ -3606,8 +3606,7 @@ start_unwind_section (const segT text_seg, int sec_index)
else
{
set_section (sec_name);
- bfd_set_section_flags (stdoutput, now_seg,
- SEC_LOAD | SEC_ALLOC | SEC_READONLY);
+ bfd_set_section_flags (now_seg, SEC_LOAD | SEC_ALLOC | SEC_READONLY);
}
elf_linked_to_section (now_seg) = text_seg;
@@ -7250,7 +7249,7 @@ md_begin (void)
md.auto_align = 1;
md.explicit_mode = md.default_explicit_mode;
- bfd_set_section_alignment (stdoutput, text_section, 4);
+ bfd_set_section_alignment (text_section, 4);
/* Make sure function pointers get initialized. */
target_big_endian = -1;
@@ -7778,7 +7777,7 @@ ia64_frob_label (struct symbol *sym)
return;
}
- if (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE)
+ if (bfd_section_flags (now_seg) & SEC_CODE)
{
md.last_text_seg = now_seg;
fix = XOBNEW (¬es, struct label_fix);
@@ -7818,7 +7817,7 @@ void
ia64_flush_pending_output (void)
{
if (!md.keep_pending_output
- && bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE)
+ && bfd_section_flags (now_seg) & SEC_CODE)
{
/* ??? This causes many unnecessary stop bits to be emitted.
Unfortunately, it isn't clear if it is safe to remove this. */
@@ -10989,7 +10988,7 @@ ia64_pcrel_from_section (fixS *fix, segT sec)
{
unsigned long off = fix->fx_frag->fr_address + fix->fx_where;
- if (bfd_get_section_flags (stdoutput, sec) & SEC_CODE)
+ if (bfd_section_flags (sec) & SEC_CODE)
off &= ~0xfUL;
return off;
@@ -11946,9 +11945,7 @@ ia64_vms_note (void)
/* Create the .note section. */
secp = subseg_new (".note", 0);
- bfd_set_section_flags (stdoutput,
- secp,
- SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_flags (secp, SEC_HAS_CONTENTS | SEC_READONLY);
/* Module header note (MHD). */
bname = xstrdup (lbasename (out_file_name));
@@ -11993,9 +11990,7 @@ ia64_vms_note (void)
frag_align (3, 0, 0);
secp = subseg_new (".vms_display_name_info", 0);
- bfd_set_section_flags (stdoutput,
- secp,
- SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_flags (secp, SEC_HAS_CONTENTS | SEC_READONLY);
/* This symbol should be passed on the command line and be variable
according to language. */
diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c
index 0fcc0003d1..53b4d88f11 100644
--- a/gas/config/tc-ip2k.c
+++ b/gas/config/tc-ip2k.c
@@ -213,7 +213,7 @@ md_assemble (char * str)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c
index 3275d301f7..d2a0c59848 100644
--- a/gas/config/tc-iq2000.c
+++ b/gas/config/tc-iq2000.c
@@ -430,7 +430,7 @@ md_assemble (char * str)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
@@ -817,7 +817,7 @@ s_iq2000_end (int x ATTRIBUTE_UNUSED)
else
p = NULL;
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
@@ -916,7 +916,7 @@ s_iq2000_ent (int aent)
if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-')
get_number ();
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c
index a547ba9b5b..75a733a6f2 100644
--- a/gas/config/tc-lm32.c
+++ b/gas/config/tc-lm32.c
@@ -277,7 +277,7 @@ md_undefined_symbol (char * name ATTRIBUTE_UNUSED)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-m32c.c b/gas/config/tc-m32c.c
index 851d4c1971..3ea3e59974 100644
--- a/gas/config/tc-m32c.c
+++ b/gas/config/tc-m32c.c
@@ -392,7 +392,7 @@ md_operand (expressionS * exp)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
index c20cb72ce1..75ee9d93de 100644
--- a/gas/config/tc-m32r.c
+++ b/gas/config/tc-m32r.c
@@ -713,7 +713,7 @@ md_begin (void)
/* This is copied from perform_an_assembly_pass. */
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, sbss_section, applicable & SEC_ALLOC);
+ bfd_set_section_flags (sbss_section, applicable & SEC_ALLOC);
subseg_set (seg, subseg);
@@ -1448,7 +1448,7 @@ md_operand (expressionS *expressionP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 11514963bc..1c36d5d98c 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -583,7 +583,7 @@ md_atof (int type, char *litP, int *sizeP)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c
index f53bb17022..c0d48e8354 100644
--- a/gas/config/tc-mep.c
+++ b/gas/config/tc-mep.c
@@ -1380,7 +1380,7 @@ md_assemble (char * str)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
@@ -1528,7 +1528,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
|| S_IS_WEAK (fragP->fr_symbol)
#ifdef MEP_IVC2_SUPPORTED
|| (mep_cop == EF_MEP_COP_IVC2
- && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+ && bfd_section_flags (segment) & SEC_MEP_VLIW)
#endif /* MEP_IVC2_SUPPORTED */
)
{
@@ -1539,7 +1539,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
}
if (MEP_VLIW && ! MEP_VLIW64
- && (bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW))
+ && (bfd_section_flags (segment) & SEC_MEP_VLIW))
{
/* Use 32 bit branches for vliw32 so the vliw word is not split. */
switch (fragP->fr_cgen.insn->base->num)
@@ -1572,7 +1572,7 @@ md_estimate_size_before_relax (fragS * fragP, segT segment)
#ifdef MEP_IVC2_SUPPORTED
if (mep_cop == EF_MEP_COP_IVC2
- && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+ && bfd_section_flags (segment) & SEC_MEP_VLIW)
return 0;
#endif /* MEP_IVC2_SUPPORTED */
@@ -1587,7 +1587,7 @@ mep_relax_frag (segT segment, fragS *fragP, long stretch)
long rv = relax_frag (segment, fragP, stretch);
#ifdef MEP_IVC2_SUPPORTED
if (mep_cop == EF_MEP_COP_IVC2
- && bfd_get_section_flags (stdoutput, segment) & SEC_MEP_VLIW)
+ && bfd_section_flags (segment) & SEC_MEP_VLIW)
return 0;
#endif
return rv;
@@ -1624,7 +1624,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
int core_mode;
#ifdef MEP_IVC2_SUPPORTED
- if (bfd_get_section_flags (stdoutput, seg) & SEC_MEP_VLIW
+ if (bfd_section_flags (seg) & SEC_MEP_VLIW
&& mep_cop == EF_MEP_COP_IVC2)
core_mode = 0;
else
@@ -2110,7 +2110,7 @@ mep_vtext_section (void)
{
flagword applicable = bfd_applicable_section_flags (stdoutput);
vtext_section = subseg_new (VTEXT_SECTION_NAME, 0);
- bfd_set_section_flags (stdoutput, vtext_section,
+ bfd_set_section_flags (vtext_section,
applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC
| SEC_CODE | SEC_READONLY
| SEC_MEP_VLIW));
diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
index c9ab452b3e..2f68d688ea 100644
--- a/gas/config/tc-microblaze.c
+++ b/gas/config/tc-microblaze.c
@@ -2011,8 +2011,7 @@ md_apply_fix (fixS * fixP,
{
if (S_IS_WEAK (fixP->fx_addsy)
|| (symbol_used_in_reloc_p (fixP->fx_addsy)
- && (((bfd_get_section_flags (stdoutput,
- S_GET_SEGMENT (fixP->fx_addsy))
+ && (((bfd_section_flags (S_GET_SEGMENT (fixP->fx_addsy))
& SEC_LINK_ONCE) != 0)
|| !strncmp (segment_name (S_GET_SEGMENT (fixP->fx_addsy)),
".gnu.linkonce",
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index a386d11f6c..b2e49730c0 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -3859,9 +3859,9 @@ md_begin (void)
if (strncmp (TARGET_OS, "elf", 3) != 0
&& strncmp (TARGET_OS, "vxworks", 7) != 0)
{
- (void) bfd_set_section_alignment (stdoutput, text_section, 4);
- (void) bfd_set_section_alignment (stdoutput, data_section, 4);
- (void) bfd_set_section_alignment (stdoutput, bss_section, 4);
+ bfd_set_section_alignment (text_section, 4);
+ bfd_set_section_alignment (data_section, 4);
+ bfd_set_section_alignment (bss_section, 4);
}
/* Create a .reginfo section for register masks and a .mdebug
@@ -3886,8 +3886,8 @@ md_begin (void)
{
sec = subseg_new (".reginfo", (subsegT) 0);
- bfd_set_section_flags (stdoutput, sec, flags);
- bfd_set_section_alignment (stdoutput, sec, HAVE_NEWABI ? 3 : 2);
+ bfd_set_section_flags (sec, flags);
+ bfd_set_section_alignment (sec, HAVE_NEWABI ? 3 : 2);
mips_regmask_frag = frag_more (sizeof (Elf32_External_RegInfo));
}
@@ -3896,8 +3896,8 @@ md_begin (void)
/* The 64-bit ABI uses a .MIPS.options section rather than
.reginfo section. */
sec = subseg_new (".MIPS.options", (subsegT) 0);
- bfd_set_section_flags (stdoutput, sec, flags);
- bfd_set_section_alignment (stdoutput, sec, 3);
+ bfd_set_section_flags (sec, flags);
+ bfd_set_section_alignment (sec, 3);
/* Set up the option header. */
{
@@ -3918,25 +3918,23 @@ md_begin (void)
}
sec = subseg_new (".MIPS.abiflags", (subsegT) 0);
- bfd_set_section_flags (stdoutput, sec,
+ bfd_set_section_flags (sec,
SEC_READONLY | SEC_DATA | SEC_ALLOC | SEC_LOAD);
- bfd_set_section_alignment (stdoutput, sec, 3);
+ bfd_set_section_alignment (sec, 3);
mips_flags_frag = frag_more (sizeof (Elf_External_ABIFlags_v0));
if (ECOFF_DEBUGGING)
{
sec = subseg_new (".mdebug", (subsegT) 0);
- (void) bfd_set_section_flags (stdoutput, sec,
- SEC_HAS_CONTENTS | SEC_READONLY);
- (void) bfd_set_section_alignment (stdoutput, sec, 2);
+ bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_alignment (sec, 2);
}
else if (mips_flag_pdr)
{
pdr_seg = subseg_new (".pdr", (subsegT) 0);
- (void) bfd_set_section_flags (stdoutput, pdr_seg,
- SEC_READONLY | SEC_RELOC
- | SEC_DEBUGGING);
- (void) bfd_set_section_alignment (stdoutput, pdr_seg, 2);
+ bfd_set_section_flags (pdr_seg,
+ SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+ bfd_set_section_alignment (pdr_seg, 2);
}
subseg_set (seg, subseg);
@@ -4468,7 +4466,7 @@ s_is_linkonce (symbolS *sym, segT from_seg)
if (symseg != from_seg && !S_IS_LOCAL (sym))
{
- if ((bfd_get_section_flags (stdoutput, symseg) & SEC_LINK_ONCE))
+ if ((bfd_section_flags (symseg) & SEC_LINK_ONCE))
linkonce = TRUE;
/* The GNU toolchain uses an extension for ELF: a section
beginning with the magic string .gnu.linkonce is a
@@ -6180,7 +6178,7 @@ match_float_constant (struct mips_arg_info *arg, expressionS *imm,
}
new_seg = subseg_new (newname, (subsegT) 0);
- bfd_set_section_flags (stdoutput, new_seg,
+ bfd_set_section_flags (new_seg,
SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA);
frag_align (length == 4 ? 2 : 3, 0, 0);
if (strncmp (TARGET_OS, "elf", 3) != 0)
@@ -16128,7 +16126,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
&& fixP->fx_done
&& fixP->fx_frag->fr_address >= text_section->vma
&& (fixP->fx_frag->fr_address
- < text_section->vma + bfd_get_section_size (text_section))
+ < text_section->vma + bfd_section_size (text_section))
&& ((insn & 0xffff0000) == 0x10000000 /* beq $0,$0 */
|| (insn & 0xffff0000) == 0x04010000 /* bgez $0 */
|| (insn & 0xffff0000) == 0x04110000)) /* bgezal $0 */
@@ -16319,9 +16317,8 @@ s_change_sec (int sec)
case 'r':
seg = subseg_new (RDATA_SECTION_NAME,
(subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD
- | SEC_READONLY | SEC_RELOC
- | SEC_DATA));
+ bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+ | SEC_RELOC | SEC_DATA));
if (strncmp (TARGET_OS, "elf", 3) != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
@@ -16329,7 +16326,7 @@ s_change_sec (int sec)
case 's':
seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg,
+ bfd_set_section_flags (seg,
SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
if (strncmp (TARGET_OS, "elf", 3) != 0)
record_alignment (seg, 4);
@@ -16338,7 +16335,7 @@ s_change_sec (int sec)
case 'B':
seg = subseg_new (".sbss", (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, SEC_ALLOC);
+ bfd_set_section_flags (seg, SEC_ALLOC);
if (strncmp (TARGET_OS, "elf", 3) != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
@@ -17603,7 +17600,7 @@ tc_get_register (int frame)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
/* We don't need to align ELF sections to the full alignment.
However, Irix 5 may prefer that we align them at least to a 16
@@ -19760,7 +19757,7 @@ s_mips_end (int x ATTRIBUTE_UNUSED)
else
p = NULL;
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) == 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) == 0)
as_warn (_(".end not in text section"));
if (!cur_proc_ptr)
@@ -19850,7 +19847,7 @@ s_mips_ent (int aent)
|| *input_line_pointer == '-')
get_number ();
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) == 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) == 0)
as_warn (_(".ent or .aent not in text section"));
if (!aent && cur_proc_ptr)
diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c
index 317805923d..1514b6d060 100644
--- a/gas/config/tc-mmix.c
+++ b/gas/config/tc-mmix.c
@@ -2130,9 +2130,8 @@ s_bspec (int unused ATTRIBUTE_UNUSED)
if (sec == NULL)
as_fatal (_("can't create section %s"), newsecname);
- if (!bfd_set_section_flags (stdoutput, sec,
- bfd_get_section_flags (stdoutput, sec)
- | SEC_READONLY))
+ if (!bfd_set_section_flags (sec,
+ bfd_section_flags (sec) | SEC_READONLY))
as_fatal (_("can't set section flags for section %s"), newsecname);
}
@@ -2638,7 +2637,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
than just helping the user around this limitation here; hopefully the
code using the local expression is around. Putting the LOCAL
semantics in a relocation still seems right; a section didn't do. */
- if (bfd_section_size (section->owner, section) == 0)
+ if (bfd_section_size (section) == 0)
as_bad_where
(fixP->fx_file, fixP->fx_line,
fixP->fx_r_type == BFD_RELOC_MMIX_LOCAL
@@ -2708,7 +2707,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
resolve the relocation here. */
if (addsy != NULL
&& (bfd_is_und_section (addsec)
- || strcmp (bfd_get_section_name (addsec->owner, addsec),
+ || strcmp (bfd_section_name (addsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0))
{
code = fixP->fx_r_type;
@@ -2735,7 +2734,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
case BFD_RELOC_MMIX_BASE_PLUS_OFFSET:
if (addsy != NULL
- && strcmp (bfd_get_section_name (addsec->owner, addsec),
+ && strcmp (bfd_section_name (addsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0)
{
/* This changed into a register; the relocation is for the
@@ -2838,7 +2837,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP)
case BFD_RELOC_MMIX_REG:
if (addsy != NULL
&& (bfd_is_und_section (addsec)
- || strcmp (bfd_get_section_name (addsec->owner, addsec),
+ || strcmp (bfd_section_name (addsec),
MMIX_REG_CONTENTS_SECTION_NAME) == 0))
{
code = fixP->fx_r_type;
@@ -3794,7 +3793,7 @@ mmix_frob_file (void)
if (real_reg_section != NULL)
{
/* FIXME: Pass error state gracefully. */
- if (bfd_get_section_flags (stdoutput, real_reg_section) & SEC_HAS_CONTENTS)
+ if (bfd_section_flags (real_reg_section) & SEC_HAS_CONTENTS)
as_fatal (_("register section has contents\n"));
bfd_section_list_remove (stdoutput, real_reg_section);
@@ -3924,7 +3923,7 @@ mmix_md_elf_section_change_hook (void)
if (doing_bspec)
as_bad (_("section change from within a BSPEC/ESPEC pair is not supported"));
- last_alignment = bfd_get_section_alignment (now_seg->owner, now_seg);
+ last_alignment = bfd_section_alignment (now_seg);
want_unaligned = 0;
}
diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c
index 045016bcba..ebc011b1a6 100644
--- a/gas/config/tc-mn10200.c
+++ b/gas/config/tc-mn10200.c
@@ -675,7 +675,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c
index 15e6e27b24..1a41731379 100644
--- a/gas/config/tc-mn10300.c
+++ b/gas/config/tc-mn10300.c
@@ -900,7 +900,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
@@ -2616,7 +2616,7 @@ mn10300_handle_align (fragS *frag)
&& now_seg != bss_section
/* Do not create relocs for the merging sections - such
relocs will prevent the contents from being merged. */
- && (bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE) == 0)
+ && (bfd_section_flags (now_seg) & SEC_MERGE) == 0)
/* Create a new fixup to record the alignment request. The symbol is
irrelevant but must be present so we use the absolute section symbol.
The offset from the symbol is used to record the power-of-two alignment
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 5821b1c811..56d2024349 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -4239,7 +4239,7 @@ md_assemble (char * str)
valueT
md_section_align (asection * seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-mt.c b/gas/config/tc-mt.c
index bd518547e3..5b938aa2a9 100644
--- a/gas/config/tc-mt.c
+++ b/gas/config/tc-mt.c
@@ -333,7 +333,7 @@ md_assemble (char * str)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index d01ca3d202..36ed58a453 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -3841,7 +3841,7 @@ do_nds32_seg (int i, subsegT sub)
seg->s = subseg_new (seg->name, sub);
if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
{
- bfd_set_section_flags (stdoutput, seg->s, seg->flags);
+ bfd_set_section_flags (seg->s, seg->flags);
if ((seg->flags & SEC_LOAD) == 0)
seg_info (seg->s)->bss = 1;
}
@@ -6609,7 +6609,7 @@ md_operand (expressionS *expressionP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & ((valueT) -1 << align));
}
@@ -7569,7 +7569,7 @@ nds32_set_section_relocs (asection *sec, arelent ** relocs ATTRIBUTE_UNUSED,
unsigned int n ATTRIBUTE_UNUSED)
{
bfd *abfd ATTRIBUTE_UNUSED = sec->owner;
- if (bfd_get_section_flags (abfd, sec) & (flagword) SEC_RELOC)
+ if (bfd_section_flags (sec) & (flagword) SEC_RELOC)
nds32_insertion_sort (sec->orelocation, sec->reloc_count,
sizeof (arelent**), compar_relent);
}
diff --git a/gas/config/tc-or1k.c b/gas/config/tc-or1k.c
index 28fa7c5010..e29d4dd77d 100644
--- a/gas/config/tc-or1k.c
+++ b/gas/config/tc-or1k.c
@@ -165,7 +165,7 @@ md_operand (expressionS * expressionP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 042c95b188..156f62c6fc 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -1975,9 +1975,7 @@ ppc_cleanup (void)
/* Create the .PPC.EMB.apuinfo section. */
apuinfo_secp = subseg_new (APUINFO_SECTION_NAME, 0);
- bfd_set_section_flags (stdoutput,
- apuinfo_secp,
- SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_flags (apuinfo_secp, SEC_HAS_CONTENTS | SEC_READONLY);
p = frag_more (4);
md_number_to_chars (p, (valueT) 8, 4);
@@ -2703,7 +2701,7 @@ ppc_frob_file_before_adjust (void)
toc = bfd_get_section_by_name (stdoutput, ".toc");
if (toc != NULL
&& toc_reloc_types != has_large_toc_reloc
- && bfd_section_size (stdoutput, toc) > 0x10000)
+ && bfd_section_size (toc) > 0x10000)
as_warn (_("TOC section size exceeds 64k"));
}
@@ -4681,14 +4679,14 @@ ppc_change_debug_section (unsigned int idx, subsegT subseg)
const struct xcoff_dwsect_name *dw = &xcoff_dwsect_names[idx];
sec = subseg_new (dw->name, subseg);
- oldflags = bfd_get_section_flags (stdoutput, sec);
+ oldflags = bfd_section_flags (sec);
if (oldflags == SEC_NO_FLAGS)
{
/* Just created section. */
gas_assert (dw_sections[idx].sect == NULL);
- bfd_set_section_flags (stdoutput, sec, SEC_DEBUGGING);
- bfd_set_section_alignment (stdoutput, sec, 0);
+ bfd_set_section_flags (sec, SEC_DEBUGGING);
+ bfd_set_section_alignment (sec, 0);
dw_sections[idx].sect = sec;
}
@@ -5804,11 +5802,10 @@ ppc_pdata (int ignore ATTRIBUTE_UNUSED)
{
pdata_section = subseg_new (".pdata", 0);
- bfd_set_section_flags (stdoutput, pdata_section,
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC
- | SEC_READONLY | SEC_DATA ));
+ bfd_set_section_flags (pdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+ | SEC_READONLY | SEC_DATA));
- bfd_set_section_alignment (stdoutput, pdata_section, 2);
+ bfd_set_section_alignment (pdata_section, 2);
}
else
{
@@ -5837,11 +5834,10 @@ ppc_ydata (int ignore ATTRIBUTE_UNUSED)
if (ydata_section == 0)
{
ydata_section = subseg_new (".ydata", 0);
- bfd_set_section_flags (stdoutput, ydata_section,
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC
- | SEC_READONLY | SEC_DATA ));
+ bfd_set_section_flags (ydata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+ | SEC_READONLY | SEC_DATA ));
- bfd_set_section_alignment (stdoutput, ydata_section, 3);
+ bfd_set_section_alignment (ydata_section, 3);
}
else
{
@@ -5874,11 +5870,10 @@ ppc_reldata (int ignore ATTRIBUTE_UNUSED)
{
reldata_section = subseg_new (".reldata", 0);
- bfd_set_section_flags (stdoutput, reldata_section,
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC
- | SEC_DATA));
+ bfd_set_section_flags (reldata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+ | SEC_DATA));
- bfd_set_section_alignment (stdoutput, reldata_section, 2);
+ bfd_set_section_alignment (reldata_section, 2);
}
else
{
@@ -5903,11 +5898,10 @@ ppc_rdata (int ignore ATTRIBUTE_UNUSED)
if (rdata_section == 0)
{
rdata_section = subseg_new (".rdata", 0);
- bfd_set_section_flags (stdoutput, rdata_section,
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC
- | SEC_READONLY | SEC_DATA ));
+ bfd_set_section_flags (rdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+ | SEC_READONLY | SEC_DATA ));
- bfd_set_section_alignment (stdoutput, rdata_section, 2);
+ bfd_set_section_alignment (rdata_section, 2);
}
else
{
@@ -6261,13 +6255,13 @@ ppc_pe_section (int ignore ATTRIBUTE_UNUSED)
if (flags != SEC_NO_FLAGS)
{
- if (! bfd_set_section_flags (stdoutput, sec, flags))
+ if (!bfd_set_section_flags (sec, flags))
as_bad (_("error setting flags for \"%s\": %s"),
- bfd_section_name (stdoutput, sec),
+ bfd_section_name (sec),
bfd_errmsg (bfd_get_error ()));
}
- bfd_set_section_alignment (stdoutput, sec, align);
+ bfd_set_section_alignment (sec, align);
}
static void
@@ -6298,11 +6292,10 @@ ppc_pe_tocd (int ignore ATTRIBUTE_UNUSED)
{
tocdata_section = subseg_new (".tocd", 0);
/* FIXME: section flags won't work. */
- bfd_set_section_flags (stdoutput, tocdata_section,
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC
- | SEC_READONLY | SEC_DATA));
+ bfd_set_section_flags (tocdata_section, (SEC_ALLOC | SEC_LOAD | SEC_RELOC
+ | SEC_READONLY | SEC_DATA));
- bfd_set_section_alignment (stdoutput, tocdata_section, 2);
+ bfd_set_section_alignment (tocdata_section, 2);
}
else
{
@@ -6573,8 +6566,7 @@ ppc_frob_symbol (symbolS *sym)
/* This is a csect symbol. x_scnlen is the size of the
csect. */
if (symbol_get_tc (sym)->next == (symbolS *) NULL)
- a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
- S_GET_SEGMENT (sym))
+ a->x_csect.x_scnlen.l = (bfd_section_size (S_GET_SEGMENT (sym))
- S_GET_VALUE (sym));
else
{
@@ -6622,8 +6614,7 @@ ppc_frob_symbol (symbolS *sym)
|| symbol_get_tc (next)->symbol_class != XMC_TC)
{
if (ppc_after_toc_frag == (fragS *) NULL)
- a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
- data_section)
+ a->x_csect.x_scnlen.l = (bfd_section_size (data_section)
- S_GET_VALUE (sym));
else
a->x_csect.x_scnlen.l = (ppc_after_toc_frag->fr_address
@@ -6787,12 +6778,12 @@ ppc_frob_section (asection *sec)
static bfd_vma vma = 0;
/* Dwarf sections start at 0. */
- if (bfd_get_section_flags (NULL, sec) & SEC_DEBUGGING)
+ if (bfd_section_flags (sec) & SEC_DEBUGGING)
return;
vma = md_section_align (sec, vma);
- bfd_set_section_vma (stdoutput, sec, vma);
- vma += bfd_section_size (stdoutput, sec);
+ bfd_set_section_vma (sec, vma);
+ vma += bfd_section_size (sec);
}
#endif /* OBJ_XCOFF */
@@ -6823,7 +6814,7 @@ md_section_align (asection *seg ATTRIBUTE_UNUSED, valueT addr)
#ifdef OBJ_ELF
return addr;
#else
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
#endif
@@ -6886,7 +6877,7 @@ ppc_fix_adjustable (fixS *fix)
return 0;
/* Always adjust symbols in debugging sections. */
- if (bfd_get_section_flags (stdoutput, symseg) & SEC_DEBUGGING)
+ if (bfd_section_flags (symseg) & SEC_DEBUGGING)
return 1;
if (ppc_toc_csect != (symbolS *) NULL
@@ -7927,9 +7918,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
#else
/* We want to use the offset within the toc, not the actual VMA
of the symbol. */
- fixP->fx_addnumber =
- - bfd_get_section_vma (stdoutput, S_GET_SEGMENT (fixP->fx_addsy))
- - S_GET_VALUE (ppc_toc_csect);
+ fixP->fx_addnumber = (- bfd_section_vma (S_GET_SEGMENT (fixP->fx_addsy))
+ - S_GET_VALUE (ppc_toc_csect));
/* Set *valP to avoid errors. */
*valP = value;
#endif
diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c
index 12ed8cc834..2e2058c1de 100644
--- a/gas/config/tc-pru.c
+++ b/gas/config/tc-pru.c
@@ -1745,7 +1745,7 @@ md_assemble (char *op_str)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & (-((valueT) 1 << align)));
}
diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c
index 878c03f97e..9160cc027f 100644
--- a/gas/config/tc-rl78.c
+++ b/gas/config/tc-rl78.c
@@ -1520,6 +1520,6 @@ md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c
index 6b19f2f397..5d2e69b8b3 100644
--- a/gas/config/tc-rx.c
+++ b/gas/config/tc-rx.c
@@ -509,7 +509,7 @@ parse_rx_section (char * name)
obj_elf_change_section (name, type, 0, attr, 0, NULL, FALSE, FALSE);
}
- bfd_set_section_alignment (stdoutput, now_seg, align);
+ bfd_set_section_alignment (now_seg, align);
}
static void
@@ -1290,7 +1290,7 @@ md_operand (expressionS * exp ATTRIBUTE_UNUSED)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-s12z.c b/gas/config/tc-s12z.c
index 67e88d277a..be4d4fb095 100644
--- a/gas/config/tc-s12z.c
+++ b/gas/config/tc-s12z.c
@@ -187,7 +187,7 @@ md_atof (int type, char *litP, int *sizeP)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index f74497aa85..a4dae4fb16 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -2084,7 +2084,7 @@ md_atof (int type, char *litp, int *sizep)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c
index 648e0d22eb..1393a18820 100644
--- a/gas/config/tc-score.c
+++ b/gas/config/tc-score.c
@@ -5300,7 +5300,7 @@ s3_pic_need_relax (symbolS *sym, asection *segtype)
linkonce = FALSE;
if (symsec != segtype && ! S_IS_LOCAL (sym))
{
- if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0)
+ if ((bfd_section_flags (symsec) & SEC_LINK_ONCE) != 0)
linkonce = TRUE;
/* The GNU toolchain uses an extension for ELF: a section
@@ -5546,7 +5546,7 @@ static void
s3_score_s_section (int ignore)
{
obj_elf_section (ignore);
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
record_alignment (now_seg, 2);
}
@@ -5569,14 +5569,14 @@ s3_s_change_sec (int sec)
{
case 'r':
seg = subseg_new (s3_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
+ bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
if (strcmp (TARGET_OS, "elf") != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
break;
case 's':
seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
+ bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
if (strcmp (TARGET_OS, "elf") != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
@@ -5686,7 +5686,7 @@ s3_s_score_ent (int aent)
s3_get_number ();
#ifdef BFD_ASSEMBLER
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
@@ -5795,7 +5795,7 @@ s3_s_score_end (int x ATTRIBUTE_UNUSED)
p = NULL;
#ifdef BFD_ASSEMBLER
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
@@ -6128,15 +6128,16 @@ s3_s_score_lcomm (int bytes_p)
if (OUTPUT_FLAVOR == bfd_target_ecoff_flavour || OUTPUT_FLAVOR == bfd_target_elf_flavour)
{
/* For Score and Alpha ECOFF or ELF, small objects are put in .sbss. */
- if ((unsigned)temp <= bfd_get_gp_size (stdoutput))
- {
- bss_seg = subseg_new (".sbss", 1);
- seg_info (bss_seg)->bss = 1;
+ if ((unsigned) temp <= bfd_get_gp_size (stdoutput))
+ {
+ bss_seg = subseg_new (".sbss", 1);
+ seg_info (bss_seg)->bss = 1;
#ifdef BFD_ASSEMBLER
- if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
- as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ()));
+ if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
+ as_warn (_("error setting flags for \".sbss\": %s"),
+ bfd_errmsg (bfd_get_error ()));
#endif
- }
+ }
}
#endif
@@ -6538,8 +6539,8 @@ s3_begin (void)
seg = now_seg;
subseg = now_subseg;
s3_pdr_seg = subseg_new (".pdr", (subsegT) 0);
- (void)bfd_set_section_flags (stdoutput, s3_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
- (void)bfd_set_section_alignment (stdoutput, s3_pdr_seg, 2);
+ bfd_set_section_flags (s3_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+ bfd_set_section_alignment (s3_pdr_seg, 2);
subseg_set (seg, subseg);
if (s3_USE_GLOBAL_POINTER_OPT)
@@ -7076,7 +7077,7 @@ s3_pcrel_from (fixS * fixP)
static valueT
s3_section_align (segT segment ATTRIBUTE_UNUSED, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c
index 90cd5e3962..a615e149c9 100644
--- a/gas/config/tc-score7.c
+++ b/gas/config/tc-score7.c
@@ -5188,7 +5188,7 @@ s7_pic_need_relax (symbolS *sym, asection *segtype)
linkonce = FALSE;
if (symsec != segtype && ! S_IS_LOCAL (sym))
{
- if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0)
+ if ((bfd_section_flags (symsec) & SEC_LINK_ONCE) != 0)
linkonce = TRUE;
/* The GNU toolchain uses an extension for ELF: a section
@@ -5399,7 +5399,7 @@ static void
s7_s_section (int ignore)
{
obj_elf_section (ignore);
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
record_alignment (now_seg, 2);
}
@@ -5422,14 +5422,14 @@ s7_s_change_sec (int sec)
{
case 'r':
seg = subseg_new (s7_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
+ bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA));
if (strcmp (TARGET_OS, "elf") != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
break;
case 's':
seg = subseg_new (".sdata", (subsegT) get_absolute_expression ());
- bfd_set_section_flags (stdoutput, seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
+ bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA);
if (strcmp (TARGET_OS, "elf") != 0)
record_alignment (seg, 4);
demand_empty_rest_of_line ();
@@ -5540,7 +5540,7 @@ s7_s_score_ent (int aent)
s7_get_number ();
#ifdef BFD_ASSEMBLER
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
@@ -5650,7 +5650,7 @@ s7_s_score_end (int x ATTRIBUTE_UNUSED)
p = NULL;
#ifdef BFD_ASSEMBLER
- if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+ if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
maybe_text = 1;
else
maybe_text = 0;
@@ -5993,7 +5993,7 @@ s7_s_score_lcomm (int bytes_p)
bss_seg = subseg_new (".sbss", 1);
seg_info (bss_seg)->bss = 1;
#ifdef BFD_ASSEMBLER
- if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
+ if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ()));
#endif
}
@@ -6152,8 +6152,8 @@ s7_begin (void)
seg = now_seg;
subseg = now_subseg;
s7_pdr_seg = subseg_new (".pdr", (subsegT) 0);
- (void) bfd_set_section_flags (stdoutput, s7_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
- (void) bfd_set_section_alignment (stdoutput, s7_pdr_seg, 2);
+ bfd_set_section_flags (s7_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
+ bfd_set_section_alignment (s7_pdr_seg, 2);
subseg_set (seg, subseg);
if (s7_USE_GLOBAL_POINTER_OPT)
@@ -6628,7 +6628,7 @@ s7_pcrel_from (fixS * fixP)
static valueT
s7_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index c9d47df9f6..c57f066134 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -3162,8 +3162,8 @@ md_section_align (segT seg ATTRIBUTE_UNUSED, valueT size)
#ifdef OBJ_ELF
return size;
#else /* ! OBJ_ELF */
- return ((size + (1 << bfd_get_section_alignment (stdoutput, seg)) - 1)
- & -(1 << bfd_get_section_alignment (stdoutput, seg)));
+ return ((size + (1 << bfd_section_alignment (seg)) - 1)
+ & -(1 << bfd_section_alignment (seg)));
#endif /* ! OBJ_ELF */
}
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index 347db08173..4f7d675f60 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -4001,7 +4001,7 @@ tc_gen_reloc (asection *section, fixS *fixp)
}
/* Nothing is aligned in DWARF debugging sections. */
- if (bfd_get_section_flags (stdoutput, section) & SEC_DEBUGGING)
+ if (bfd_section_flags (section) & SEC_DEBUGGING)
switch (code)
{
case BFD_RELOC_16: code = BFD_RELOC_SPARC_UA16; break;
diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c
index d3e3d8aebc..bdb22e72ba 100644
--- a/gas/config/tc-spu.c
+++ b/gas/config/tc-spu.c
@@ -904,7 +904,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp)
valueT
md_section_align (segT seg, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
valueT mask = ((valueT) 1 << align) - 1;
return (size + mask) & ~mask;
diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c
index f20d93b5b1..b5588b9c46 100644
--- a/gas/config/tc-tic4x.c
+++ b/gas/config/tc-tic4x.c
@@ -1001,9 +1001,9 @@ tic4x_sect (int x ATTRIBUTE_UNUSED)
symbol_set_frag (line_label, frag_now);
}
- if (bfd_get_section_flags (stdoutput, seg) == SEC_NO_FLAGS)
+ if (bfd_section_flags (seg) == SEC_NO_FLAGS)
{
- if (!bfd_set_section_flags (stdoutput, seg, SEC_DATA))
+ if (!bfd_set_section_flags (seg, SEC_DATA))
as_warn (_("Error setting flags for \"%s\": %s"), name,
bfd_errmsg (bfd_get_error ()));
}
@@ -1104,7 +1104,7 @@ tic4x_usect (int x ATTRIBUTE_UNUSED)
S_SET_VALUE (line_label, frag_now_fix ());
}
seg_info (seg)->bss = 1; /* Uninitialised data. */
- if (!bfd_set_section_flags (stdoutput, seg, SEC_ALLOC))
+ if (!bfd_set_section_flags (seg, SEC_ALLOC))
as_warn (_("Error setting flags for \"%s\": %s"), name,
bfd_errmsg (bfd_get_error ()));
tic4x_seg_alloc (name, seg, size, line_label);
diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c
index 3e1d32a02e..72c8cf3967 100644
--- a/gas/config/tc-tic54x.c
+++ b/gas/config/tc-tic54x.c
@@ -1391,7 +1391,7 @@ tic54x_usect (int x ATTRIBUTE_UNUSED)
blocking_flag = alignment_flag = 0;
seg = subseg_new (name, 0);
- flags = bfd_get_section_flags (stdoutput, seg) | SEC_ALLOC;
+ flags = bfd_section_flags (seg) | SEC_ALLOC;
if (alignment_flag)
{
@@ -1420,7 +1420,7 @@ tic54x_usect (int x ATTRIBUTE_UNUSED)
if (blocking_flag)
flags |= SEC_TIC54X_BLOCK;
- if (!bfd_set_section_flags (stdoutput, seg, flags))
+ if (!bfd_set_section_flags (seg, flags))
as_warn (_("Error setting flags for \"%s\": %s"), name,
bfd_errmsg (bfd_get_error ()));
@@ -3977,12 +3977,12 @@ static void
emit_insn (tic54x_insn *insn)
{
int i;
- flagword oldflags = bfd_get_section_flags (stdoutput, now_seg);
+ flagword oldflags = bfd_section_flags (now_seg);
flagword flags = oldflags | SEC_CODE;
- if (! bfd_set_section_flags (stdoutput, now_seg, flags))
+ if (!bfd_set_section_flags (now_seg, flags))
as_warn (_("error setting flags for \"%s\": %s"),
- bfd_section_name (stdoutput, now_seg),
+ bfd_section_name (now_seg),
bfd_errmsg (bfd_get_error ()));
for (i = 0; i < insn->words; i++)
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
index 108c2d4259..0433d9e409 100644
--- a/gas/config/tc-tic6x.c
+++ b/gas/config/tc-tic6x.c
@@ -781,7 +781,7 @@ md_begin (void)
/* This is copied from perform_an_assembly_pass. */
applicable = bfd_applicable_section_flags (stdoutput);
- bfd_set_section_flags (stdoutput, sbss_section, applicable & SEC_ALLOC);
+ bfd_set_section_flags (sbss_section, applicable & SEC_ALLOC);
subseg_set (seg, subseg);
@@ -4483,7 +4483,7 @@ md_section_align (segT segment ATTRIBUTE_UNUSED,
{
/* Round up section sizes to ensure that text sections consist of
whole fetch packets. */
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
}
diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c
index e840e5dc85..788a9f3b46 100644
--- a/gas/config/tc-tilegx.c
+++ b/gas/config/tc-tilegx.c
@@ -262,7 +262,7 @@ md_begin (void)
as_warn (_("Could not set architecture and machine"));
/* Guarantee text section is aligned. */
- bfd_set_section_alignment (stdoutput, text_section,
+ bfd_set_section_alignment (text_section,
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
require_canonical_reg_names = 1;
@@ -948,8 +948,8 @@ tilegx_flush_bundle (void)
/* If the section seems to have no alignment set yet, go ahead and
make it large enough to hold code. */
- if (bfd_get_section_alignment (stdoutput, now_seg) == 0)
- bfd_set_section_alignment (stdoutput, now_seg,
+ if (bfd_section_alignment (now_seg) == 0)
+ bfd_set_section_alignment (now_seg,
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
for (j = 0; j < current_bundle_index; j++)
diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c
index 146e270f7d..1c98a93358 100644
--- a/gas/config/tc-tilepro.c
+++ b/gas/config/tc-tilepro.c
@@ -207,7 +207,7 @@ md_begin (void)
int i;
/* Guarantee text section is aligned. */
- bfd_set_section_alignment (stdoutput, text_section,
+ bfd_set_section_alignment (text_section,
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
require_canonical_reg_names = 1;
@@ -838,8 +838,8 @@ tilepro_flush_bundle (void)
/* If the section seems to have no alignment set yet, go ahead and
make it large enough to hold code. */
- if (bfd_get_section_alignment (stdoutput, now_seg) == 0)
- bfd_set_section_alignment (stdoutput, now_seg,
+ if (bfd_section_alignment (now_seg) == 0)
+ bfd_set_section_alignment (now_seg,
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
for (j = 0; j < current_bundle_index; j++)
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 12d5846487..dfb43cbc16 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -229,7 +229,7 @@ do_v850_seg (int i, subsegT sub)
else
{
seg->s = subseg_new (seg->name, sub);
- bfd_set_section_flags (stdoutput, seg->s, seg->flags);
+ bfd_set_section_flags (seg->s, seg->flags);
if ((seg->flags & SEC_LOAD) == 0)
seg_info (seg->s)->bss = 1;
}
@@ -1878,7 +1878,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
@@ -3740,8 +3740,8 @@ v850_md_end (void)
enum v850_notes id;
note_sec = subseg_new (V850_NOTE_SECNAME, 0);
- bfd_set_section_flags (stdoutput, note_sec, SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE);
- bfd_set_section_alignment (stdoutput, note_sec, 2);
+ bfd_set_section_flags (note_sec, SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE);
+ bfd_set_section_alignment (note_sec, 2);
/* Provide default values for all of the notes. */
for (id = V850_NOTE_ALIGNMENT; id <= NUM_V850_NOTES; id++)
diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c
index 6886311230..fbf59c9e01 100644
--- a/gas/config/tc-visium.c
+++ b/gas/config/tc-visium.c
@@ -222,7 +222,7 @@ visium_rdata (int xxx)
valueT
md_section_align (asection *seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c
index c57611c5a7..3dc42f91df 100644
--- a/gas/config/tc-wasm32.c
+++ b/gas/config/tc-wasm32.c
@@ -177,7 +177,7 @@ md_begin (void)
valueT
md_section_align (asection * seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-xc16x.c b/gas/config/tc-xc16x.c
index 00bdb8316e..23b9e687c8 100644
--- a/gas/config/tc-xc16x.c
+++ b/gas/config/tc-xc16x.c
@@ -234,7 +234,7 @@ md_atof (int type, char *litP, int *sizeP)
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c
index b3c124398c..4f92c24d0d 100644
--- a/gas/config/tc-xgate.c
+++ b/gas/config/tc-xgate.c
@@ -466,7 +466,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
valueT
md_section_align (asection * seg, valueT addr)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
return ((addr + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-xstormy16.c b/gas/config/tc-xstormy16.c
index fb874c58f9..1c708b6362 100644
--- a/gas/config/tc-xstormy16.c
+++ b/gas/config/tc-xstormy16.c
@@ -277,7 +277,7 @@ xstormy16_cgen_record_fixup_exp (fragS * frag,
valueT
md_section_align (segT segment, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, segment);
+ int align = bfd_section_alignment (segment);
return ((size + (1 << align) - 1) & -(1 << align));
}
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 320e7afca5..c68128e289 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -4115,7 +4115,7 @@ get_is_linkonce_section (bfd *abfd ATTRIBUTE_UNUSED, segT sec)
{
flagword flags, link_once_flags;
- flags = bfd_get_section_flags (abfd, sec);
+ flags = bfd_section_flags (sec);
link_once_flags = (flags & SEC_LINK_ONCE);
/* Flags might not be set yet. */
@@ -4980,7 +4980,7 @@ xtensa_mark_frags_for_org (void)
segment_info_type *seginfo;
fragS *fragP;
flagword flags;
- flags = bfd_get_section_flags (stdoutput, sec);
+ flags = bfd_section_flags (sec);
if (flags & SEC_DEBUGGING)
continue;
if (!(flags & SEC_ALLOC))
@@ -5025,7 +5025,7 @@ xtensa_find_unmarked_state_frags (void)
segment_info_type *seginfo;
fragS *fragP;
flagword flags;
- flags = bfd_get_section_flags (stdoutput, sec);
+ flags = bfd_section_flags (sec);
if (flags & SEC_DEBUGGING)
continue;
if (!(flags & SEC_ALLOC))
@@ -5073,7 +5073,7 @@ xtensa_find_unaligned_branch_targets (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
void *unused ATTRIBUTE_UNUSED)
{
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
segment_info_type *seginfo = seg_info (sec);
fragS *frag = seginfo->frchainP->frch_root;
@@ -5112,7 +5112,7 @@ xtensa_find_unaligned_loops (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec,
void *unused ATTRIBUTE_UNUSED)
{
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
segment_info_type *seginfo = seg_info (sec);
fragS *frag = seginfo->frchainP->frch_root;
xtensa_isa isa = xtensa_default_isa;
@@ -8941,7 +8941,7 @@ xtensa_add_config_info (void)
int sz;
info_sec = subseg_new (".xtensa.info", 0);
- bfd_set_section_flags (stdoutput, info_sec, SEC_HAS_CONTENTS | SEC_READONLY);
+ bfd_set_section_flags (info_sec, SEC_HAS_CONTENTS | SEC_READONLY);
data = XNEWVEC (char, 100);
sprintf (data, "USE_ABSOLUTE_LITERALS=%d\nABI=%d\n",
@@ -11682,8 +11682,8 @@ cache_literal_section (bfd_boolean use_abs_literals)
elf_group_name (seg) = group_name;
- bfd_set_section_flags (stdoutput, seg, flags);
- bfd_set_section_alignment (stdoutput, seg, 2);
+ bfd_set_section_flags (seg, flags);
+ bfd_set_section_alignment (seg, 2);
}
*pcached = seg;
@@ -11814,7 +11814,7 @@ xtensa_create_property_segments (frag_predicate property_function,
num_recs++;
rec_size = num_recs * 8;
- bfd_set_section_size (stdoutput, sec, rec_size);
+ bfd_set_section_size (sec, rec_size);
if (num_recs)
{
@@ -11911,7 +11911,7 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
num_recs++;
rec_size = num_recs * (8 + 4);
- bfd_set_section_size (stdoutput, sec, rec_size);
+ bfd_set_section_size (sec, rec_size);
/* elf_section_data (sec)->this_hdr.sh_entsize = 12; */
if (num_recs)
@@ -11955,7 +11955,7 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
static bfd_boolean
exclude_section_from_property_tables (segT sec)
{
- flagword flags = bfd_get_section_flags (stdoutput, sec);
+ flagword flags = bfd_section_flags (sec);
/* Sections that don't contribute to the memory footprint are excluded. */
if ((flags & SEC_DEBUGGING)
diff --git a/gas/config/tc-z8k.c b/gas/config/tc-z8k.c
index 9cb41a3cc9..68e1b761cd 100644
--- a/gas/config/tc-z8k.c
+++ b/gas/config/tc-z8k.c
@@ -1385,7 +1385,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
valueT
md_section_align (segT seg, valueT size)
{
- int align = bfd_get_section_alignment (stdoutput, seg);
+ int align = bfd_section_alignment (seg);
valueT mask = ((valueT) 1 << align) - 1;
return (size + mask) & ~mask;
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index f30734d384..388123fd24 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -232,7 +232,7 @@ get_debugseg_name (segT seg, const char *base_name)
if (!seg)
return concat (base_name, NULL);
- name = bfd_get_section_name (stdoutput, seg);
+ name = bfd_section_name (seg);
if (name == NULL || *name == 0)
return concat (base_name, NULL);
@@ -281,7 +281,7 @@ is_now_linkonce_segment (void)
if (compact_eh)
return now_seg;
- if ((bfd_get_section_flags (stdoutput, now_seg)
+ if ((bfd_section_flags (now_seg)
& (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
| SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
| SEC_LINK_DUPLICATES_SAME_CONTENTS)) != 0)
@@ -306,16 +306,16 @@ make_debug_seg (segT cseg, char *name, int sflags)
if (!cseg)
flags = 0;
else
- flags = bfd_get_section_flags (stdoutput, cseg)
- & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
- | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
- | SEC_LINK_DUPLICATES_SAME_CONTENTS);
+ flags = (bfd_section_flags (cseg)
+ & (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
+ | SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE
+ | SEC_LINK_DUPLICATES_SAME_CONTENTS));
/* Add standard section flags. */
flags |= sflags;
/* Apply possibly linked once flags to new generated segment, too. */
- if (!bfd_set_section_flags (stdoutput, r, flags))
+ if (!bfd_set_section_flags (r, flags))
as_bad (_("bfd_set_section_flags: %s"),
bfd_errmsg (bfd_get_error ()));
@@ -1359,7 +1359,7 @@ get_cfi_seg (segT cseg, const char *base, flagword flags, int align)
else
{
cseg = subseg_new (base, 0);
- bfd_set_section_flags (stdoutput, cseg, flags);
+ bfd_set_section_flags (cseg, flags);
}
record_alignment (cseg, align);
return cseg;
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 5f804f1541..90b47b02fc 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -657,7 +657,7 @@ dwarf2_emit_label (symbolS *label)
return;
if (S_GET_SEGMENT (label) != now_seg)
return;
- if (!(bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE))
+ if (!(bfd_section_flags (now_seg) & SEC_CODE))
return;
if (files_in_use == 0 && debug_type != DEBUG_DWARF2)
return;
@@ -1594,7 +1594,7 @@ process_entries (segT seg, struct line_entry *e)
that all of the sub-sections are merged into a proper
.debug_line section before a debugger sees them. */
- sec_name = bfd_get_section_name (stdoutput, seg);
+ sec_name = bfd_section_name (seg);
if (strcmp (sec_name, ".text") != 0)
{
name = concat (".debug_line", sec_name, (char *) NULL);
@@ -2238,7 +2238,7 @@ dwarf2_finish (void)
/* Create and switch to the line number section. */
line_seg = subseg_new (".debug_line", 0);
- bfd_set_section_flags (stdoutput, line_seg, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (line_seg, SEC_READONLY | SEC_DEBUGGING);
/* For each subsection, chain the debug entries together. */
for (s = all_segs; s; s = s->next)
@@ -2284,15 +2284,11 @@ dwarf2_finish (void)
aranges_seg = subseg_new (".debug_aranges", 0);
str_seg = subseg_new (".debug_str", 0);
- bfd_set_section_flags (stdoutput, info_seg,
- SEC_READONLY | SEC_DEBUGGING);
- bfd_set_section_flags (stdoutput, abbrev_seg,
- SEC_READONLY | SEC_DEBUGGING);
- bfd_set_section_flags (stdoutput, aranges_seg,
- SEC_READONLY | SEC_DEBUGGING);
- bfd_set_section_flags (stdoutput, str_seg,
- (SEC_READONLY | SEC_DEBUGGING
- | SEC_MERGE | SEC_STRINGS));
+ bfd_set_section_flags (info_seg, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (abbrev_seg, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (aranges_seg, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (str_seg, (SEC_READONLY | SEC_DEBUGGING
+ | SEC_MERGE | SEC_STRINGS));
str_seg->entsize = 1;
record_alignment (aranges_seg, ffs (2 * sizeof_address) - 1);
@@ -2302,8 +2298,7 @@ dwarf2_finish (void)
else
{
ranges_seg = subseg_new (".debug_ranges", 0);
- bfd_set_section_flags (stdoutput, ranges_seg,
- SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (ranges_seg, SEC_READONLY | SEC_DEBUGGING);
record_alignment (ranges_seg, ffs (2 * sizeof_address) - 1);
out_debug_ranges (ranges_seg);
}
diff --git a/gas/ecoff.c b/gas/ecoff.c
index 09e8f0e6cf..bacc89fe3a 100644
--- a/gas/ecoff.c
+++ b/gas/ecoff.c
@@ -3700,8 +3700,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend,
&& first_proc_ptr != (proc_t *) NULL
&& local_first_lineno != (lineno_list_t *) NULL
&& ((S_GET_VALUE (first_proc_ptr->sym->as_sym)
- + bfd_get_section_vma (stdoutput,
- S_GET_SEGMENT (first_proc_ptr->sym->as_sym)))
+ + bfd_section_vma (S_GET_SEGMENT (first_proc_ptr->sym->as_sym)))
!= 0))
{
first.file = local_first_lineno->file;
@@ -3981,8 +3980,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend,
else
sym_ptr->ecoff_sym.asym.value =
(S_GET_VALUE (as_sym)
- + bfd_get_section_vma (stdoutput,
- S_GET_SEGMENT (as_sym))
+ + bfd_section_vma (S_GET_SEGMENT (as_sym))
+ sym_ptr->addend);
sym_ptr->ecoff_sym.weakext = S_IS_WEAK (as_sym);
@@ -4310,8 +4308,7 @@ ecoff_build_procs (const struct ecoff_debug_swap *backend,
adr_sym = proc_ptr->sym->as_sym;
adr = (S_GET_VALUE (adr_sym)
- + bfd_get_section_vma (stdoutput,
- S_GET_SEGMENT (adr_sym)));
+ + bfd_section_vma (S_GET_SEGMENT (adr_sym)));
if (first)
{
/* This code used to force the adr of the very
diff --git a/gas/read.c b/gas/read.c
index 58d79b2787..e53dd0232d 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -742,7 +742,7 @@ assemble_one (char *line)
static bfd_boolean
in_bss (void)
{
- flagword flags = bfd_get_section_flags (stdoutput, now_seg);
+ flagword flags = bfd_section_flags (now_seg);
return (flags & SEC_ALLOC) && !(flags & (SEC_LOAD | SEC_HAS_CONTENTS));
}
@@ -2419,7 +2419,7 @@ s_linkonce (int ignore ATTRIBUTE_UNUSED)
if ((bfd_applicable_section_flags (stdoutput) & SEC_LINK_ONCE) == 0)
as_warn (_(".linkonce is not supported for this object file format"));
- flags = bfd_get_section_flags (stdoutput, now_seg);
+ flags = bfd_section_flags (now_seg);
flags |= SEC_LINK_ONCE;
switch (type)
{
@@ -2438,7 +2438,7 @@ s_linkonce (int ignore ATTRIBUTE_UNUSED)
flags |= SEC_LINK_DUPLICATES_SAME_CONTENTS;
break;
}
- if (!bfd_set_section_flags (stdoutput, now_seg, flags))
+ if (!bfd_set_section_flags (now_seg, flags))
as_bad (_("bfd_set_section_flags: %s"),
bfd_errmsg (bfd_get_error ()));
}
@@ -2464,7 +2464,7 @@ bss_alloc (symbolS *symbolP, addressT size, unsigned int align)
{
bss_seg = subseg_new (".sbss", 1);
seg_info (bss_seg)->bss = 1;
- if (!bfd_set_section_flags (stdoutput, bss_seg, SEC_ALLOC))
+ if (!bfd_set_section_flags (bss_seg, SEC_ALLOC))
as_warn (_("error setting flags for \".sbss\": %s"),
bfd_errmsg (bfd_get_error ()));
}
@@ -2957,9 +2957,9 @@ s_mri_sect (char *type ATTRIBUTE_UNUSED)
flags = SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_READONLY | SEC_ROM;
if (flags != SEC_NO_FLAGS)
{
- if (!bfd_set_section_flags (stdoutput, seg, flags))
+ if (!bfd_set_section_flags (seg, flags))
as_warn (_("error setting flags for \"%s\": %s"),
- bfd_section_name (stdoutput, seg),
+ bfd_section_name (seg),
bfd_errmsg (bfd_get_error ()));
}
}
diff --git a/gas/stabs.c b/gas/stabs.c
index 64811c1bb1..0217c422ec 100644
--- a/gas/stabs.c
+++ b/gas/stabs.c
@@ -109,7 +109,7 @@ get_stab_string_offset (const char *string, const char *stabstr_secname,
p = frag_more (1);
*p = 0;
retval = seg_info (seg)->stabu.stab_string_size = 1;
- bfd_set_section_flags (stdoutput, seg, SEC_READONLY | SEC_DEBUGGING);
+ bfd_set_section_flags (seg, SEC_READONLY | SEC_DEBUGGING);
}
if (length > 0)
@@ -336,7 +336,7 @@ s_stab_generic (int what,
if (! seg_info (seg)->hadone)
{
- bfd_set_section_flags (stdoutput, seg,
+ bfd_set_section_flags (seg,
SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
#ifdef INIT_STAB_SECTION
INIT_STAB_SECTION (seg);
diff --git a/gas/subsegs.c b/gas/subsegs.c
index a66af2d3f6..d438a10c69 100644
--- a/gas/subsegs.c
+++ b/gas/subsegs.c
@@ -65,7 +65,7 @@ subseg_change (segT seg, int subseg)
{
seginfo = XCNEW (segment_info_type);
seginfo->bfd_section = seg;
- bfd_set_section_userdata (stdoutput, seg, seginfo);
+ bfd_set_section_userdata (seg, seginfo);
}
}
\f
@@ -146,9 +146,7 @@ subseg_get (const char *segname, int force_new)
{
segT secptr;
segment_info_type *seginfo;
- const char *now_seg_name = (now_seg
- ? bfd_get_section_name (stdoutput, now_seg)
- : 0);
+ const char *now_seg_name = now_seg ? bfd_section_name (now_seg) : 0;
if (!force_new
&& now_seg_name
@@ -167,7 +165,7 @@ subseg_get (const char *segname, int force_new)
secptr->output_section = secptr;
seginfo = XCNEW (segment_info_type);
seginfo->bfd_section = secptr;
- bfd_set_section_userdata (stdoutput, secptr, seginfo);
+ bfd_set_section_userdata (secptr, seginfo);
}
return secptr;
}
@@ -260,7 +258,7 @@ section_symbol (segT sec)
int
subseg_text_p (segT sec)
{
- return (bfd_get_section_flags (stdoutput, sec) & SEC_CODE) != 0;
+ return (bfd_section_flags (sec) & SEC_CODE) != 0;
}
/* Return non zero if SEC has at least one byte of data. It is
diff --git a/gas/subsegs.h b/gas/subsegs.h
index d853f453ae..2a956026fe 100644
--- a/gas/subsegs.h
+++ b/gas/subsegs.h
@@ -112,7 +112,7 @@ typedef struct segment_info_struct {
#define seg_info(sec) \
- ((segment_info_type *) bfd_get_section_userdata (stdoutput, sec))
+ ((segment_info_type *) bfd_section_userdata (sec))
extern symbolS *section_symbol (segT);
diff --git a/gas/write.c b/gas/write.c
index e9a17e4468..9b5ae6ff32 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -359,8 +359,8 @@ record_alignment (/* Segment to which alignment pertains. */
if (seg == absolute_section)
return;
- if (align > bfd_get_section_alignment (stdoutput, seg))
- bfd_set_section_alignment (stdoutput, seg, align);
+ if (align > bfd_section_alignment (seg))
+ bfd_set_section_alignment (seg, align);
}
int
@@ -369,7 +369,7 @@ get_recorded_alignment (segT seg)
if (seg == absolute_section)
return 0;
- return bfd_get_section_alignment (stdoutput, seg);
+ return bfd_section_alignment (seg);
}
/* Reset the section indices after removing the gas created sections. */
@@ -555,7 +555,7 @@ relax_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx)
}
static void
-size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
+size_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx ATTRIBUTE_UNUSED)
{
flagword flags;
fragS *fragp;
@@ -580,8 +580,8 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
else
size = 0;
- flags = bfd_get_section_flags (abfd, sec);
- if (size == 0 && bfd_get_section_size (sec) != 0 &&
+ flags = bfd_section_flags (sec);
+ if (size == 0 && bfd_section_size (sec) != 0 &&
(flags & SEC_HAS_CONTENTS) != 0)
return;
@@ -589,7 +589,7 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
flags |= SEC_HAS_CONTENTS;
flags &= ~SEC_RELOC;
- x = bfd_set_section_flags (abfd, sec, flags);
+ x = bfd_set_section_flags (sec, flags);
gas_assert (x);
/* If permitted, allow the backend to pad out the section
@@ -598,7 +598,7 @@ size_seg (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
newsize = size;
else
newsize = md_section_align (sec, size);
- x = bfd_set_section_size (abfd, sec, newsize);
+ x = bfd_set_section_size (sec, newsize);
gas_assert (x);
/* If the size had to be rounded up, add some padding in the last
@@ -1215,7 +1215,8 @@ get_frag_for_reloc (fragS *last_frag,
}
static void
-write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
+write_relocs (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
+ void *xxx ATTRIBUTE_UNUSED)
{
segment_info_type *seginfo = seg_info (sec);
unsigned int n;
@@ -1345,9 +1346,9 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
if (n)
{
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
flags |= SEC_RELOC;
- bfd_set_section_flags (abfd, sec, flags);
+ bfd_set_section_flags (sec, flags);
bfd_set_reloc (stdoutput, sec, relocs, n);
}
@@ -1433,7 +1434,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
char *header;
struct z_stream_s *strm;
int x;
- flagword flags = bfd_get_section_flags (abfd, sec);
+ flagword flags = bfd_section_flags (sec);
unsigned int header_size, compression_header_size;
if (seginfo == NULL
@@ -1441,7 +1442,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
|| (flags & (SEC_ALLOC | SEC_HAS_CONTENTS)) == SEC_ALLOC)
return;
- section_name = bfd_get_section_name (stdoutput, sec);
+ section_name = bfd_section_name (sec);
if (strncmp (section_name, ".debug_", 7) != 0)
return;
@@ -1565,12 +1566,12 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
/* Update the section size and its name. */
bfd_update_compression_header (abfd, (bfd_byte *) header, sec);
- x = bfd_set_section_size (abfd, sec, compressed_size);
+ x = bfd_set_section_size (sec, compressed_size);
gas_assert (x);
if (!compression_header_size)
{
compressed_name = concat (".z", section_name + 1, (char *) NULL);
- bfd_section_name (stdoutput, sec) = compressed_name;
+ bfd_rename_section (sec, compressed_name);
}
}
@@ -1599,7 +1600,7 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
/* Write out the frags. */
if (seginfo == NULL
- || !(bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS))
+ || !(bfd_section_flags (sec) & SEC_HAS_CONTENTS))
return;
for (f = seginfo->frchainP->frch_root;
@@ -1815,7 +1816,7 @@ subsegs_finish_section (asection *s)
do_not_pad_sections_to_alignment = 1;
alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP);
- if ((bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE)
+ if ((bfd_section_flags (now_seg) & SEC_MERGE)
&& now_seg->entsize)
{
unsigned int entsize = now_seg->entsize;
@@ -1875,7 +1876,7 @@ create_obj_attrs_section (void)
s = subseg_new (name, 0);
elf_section_type (s)
= get_elf_backend_data (stdoutput)->obj_attrs_section_type;
- bfd_set_section_flags (stdoutput, s, SEC_READONLY | SEC_DATA);
+ bfd_set_section_flags (s, SEC_READONLY | SEC_DATA);
frag_now_fix ();
p = frag_more (size);
bfd_elf_set_obj_attr_contents (stdoutput, (bfd_byte *)p, size);
@@ -1959,9 +1960,8 @@ maybe_generate_build_notes (void)
/* Create a GNU Build Attribute section. */
sec = subseg_new (GNU_BUILD_ATTRS_SECTION_NAME, FALSE);
elf_section_type (sec) = SHT_NOTE;
- bfd_set_section_flags (stdoutput, sec,
- SEC_READONLY | SEC_HAS_CONTENTS | SEC_DATA);
- bfd_set_section_alignment (stdoutput, sec, 2);
+ bfd_set_section_flags (sec, SEC_READONLY | SEC_HAS_CONTENTS | SEC_DATA);
+ bfd_set_section_alignment (sec, 2);
/* Work out the size of the notes that we will create,
and the relocation we should use. */
@@ -2041,7 +2041,7 @@ maybe_generate_build_notes (void)
/* ...and another one to install the end address. */
create_note_reloc (sec, sym, total_size, desc2_offset, desc_reloc,
- bfd_get_section_size (bsym->section),
+ bfd_section_size (bsym->section),
note);
total_size += note_size;
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 47549ad0b9..7057e37e8d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
+ * coff-pe-read.c, * coffread.c, * corelow.c, * dbxread.c,
+ * dicos-tdep.c, * dwarf2-frame.c, * dwarf2read.c, * elfread.c,
+ * exec.c, * fbsd-tdep.c, * gcore.c, * gdb_bfd.c, * gdb_bfd.h,
+ * hppa-tdep.c, * i386-cygwin-tdep.c, * i386-fbsd-tdep.c,
+ * i386-linux-tdep.c, * jit.c, * linux-tdep.c, * machoread.c,
+ * maint.c, * mdebugread.c, * minidebug.c, * mips-linux-tdep.c,
+ * mips-sde-tdep.c, * mips-tdep.c, * mipsread.c, * nto-tdep.c,
+ * objfiles.c, * objfiles.h, * osabi.c, * ppc-linux-tdep.c,
+ * ppc64-tdep.c, * record-btrace.c, * record-full.c, * remote.c,
+ * rs6000-aix-tdep.c, * rs6000-tdep.c, * s390-linux-tdep.c,
+ * s390-tdep.c, * solib-aix.c, * solib-dsbt.c, * solib-frv.c,
+ * solib-spu.c, * solib-svr4.c, * solib-target.c,
+ * spu-linux-nat.c, * spu-tdep.c, * symfile-mem.c, * symfile.c,
+ * symmisc.c, * symtab.c, * target.c, * windows-nat.c,
+ * xcoffread.c, * cli/cli-dump.c, * compile/compile-object-load.c,
+ * mi/mi-interp.c: Update throughout for bfd section macro and
+ function changes.
+ * gcore (gcore_create_callback): Use bfd_set_section_lma.
+ * spu-tdep.c (spu_overlay_new_objfile): Likewise.
+
2019-09-18 Tom Tromey <tom@tromey.com>
* NEWS: Add entry.
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 831e62fb86..a375c3b137 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -452,7 +452,7 @@ aarch64_linux_core_read_vq (struct gdbarch *gdbarch, bfd *abfd)
return 0;
}
- size_t size = bfd_section_size (abfd, sve_section);
+ size_t size = bfd_section_size (sve_section);
/* Check extended state size. */
if (size < SVE_HEADER_SIZE)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 5c494c8ed2..e17550fed7 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -2009,12 +2009,11 @@ arm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
struct obj_section *osect;
ALL_OBJFILE_OSECTIONS (objfile, osect)
- if (bfd_get_section_flags (objfile->obfd,
- osect->the_bfd_section) & SEC_ALLOC)
+ if (bfd_section_flags (osect->the_bfd_section) & SEC_ALLOC)
{
bfd_vma start, size;
- start = bfd_get_section_vma (objfile->obfd, osect->the_bfd_section);
- size = bfd_get_section_size (osect->the_bfd_section);
+ start = bfd_section_vma (osect->the_bfd_section);
+ size = bfd_section_size (osect->the_bfd_section);
if (start <= vma && vma < start + size)
return osect;
@@ -2054,8 +2053,8 @@ arm_exidx_new_objfile (struct objfile *objfile)
gdb::byte_vector exidx_data;
if (exidx)
{
- exidx_vma = bfd_section_vma (objfile->obfd, exidx);
- exidx_data.resize (bfd_get_section_size (exidx));
+ exidx_vma = bfd_section_vma (exidx);
+ exidx_data.resize (bfd_section_size (exidx));
if (!bfd_get_section_contents (objfile->obfd, exidx,
exidx_data.data (), 0,
@@ -2067,8 +2066,8 @@ arm_exidx_new_objfile (struct objfile *objfile)
gdb::byte_vector extab_data;
if (extab)
{
- extab_vma = bfd_section_vma (objfile->obfd, extab);
- extab_data.resize (bfd_get_section_size (extab));
+ extab_vma = bfd_section_vma (extab);
+ extab_data.resize (bfd_section_size (extab));
if (!bfd_get_section_contents (objfile->obfd, extab,
extab_data.data (), 0,
@@ -2100,7 +2099,7 @@ arm_exidx_new_objfile (struct objfile *objfile)
sec = arm_obj_section_from_vma (objfile, idx);
if (sec == NULL)
continue;
- idx -= bfd_get_section_vma (objfile->obfd, sec->the_bfd_section);
+ idx -= bfd_section_vma (sec->the_bfd_section);
/* Determine address of exception table entry. */
if (val == 1)
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 9798ab1a06..136d53ffe1 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -1116,7 +1116,7 @@ auto_load_section_scripts (struct objfile *objfile, const char *section_name)
scripts_sect = bfd_get_section_by_name (abfd, section_name);
if (scripts_sect == NULL
- || (bfd_get_section_flags (abfd, scripts_sect) & SEC_HAS_CONTENTS) == 0)
+ || (bfd_section_flags (scripts_sect) & SEC_HAS_CONTENTS) == 0)
return;
if (!bfd_get_full_section_contents (abfd, scripts_sect, &data))
@@ -1128,7 +1128,7 @@ auto_load_section_scripts (struct objfile *objfile, const char *section_name)
char *p = (char *) data;
source_section_scripts (objfile, section_name, p,
- p + bfd_get_section_size (scripts_sect));
+ p + bfd_section_size (scripts_sect));
}
}
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 143d02ab88..74e0057d4a 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -163,12 +163,10 @@ dump_bfd_file (const char *filename, const char *mode,
gdb_bfd_ref_ptr obfd (bfd_openw_or_error (filename, target, mode));
osection = bfd_make_section_anyway (obfd.get (), ".newsec");
- bfd_set_section_size (obfd.get (), osection, len);
- bfd_set_section_vma (obfd.get (), osection, vaddr);
- bfd_set_section_alignment (obfd.get (), osection, 0);
- bfd_set_section_flags (obfd.get (), osection, (SEC_HAS_CONTENTS
- | SEC_ALLOC
- | SEC_LOAD));
+ bfd_set_section_size (osection, len);
+ bfd_set_section_vma (osection, vaddr);
+ bfd_set_section_alignment (osection, 0);
+ bfd_set_section_flags (osection, (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD));
osection->entsize = 0;
if (!bfd_set_section_contents (obfd.get (), osection, buf, 0, len))
warning (_("writing dump file '%s' (%s)"), filename,
@@ -403,15 +401,15 @@ static void
restore_section_callback (bfd *ibfd, asection *isec, void *args)
{
struct callback_data *data = (struct callback_data *) args;
- bfd_vma sec_start = bfd_section_vma (ibfd, isec);
- bfd_size_type size = bfd_section_size (ibfd, isec);
+ bfd_vma sec_start = bfd_section_vma (isec);
+ bfd_size_type size = bfd_section_size (isec);
bfd_vma sec_end = sec_start + size;
bfd_size_type sec_offset = 0;
bfd_size_type sec_load_count = size;
int ret;
/* Ignore non-loadable sections, eg. from elf files. */
- if (!(bfd_get_section_flags (ibfd, isec) & SEC_LOAD))
+ if (!(bfd_section_flags (isec) & SEC_LOAD))
return;
/* Does the section overlap with the desired restore range? */
@@ -420,7 +418,7 @@ restore_section_callback (bfd *ibfd, asection *isec, void *args)
{
/* No, no useable data in this section. */
printf_filtered (_("skipping section %s...\n"),
- bfd_section_name (ibfd, isec));
+ bfd_section_name (isec));
return;
}
@@ -441,7 +439,7 @@ restore_section_callback (bfd *ibfd, asection *isec, void *args)
bfd_errmsg (bfd_get_error ()));
printf_filtered ("Restoring section %s (0x%lx to 0x%lx)",
- bfd_section_name (ibfd, isec),
+ bfd_section_name (isec),
(unsigned long) sec_start,
(unsigned long) sec_end);
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c
index 9f7384bc14..fe74d26cab 100644
--- a/gdb/coff-pe-read.c
+++ b/gdb/coff-pe-read.c
@@ -136,7 +136,7 @@ get_section_vmas (bfd *abfd, asection *sectp, void *context)
bfd_get_section_vma() within memory. Store the offset. */
sections[sectix].vma_offset
- = bfd_get_section_vma (abfd, sectp) - sections[sectix].rva_start;
+ = bfd_section_vma (sectp) - sections[sectix].rva_start;
}
}
\f
diff --git a/gdb/coffread.c b/gdb/coffread.c
index a70461271e..c44b69069e 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -222,15 +222,15 @@ coff_locate_sections (bfd *abfd, asection *sectp, void *csip)
const char *name;
csi = (struct coff_symfile_info *) csip;
- name = bfd_get_section_name (abfd, sectp);
+ name = bfd_section_name (sectp);
if (strcmp (name, ".text") == 0)
{
- csi->textaddr = bfd_section_vma (abfd, sectp);
- csi->textsize += bfd_section_size (abfd, sectp);
+ csi->textaddr = bfd_section_vma (sectp);
+ csi->textsize += bfd_section_size (sectp);
}
else if (startswith (name, ".text"))
{
- csi->textsize += bfd_section_size (abfd, sectp);
+ csi->textsize += bfd_section_size (sectp);
}
else if (strcmp (name, ".stabstr") == 0)
{
@@ -307,7 +307,7 @@ cs_section_address (struct coff_symbol *cs, bfd *abfd)
args.resultp = §
bfd_map_over_sections (abfd, find_targ_sec, &args);
if (sect != NULL)
- addr = bfd_get_section_vma (abfd, sect);
+ addr = bfd_section_vma (sect);
return addr;
}
@@ -692,7 +692,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
bfd_get_section_contents? */
bfd_seek (abfd, abfd->where, 0);
- stabstrsize = bfd_section_size (abfd, info->stabstrsect);
+ stabstrsize = bfd_section_size (info->stabstrsect);
coffstab_build_psymtabs (objfile,
info->textaddr, info->textsize,
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index 3a765a345b..a30c557303 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -99,30 +99,30 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
if (sect->output_section == NULL)
sect->output_section = sect;
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
return;
/* Make the memory always readable. */
prot = GDB_MMAP_PROT_READ;
- if ((bfd_get_section_flags (abfd, sect) & SEC_READONLY) == 0)
+ if ((bfd_section_flags (sect) & SEC_READONLY) == 0)
prot |= GDB_MMAP_PROT_WRITE;
- if ((bfd_get_section_flags (abfd, sect) & SEC_CODE) != 0)
+ if ((bfd_section_flags (sect) & SEC_CODE) != 0)
prot |= GDB_MMAP_PROT_EXEC;
if (compile_debug)
fprintf_unfiltered (gdb_stdlog,
"module \"%s\" section \"%s\" size %s prot %u\n",
bfd_get_filename (abfd),
- bfd_get_section_name (abfd, sect),
+ bfd_section_name (sect),
paddress (target_gdbarch (),
- bfd_get_section_size (sect)),
+ bfd_section_size (sect)),
prot);
}
else
prot = -1;
if (sect == NULL
- || (data->last_prot != prot && bfd_get_section_size (sect) != 0))
+ || (data->last_prot != prot && bfd_section_size (sect) != 0))
{
CORE_ADDR addr;
asection *sect_iter;
@@ -150,9 +150,8 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
for (sect_iter = data->last_section_first; sect_iter != sect;
sect_iter = sect_iter->next)
- if ((bfd_get_section_flags (abfd, sect_iter) & SEC_ALLOC) != 0)
- bfd_set_section_vma (abfd, sect_iter,
- addr + bfd_get_section_vma (abfd, sect_iter));
+ if ((bfd_section_flags (sect_iter) & SEC_ALLOC) != 0)
+ bfd_set_section_vma (sect_iter, addr + bfd_section_vma (sect_iter));
data->last_size = 0;
data->last_section_first = sect;
@@ -163,14 +162,14 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
if (sect == NULL)
return;
- alignment = ((CORE_ADDR) 1) << bfd_get_section_alignment (abfd, sect);
+ alignment = ((CORE_ADDR) 1) << bfd_section_alignment (sect);
data->last_max_alignment = std::max (data->last_max_alignment, alignment);
data->last_size = (data->last_size + alignment - 1) & -alignment;
- bfd_set_section_vma (abfd, sect, data->last_size);
+ bfd_set_section_vma (sect, data->last_size);
- data->last_size += bfd_get_section_size (sect);
+ data->last_size += bfd_section_size (sect);
data->last_size = (data->last_size + alignment - 1) & -alignment;
}
@@ -197,7 +196,7 @@ link_callbacks_warning (struct bfd_link_info *link_info, const char *xwarning,
bfd_vma address)
{
warning (_("Compiled module \"%s\" section \"%s\": warning: %s"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+ bfd_get_filename (abfd), bfd_section_name (section),
xwarning);
}
@@ -210,7 +209,7 @@ link_callbacks_undefined_symbol (struct bfd_link_info *link_info,
{
warning (_("Cannot resolve relocation to \"%s\" "
"from compiled module \"%s\" section \"%s\"."),
- name, bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
+ name, bfd_get_filename (abfd), bfd_section_name (section));
}
/* Helper for link_callbacks callbacks vector. */
@@ -233,7 +232,7 @@ link_callbacks_reloc_dangerous (struct bfd_link_info *link_info,
{
warning (_("Compiled module \"%s\" section \"%s\": dangerous "
"relocation: %s\n"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+ bfd_get_filename (abfd), bfd_section_name (section),
message);
}
@@ -246,7 +245,7 @@ link_callbacks_unattached_reloc (struct bfd_link_info *link_info,
{
warning (_("Compiled module \"%s\" section \"%s\": unattached "
"relocation: %s\n"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, section),
+ bfd_get_filename (abfd), bfd_section_name (section),
name);
}
@@ -324,11 +323,11 @@ copy_sections (bfd *abfd, asection *sect, void *data)
struct bfd_link_order link_order;
CORE_ADDR inferior_addr;
- if ((bfd_get_section_flags (abfd, sect) & (SEC_ALLOC | SEC_LOAD))
+ if ((bfd_section_flags (sect) & (SEC_ALLOC | SEC_LOAD))
!= (SEC_ALLOC | SEC_LOAD))
return;
- if (bfd_get_section_size (sect) == 0)
+ if (bfd_section_size (sect) == 0)
return;
/* Mostly a copy of bfd_simple_get_relocated_section_contents which GDB
@@ -349,11 +348,11 @@ copy_sections (bfd *abfd, asection *sect, void *data)
link_order.next = NULL;
link_order.type = bfd_indirect_link_order;
link_order.offset = 0;
- link_order.size = bfd_get_section_size (sect);
+ link_order.size = bfd_section_size (sect);
link_order.u.indirect.section = sect;
gdb::unique_xmalloc_ptr<gdb_byte> sect_data
- ((bfd_byte *) xmalloc (bfd_get_section_size (sect)));
+ ((bfd_byte *) xmalloc (bfd_section_size (sect)));
sect_data_got = bfd_get_relocated_section_contents (abfd, &link_info,
&link_order,
@@ -362,19 +361,19 @@ copy_sections (bfd *abfd, asection *sect, void *data)
if (sect_data_got == NULL)
error (_("Cannot map compiled module \"%s\" section \"%s\": %s"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, sect),
+ bfd_get_filename (abfd), bfd_section_name (sect),
bfd_errmsg (bfd_get_error ()));
gdb_assert (sect_data_got == sect_data.get ());
- inferior_addr = bfd_get_section_vma (abfd, sect);
+ inferior_addr = bfd_section_vma (sect);
if (0 != target_write_memory (inferior_addr, sect_data.get (),
- bfd_get_section_size (sect)))
+ bfd_section_size (sect)))
error (_("Cannot write compiled module \"%s\" section \"%s\" "
"to inferior memory range %s-%s."),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, sect),
+ bfd_get_filename (abfd), bfd_section_name (sect),
paddress (target_gdbarch (), inferior_addr),
paddress (target_gdbarch (),
- inferior_addr + bfd_get_section_size (sect)));
+ inferior_addr + bfd_section_size (sect)));
}
/* Fetch the type of COMPILE_I_EXPR_PTR_TYPE and COMPILE_I_EXPR_VAL
diff --git a/gdb/corelow.c b/gdb/corelow.c
index 5e9634e9d7..b30b91b522 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -289,10 +289,10 @@ add_to_thread_list (bfd *abfd, asection *asect, void *reg_sect_arg)
bool fake_pid_p = false;
struct inferior *inf;
- if (!startswith (bfd_section_name (abfd, asect), ".reg/"))
+ if (!startswith (bfd_section_name (asect), ".reg/"))
return;
- core_tid = atoi (bfd_section_name (abfd, asect) + 5);
+ core_tid = atoi (bfd_section_name (asect) + 5);
pid = bfd_core_file_pid (core_bfd);
if (pid == 0)
@@ -584,7 +584,7 @@ core_target::get_core_register_section (struct regcache *regcache,
return;
}
- size = bfd_section_size (core_bfd, section);
+ size = bfd_section_size (section);
if (size < section_min_size)
{
warning (_("Section `%s' in core file too small."),
@@ -614,8 +614,7 @@ core_target::get_core_register_section (struct regcache *regcache,
gdb_assert (m_core_vec != nullptr);
m_core_vec->core_read_registers (regcache, contents, size, which,
- ((CORE_ADDR)
- bfd_section_vma (core_bfd, section)));
+ (CORE_ADDR) bfd_section_vma (section));
}
/* Data passed to gdbarch_iterate_over_regset_sections's callback. */
@@ -727,7 +726,7 @@ add_to_spuid_list (bfd *abfd, asection *asect, void *list_p)
= bfd_big_endian (abfd) ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
int fd, pos = 0;
- sscanf (bfd_section_name (abfd, asect), "SPU/%d/regs%n", &fd, &pos);
+ sscanf (bfd_section_name (asect), "SPU/%d/regs%n", &fd, &pos);
if (pos == 0)
return;
@@ -768,7 +767,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
if (section == NULL)
return TARGET_XFER_E_IO;
- size = bfd_section_size (core_bfd, section);
+ size = bfd_section_size (section);
if (offset >= size)
return TARGET_XFER_EOF;
size -= offset;
@@ -803,7 +802,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
if (section == NULL)
return TARGET_XFER_E_IO;
- size = bfd_section_size (core_bfd, section);
+ size = bfd_section_size (section);
if (offset >= size)
return TARGET_XFER_EOF;
size -= offset;
@@ -883,7 +882,7 @@ core_target::xfer_partial (enum target_object object, const char *annex,
if (section == NULL)
return TARGET_XFER_E_IO;
- size = bfd_section_size (core_bfd, section);
+ size = bfd_section_size (section);
if (offset >= size)
return TARGET_XFER_EOF;
size -= offset;
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index dc0b2c727b..564c5d3a41 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -207,10 +207,10 @@ find_text_range (bfd * sym_bfd, struct objfile *objfile)
CORE_ADDR end = 0;
for (sec = sym_bfd->sections; sec; sec = sec->next)
- if (bfd_get_section_flags (sym_bfd, sec) & SEC_CODE)
+ if (bfd_section_flags (sec) & SEC_CODE)
{
- CORE_ADDR sec_start = bfd_section_vma (sym_bfd, sec);
- CORE_ADDR sec_end = sec_start + bfd_section_size (sym_bfd, sec);
+ CORE_ADDR sec_start = bfd_section_vma (sec);
+ CORE_ADDR sec_end = sec_start + bfd_section_size (sec);
if (found_any)
{
@@ -607,8 +607,8 @@ dbx_symfile_init (struct objfile *objfile)
text_sect = bfd_get_section_by_name (sym_bfd, ".text");
if (!text_sect)
error (_("Can't find .text section in symbol file"));
- DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
- DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+ DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+ DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
DBX_SYMBOL_SIZE (objfile) = obj_symbol_entry_size (sym_bfd);
DBX_SYMCOUNT (objfile) = bfd_get_symcount (sym_bfd);
@@ -781,7 +781,7 @@ fill_symbuf (bfd *sym_bfd)
if (bfd_seek (sym_bfd, filepos, SEEK_SET) != 0)
perror_with_name (bfd_get_filename (sym_bfd));
- symbuf_left = bfd_section_size (sym_bfd, (*symbuf_sections)[sect_idx]);
+ symbuf_left = bfd_section_size ((*symbuf_sections)[sect_idx]);
symbol_table_offset = filepos - symbuf_read;
++sect_idx;
}
@@ -2980,7 +2980,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
= make_scoped_restore (&symbuf_sections);
if (stabsects.size () == 1)
{
- stabsize = bfd_section_size (sym_bfd, stabsects[0]);
+ stabsize = bfd_section_size (stabsects[0]);
DBX_SYMCOUNT (objfile) = stabsize / DBX_SYMBOL_SIZE (objfile);
DBX_SYMTAB_OFFSET (objfile) = stabsects[0]->filepos;
}
@@ -2989,7 +2989,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
DBX_SYMCOUNT (objfile) = 0;
for (asection *section : stabsects)
{
- stabsize = bfd_section_size (sym_bfd, section);
+ stabsize = bfd_section_size (section);
DBX_SYMCOUNT (objfile) += stabsize / DBX_SYMBOL_SIZE (objfile);
}
@@ -2997,7 +2997,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
sect_idx = 1;
symbuf_sections = &stabsects;
- symbuf_left = bfd_section_size (sym_bfd, stabsects[0]);
+ symbuf_left = bfd_section_size (stabsects[0]);
symbuf_read = 0;
}
@@ -3040,7 +3040,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
#define ELF_STABS_SYMBOL_SIZE 12 /* XXX FIXME XXX */
DBX_SYMBOL_SIZE (objfile) = ELF_STABS_SYMBOL_SIZE;
DBX_SYMCOUNT (objfile)
- = bfd_section_size (objfile->obfd, stabsect) / DBX_SYMBOL_SIZE (objfile);
+ = bfd_section_size (stabsect) / DBX_SYMBOL_SIZE (objfile);
DBX_STRINGTAB_SIZE (objfile) = stabstrsize;
DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos;
DBX_STAB_SECTION (objfile) = stabsect;
@@ -3067,7 +3067,7 @@ elfstab_build_psymtabs (struct objfile *objfile, asection *stabsect,
processing_acc_compilation = 1;
symbuf_read = 0;
- symbuf_left = bfd_section_size (objfile->obfd, stabsect);
+ symbuf_left = bfd_section_size (stabsect);
scoped_restore restore_stabs_data = make_scoped_restore (&stabs_data);
gdb::unique_xmalloc_ptr<gdb_byte> data_holder;
@@ -3128,13 +3128,13 @@ stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
text_sect = bfd_get_section_by_name (sym_bfd, text_name);
if (!text_sect)
error (_("Can't find %s section in symbol file"), text_name);
- DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
- DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
+ DBX_TEXT_ADDR (objfile) = bfd_section_vma (text_sect);
+ DBX_TEXT_SIZE (objfile) = bfd_section_size (text_sect);
DBX_SYMBOL_SIZE (objfile) = sizeof (struct external_nlist);
- DBX_SYMCOUNT (objfile) = bfd_section_size (sym_bfd, stabsect)
+ DBX_SYMCOUNT (objfile) = bfd_section_size (stabsect)
/ DBX_SYMBOL_SIZE (objfile);
- DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (sym_bfd, stabstrsect);
+ DBX_STRINGTAB_SIZE (objfile) = bfd_section_size (stabstrsect);
DBX_SYMTAB_OFFSET (objfile) = stabsect->filepos; /* XXX - FIXME: POKING
INSIDE BFD DATA
STRUCTURES */
diff --git a/gdb/dicos-tdep.c b/gdb/dicos-tdep.c
index 954428a110..3ef9114b10 100644
--- a/gdb/dicos-tdep.c
+++ b/gdb/dicos-tdep.c
@@ -70,7 +70,7 @@ dicos_load_module_p (bfd *abfd, int header_size)
if (!section)
return 0;
- if (bfd_section_size (abfd, section) != header_size)
+ if (bfd_section_size (section) != header_size)
return 0;
/* Dicos LMs always have a "Dicos_loadModuleInfo" symbol
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index e18b35e7db..34b8cbcb76 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -1565,7 +1565,7 @@ read_encoded_value (struct comp_unit *unit, gdb_byte encoding,
base = 0;
break;
case DW_EH_PE_pcrel:
- base = bfd_get_section_vma (unit->abfd, unit->dwarf_frame_section);
+ base = bfd_section_vma (unit->dwarf_frame_section);
base += (buf - unit->dwarf_frame_buffer);
break;
case DW_EH_PE_datarel:
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index ea9904c416..5e71ded203 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2280,7 +2280,7 @@ get_section_name (const struct dwarf2_section_info *section)
asection *sectp = get_section_bfd_section (section);
gdb_assert (sectp != NULL);
- return bfd_section_name (get_section_bfd_owner (section), sectp);
+ return bfd_section_name (sectp);
}
/* Return the name of the file SECTION is in. */
@@ -2315,7 +2315,7 @@ get_section_flags (const struct dwarf2_section_info *section)
asection *sectp = get_section_bfd_section (section);
gdb_assert (sectp != NULL);
- return bfd_get_section_flags (sectp->owner, sectp);
+ return bfd_section_flags (sectp);
}
/* When loading sections, we look either for uncompressed section or for
@@ -2340,7 +2340,7 @@ void
dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
const dwarf2_debug_sections &names)
{
- flagword aflag = bfd_get_section_flags (abfd, sectp);
+ flagword aflag = bfd_section_flags (sectp);
if ((aflag & SEC_HAS_CONTENTS) == 0)
{
@@ -2348,72 +2348,72 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
else if (section_is_p (sectp->name, &names.info))
{
this->info.s.section = sectp;
- this->info.size = bfd_get_section_size (sectp);
+ this->info.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.abbrev))
{
this->abbrev.s.section = sectp;
- this->abbrev.size = bfd_get_section_size (sectp);
+ this->abbrev.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.line))
{
this->line.s.section = sectp;
- this->line.size = bfd_get_section_size (sectp);
+ this->line.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.loc))
{
this->loc.s.section = sectp;
- this->loc.size = bfd_get_section_size (sectp);
+ this->loc.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.loclists))
{
this->loclists.s.section = sectp;
- this->loclists.size = bfd_get_section_size (sectp);
+ this->loclists.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.macinfo))
{
this->macinfo.s.section = sectp;
- this->macinfo.size = bfd_get_section_size (sectp);
+ this->macinfo.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.macro))
{
this->macro.s.section = sectp;
- this->macro.size = bfd_get_section_size (sectp);
+ this->macro.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.str))
{
this->str.s.section = sectp;
- this->str.size = bfd_get_section_size (sectp);
+ this->str.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.line_str))
{
this->line_str.s.section = sectp;
- this->line_str.size = bfd_get_section_size (sectp);
+ this->line_str.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.addr))
{
this->addr.s.section = sectp;
- this->addr.size = bfd_get_section_size (sectp);
+ this->addr.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.frame))
{
this->frame.s.section = sectp;
- this->frame.size = bfd_get_section_size (sectp);
+ this->frame.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.eh_frame))
{
this->eh_frame.s.section = sectp;
- this->eh_frame.size = bfd_get_section_size (sectp);
+ this->eh_frame.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.ranges))
{
this->ranges.s.section = sectp;
- this->ranges.size = bfd_get_section_size (sectp);
+ this->ranges.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.rnglists))
{
this->rnglists.s.section = sectp;
- this->rnglists.size = bfd_get_section_size (sectp);
+ this->rnglists.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.types))
{
@@ -2421,28 +2421,28 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
memset (&type_section, 0, sizeof (type_section));
type_section.s.section = sectp;
- type_section.size = bfd_get_section_size (sectp);
+ type_section.size = bfd_section_size (sectp);
this->types.push_back (type_section);
}
else if (section_is_p (sectp->name, &names.gdb_index))
{
this->gdb_index.s.section = sectp;
- this->gdb_index.size = bfd_get_section_size (sectp);
+ this->gdb_index.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.debug_names))
{
this->debug_names.s.section = sectp;
- this->debug_names.size = bfd_get_section_size (sectp);
+ this->debug_names.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names.debug_aranges))
{
this->debug_aranges.s.section = sectp;
- this->debug_aranges.size = bfd_get_section_size (sectp);
+ this->debug_aranges.size = bfd_section_size (sectp);
}
- if ((bfd_get_section_flags (abfd, sectp) & (SEC_LOAD | SEC_ALLOC))
- && bfd_section_vma (abfd, sectp) == 0)
+ if ((bfd_section_flags (sectp) & (SEC_LOAD | SEC_ALLOC))
+ && bfd_section_vma (sectp) == 0)
this->has_section_at_zero = true;
}
@@ -2531,7 +2531,7 @@ dwarf2_read_section (struct objfile *objfile, dwarf2_section_info *info)
{
error (_("Dwarf Error: Can't read DWARF data"
" in section %s [in module %s]"),
- bfd_section_name (abfd, sectp), bfd_get_filename (abfd));
+ bfd_section_name (sectp), bfd_get_filename (abfd));
}
}
@@ -2603,37 +2603,37 @@ locate_dwz_sections (bfd *abfd, asection *sectp, void *arg)
if (section_is_p (sectp->name, &dwarf2_elf_names.abbrev))
{
dwz_file->abbrev.s.section = sectp;
- dwz_file->abbrev.size = bfd_get_section_size (sectp);
+ dwz_file->abbrev.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.info))
{
dwz_file->info.s.section = sectp;
- dwz_file->info.size = bfd_get_section_size (sectp);
+ dwz_file->info.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.str))
{
dwz_file->str.s.section = sectp;
- dwz_file->str.size = bfd_get_section_size (sectp);
+ dwz_file->str.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.line))
{
dwz_file->line.s.section = sectp;
- dwz_file->line.size = bfd_get_section_size (sectp);
+ dwz_file->line.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.macro))
{
dwz_file->macro.s.section = sectp;
- dwz_file->macro.size = bfd_get_section_size (sectp);
+ dwz_file->macro.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.gdb_index))
{
dwz_file->gdb_index.s.section = sectp;
- dwz_file->gdb_index.size = bfd_get_section_size (sectp);
+ dwz_file->gdb_index.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &dwarf2_elf_names.debug_names))
{
dwz_file->debug_names.s.section = sectp;
- dwz_file->debug_names.size = bfd_get_section_size (sectp);
+ dwz_file->debug_names.size = bfd_section_size (sectp);
}
}
@@ -12311,7 +12311,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->abbrev.s.section != NULL)
return 0;
sections->abbrev.s.section = sectp;
- sections->abbrev.size = bfd_get_section_size (sectp);
+ sections->abbrev.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->info_dwo)
|| section_is_p (sectp->name, &names->types_dwo))
@@ -12320,7 +12320,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->info_or_types.s.section != NULL)
return 0;
sections->info_or_types.s.section = sectp;
- sections->info_or_types.size = bfd_get_section_size (sectp);
+ sections->info_or_types.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->line_dwo))
{
@@ -12328,7 +12328,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->line.s.section != NULL)
return 0;
sections->line.s.section = sectp;
- sections->line.size = bfd_get_section_size (sectp);
+ sections->line.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->loc_dwo))
{
@@ -12336,7 +12336,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->loc.s.section != NULL)
return 0;
sections->loc.s.section = sectp;
- sections->loc.size = bfd_get_section_size (sectp);
+ sections->loc.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macinfo_dwo))
{
@@ -12344,7 +12344,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->macinfo.s.section != NULL)
return 0;
sections->macinfo.s.section = sectp;
- sections->macinfo.size = bfd_get_section_size (sectp);
+ sections->macinfo.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macro_dwo))
{
@@ -12352,7 +12352,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->macro.s.section != NULL)
return 0;
sections->macro.s.section = sectp;
- sections->macro.size = bfd_get_section_size (sectp);
+ sections->macro.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->str_offsets_dwo))
{
@@ -12360,7 +12360,7 @@ locate_v1_virtual_dwo_sections (asection *sectp,
if (sections->str_offsets.s.section != NULL)
return 0;
sections->str_offsets.s.section = sectp;
- sections->str_offsets.size = bfd_get_section_size (sectp);
+ sections->str_offsets.size = bfd_section_size (sectp);
}
else
{
@@ -12558,11 +12558,11 @@ create_dwp_v2_section (struct dwarf2_per_objfile *dwarf2_per_objfile,
bounds of the real section. This is a pretty-rare event, so just
flag an error (easier) instead of a warning and trying to cope. */
if (sectp == NULL
- || offset + size > bfd_get_section_size (sectp))
+ || offset + size > bfd_section_size (sectp))
{
error (_("Dwarf Error: Bad DWP V2 section info, doesn't fit"
" in section %s [in module %s]"),
- sectp ? bfd_section_name (abfd, sectp) : "<unknown>",
+ sectp ? bfd_section_name (sectp) : "<unknown>",
objfile_name (dwarf2_per_objfile->objfile));
}
@@ -12933,42 +12933,42 @@ dwarf2_locate_dwo_sections (bfd *abfd, asection *sectp, void *dwo_sections_ptr)
if (section_is_p (sectp->name, &names->abbrev_dwo))
{
dwo_sections->abbrev.s.section = sectp;
- dwo_sections->abbrev.size = bfd_get_section_size (sectp);
+ dwo_sections->abbrev.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->info_dwo))
{
dwo_sections->info.s.section = sectp;
- dwo_sections->info.size = bfd_get_section_size (sectp);
+ dwo_sections->info.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->line_dwo))
{
dwo_sections->line.s.section = sectp;
- dwo_sections->line.size = bfd_get_section_size (sectp);
+ dwo_sections->line.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->loc_dwo))
{
dwo_sections->loc.s.section = sectp;
- dwo_sections->loc.size = bfd_get_section_size (sectp);
+ dwo_sections->loc.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macinfo_dwo))
{
dwo_sections->macinfo.s.section = sectp;
- dwo_sections->macinfo.size = bfd_get_section_size (sectp);
+ dwo_sections->macinfo.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macro_dwo))
{
dwo_sections->macro.s.section = sectp;
- dwo_sections->macro.size = bfd_get_section_size (sectp);
+ dwo_sections->macro.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->str_dwo))
{
dwo_sections->str.s.section = sectp;
- dwo_sections->str.size = bfd_get_section_size (sectp);
+ dwo_sections->str.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->str_offsets_dwo))
{
dwo_sections->str_offsets.s.section = sectp;
- dwo_sections->str_offsets.size = bfd_get_section_size (sectp);
+ dwo_sections->str_offsets.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->types_dwo))
{
@@ -12976,7 +12976,7 @@ dwarf2_locate_dwo_sections (bfd *abfd, asection *sectp, void *dwo_sections_ptr)
memset (&type_section, 0, sizeof (type_section));
type_section.s.section = sectp;
- type_section.size = bfd_get_section_size (sectp);
+ type_section.size = bfd_section_size (sectp);
dwo_sections->types.push_back (type_section);
}
}
@@ -13040,17 +13040,17 @@ dwarf2_locate_common_dwp_sections (bfd *abfd, asection *sectp,
if (section_is_p (sectp->name, &names->str_dwo))
{
dwp_file->sections.str.s.section = sectp;
- dwp_file->sections.str.size = bfd_get_section_size (sectp);
+ dwp_file->sections.str.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->cu_index))
{
dwp_file->sections.cu_index.s.section = sectp;
- dwp_file->sections.cu_index.size = bfd_get_section_size (sectp);
+ dwp_file->sections.cu_index.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->tu_index))
{
dwp_file->sections.tu_index.s.section = sectp;
- dwp_file->sections.tu_index.size = bfd_get_section_size (sectp);
+ dwp_file->sections.tu_index.size = bfd_section_size (sectp);
}
}
@@ -13075,42 +13075,42 @@ dwarf2_locate_v2_dwp_sections (bfd *abfd, asection *sectp, void *dwp_file_ptr)
if (section_is_p (sectp->name, &names->abbrev_dwo))
{
dwp_file->sections.abbrev.s.section = sectp;
- dwp_file->sections.abbrev.size = bfd_get_section_size (sectp);
+ dwp_file->sections.abbrev.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->info_dwo))
{
dwp_file->sections.info.s.section = sectp;
- dwp_file->sections.info.size = bfd_get_section_size (sectp);
+ dwp_file->sections.info.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->line_dwo))
{
dwp_file->sections.line.s.section = sectp;
- dwp_file->sections.line.size = bfd_get_section_size (sectp);
+ dwp_file->sections.line.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->loc_dwo))
{
dwp_file->sections.loc.s.section = sectp;
- dwp_file->sections.loc.size = bfd_get_section_size (sectp);
+ dwp_file->sections.loc.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macinfo_dwo))
{
dwp_file->sections.macinfo.s.section = sectp;
- dwp_file->sections.macinfo.size = bfd_get_section_size (sectp);
+ dwp_file->sections.macinfo.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->macro_dwo))
{
dwp_file->sections.macro.s.section = sectp;
- dwp_file->sections.macro.size = bfd_get_section_size (sectp);
+ dwp_file->sections.macro.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->str_offsets_dwo))
{
dwp_file->sections.str_offsets.s.section = sectp;
- dwp_file->sections.str_offsets.size = bfd_get_section_size (sectp);
+ dwp_file->sections.str_offsets.size = bfd_section_size (sectp);
}
else if (section_is_p (sectp->name, &names->types_dwo))
{
dwp_file->sections.types.s.section = sectp;
- dwp_file->sections.types.size = bfd_get_section_size (sectp);
+ dwp_file->sections.types.size = bfd_section_size (sectp);
}
}
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 630550b80d..901710f283 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -125,7 +125,7 @@ elf_symfile_segments (bfd *abfd)
{
int j;
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
continue;
Elf_Internal_Shdr *this_hdr = &elf_section_data (sect)->this_hdr;
@@ -146,10 +146,10 @@ elf_symfile_segments (bfd *abfd)
RealView) use SHT_NOBITS for uninitialized data. Since it is
uninitialized, it doesn't need a program header. Such
binaries are not relocatable. */
- if (bfd_get_section_size (sect) > 0 && j == num_segments
- && (bfd_get_section_flags (abfd, sect) & SEC_LOAD) != 0)
+ if (bfd_section_size (sect) > 0 && j == num_segments
+ && (bfd_section_flags (sect) & SEC_LOAD) != 0)
warning (_("Loadable section \"%s\" outside of ELF segments"),
- bfd_section_name (abfd, sect));
+ bfd_section_name (sect));
}
return data;
@@ -289,12 +289,12 @@ elf_symtab_read (minimal_symbol_reader &reader,
covers the stub's address. */
for (sect = abfd->sections; sect != NULL; sect = sect->next)
{
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
continue;
- if (symaddr >= bfd_get_section_vma (abfd, sect)
- && symaddr < bfd_get_section_vma (abfd, sect)
- + bfd_get_section_size (sect))
+ if (symaddr >= bfd_section_vma (sect)
+ && symaddr < bfd_section_vma (sect)
+ + bfd_section_size (sect))
break;
}
if (!sect)
@@ -591,9 +591,9 @@ elf_rel_plt_read (minimal_symbol_reader &reader,
if (section == NULL)
return false;
- return (bfd_get_section_vma (obfd, section) <= address
- && (address < bfd_get_section_vma (obfd, section)
- + bfd_get_section_size (section)));
+ return (bfd_section_vma (section) <= address
+ && (address < bfd_section_vma (section)
+ + bfd_section_size (section)));
};
reloc_count = relplt->size / elf_section_data (relplt)->this_hdr.sh_entsize;
@@ -1236,7 +1236,7 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
elfstab_build_psymtabs (objfile,
ei.stabsect,
str_sect->filepos,
- bfd_section_size (abfd, str_sect));
+ bfd_section_size (str_sect));
}
if (dwarf2_has_info (objfile, NULL))
diff --git a/gdb/exec.c b/gdb/exec.c
index 4e4cacffda..6bdf9abb3e 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -454,14 +454,14 @@ add_to_section_table (bfd *abfd, struct bfd_section *asect,
encountered on sparc-solaris 2.10 a shared library with an empty .bss
section to which a symbol named "_end" was attached. The address
of this symbol still needs to be relocated. */
- aflag = bfd_get_section_flags (abfd, asect);
+ aflag = bfd_section_flags (asect);
if (!(aflag & SEC_ALLOC))
return;
(*table_pp)->owner = NULL;
(*table_pp)->the_bfd_section = asect;
- (*table_pp)->addr = bfd_section_vma (abfd, asect);
- (*table_pp)->endaddr = (*table_pp)->addr + bfd_section_size (abfd, asect);
+ (*table_pp)->addr = bfd_section_vma (asect);
+ (*table_pp)->endaddr = (*table_pp)->addr + bfd_section_size (asect);
(*table_pp)++;
}
@@ -571,7 +571,7 @@ add_target_sections_of_objfile (struct objfile *objfile)
/* Compute the number of sections to add. */
ALL_OBJFILE_OSECTIONS (objfile, osect)
{
- if (bfd_get_section_size (osect->the_bfd_section) == 0)
+ if (bfd_section_size (osect->the_bfd_section) == 0)
continue;
count++;
}
@@ -585,7 +585,7 @@ add_target_sections_of_objfile (struct objfile *objfile)
ALL_OBJFILE_OSECTIONS (objfile, osect)
{
- if (bfd_get_section_size (osect->the_bfd_section) == 0)
+ if (bfd_section_size (osect->the_bfd_section) == 0)
continue;
gdb_assert (ts < table->sections + space + count);
@@ -665,7 +665,7 @@ exec_read_partial_read_only (gdb_byte *readbuf, ULONGEST offset,
continue;
vma = s->vma;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (vma <= offset && offset < (vma + size))
{
ULONGEST amt;
@@ -705,9 +705,7 @@ section_table_available_memory (CORE_ADDR memaddr, ULONGEST len,
for (target_section *p = sections; p < sections_end; p++)
{
- if ((bfd_get_section_flags (p->the_bfd_section->owner,
- p->the_bfd_section)
- & SEC_READONLY) == 0)
+ if ((bfd_section_flags (p->the_bfd_section) & SEC_READONLY) == 0)
continue;
/* Copy the meta-data, adjusted. */
@@ -894,17 +892,16 @@ print_section_info (struct target_section_table *t, bfd *abfd)
for (p = t->sections; p < t->sections_end; p++)
{
struct bfd_section *psect = p->the_bfd_section;
- bfd *pbfd = psect->owner;
- if ((bfd_get_section_flags (pbfd, psect) & (SEC_ALLOC | SEC_LOAD))
+ if ((bfd_section_flags (psect) & (SEC_ALLOC | SEC_LOAD))
!= (SEC_ALLOC | SEC_LOAD))
continue;
- if (bfd_get_section_vma (pbfd, psect) <= abfd->start_address
- && abfd->start_address < (bfd_get_section_vma (pbfd, psect)
- + bfd_get_section_size (psect)))
+ if (bfd_section_vma (psect) <= abfd->start_address
+ && abfd->start_address < (bfd_section_vma (psect)
+ + bfd_section_size (psect)))
{
- displacement = p->addr - bfd_get_section_vma (pbfd, psect);
+ displacement = p->addr - bfd_section_vma (psect);
break;
}
}
@@ -935,7 +932,7 @@ print_section_info (struct target_section_table *t, bfd *abfd)
if (info_verbose)
printf_filtered (" @ %s",
hex_string_custom (psect->filepos, 8));
- printf_filtered (" is %s", bfd_section_name (pbfd, psect));
+ printf_filtered (" is %s", bfd_section_name (psect));
if (pbfd != abfd)
printf_filtered (" in %s", bfd_get_filename (pbfd));
printf_filtered ("\n");
@@ -975,9 +972,8 @@ set_section_command (const char *args, int from_tty)
table = current_target_sections;
for (p = table->sections; p < table->sections_end; p++)
{
- if (!strncmp (secname, bfd_section_name (p->bfd,
- p->the_bfd_section), seclen)
- && bfd_section_name (p->bfd, p->the_bfd_section)[seclen] == '\0')
+ if (!strncmp (secname, bfd_section_name (p->the_bfd_section), seclen)
+ && bfd_section_name (p->the_bfd_section)[seclen] == '\0')
{
offset = secaddr - p->addr;
p->addr += offset;
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index e81c6c99bf..9422e3c1a7 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -502,10 +502,10 @@ fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
thread_section_name section_name (".thrmisc", thr->ptid);
section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
- if (section != NULL && bfd_section_size (core_bfd, section) > 0)
+ if (section != NULL && bfd_section_size (section) > 0)
{
/* Truncate the name if it is longer than "buf". */
- size = bfd_section_size (core_bfd, section);
+ size = bfd_section_size (section);
if (size > sizeof buf - 1)
size = sizeof buf - 1;
if (bfd_get_section_contents (core_bfd, section, buf, (file_ptr) 0,
@@ -1058,7 +1058,7 @@ fbsd_core_info_proc_files (struct gdbarch *gdbarch)
return;
}
- size_t note_size = bfd_get_section_size (section);
+ size_t note_size = bfd_section_size (section);
if (note_size < 4)
error (_("malformed core note - too short for header"));
@@ -1191,7 +1191,7 @@ fbsd_core_info_proc_mappings (struct gdbarch *gdbarch)
return;
}
- note_size = bfd_get_section_size (section);
+ note_size = bfd_section_size (section);
if (note_size < 4)
error (_("malformed core note - too short for header"));
@@ -1239,7 +1239,7 @@ fbsd_core_vnode_path (struct gdbarch *gdbarch, int fd)
if (section == NULL)
return nullptr;
- note_size = bfd_get_section_size (section);
+ note_size = bfd_section_size (section);
if (note_size < 4)
error (_("malformed core note - too short for header"));
@@ -1344,7 +1344,7 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
* structure size, then it must be long enough to access the last
* field used (ki_rusage_ch.ru_majflt) which is the size of a long.
*/
- note_size = bfd_get_section_size (section);
+ note_size = bfd_section_size (section);
if (note_size < (4 + kp->ki_rusage_ch + kp->ru_majflt
+ long_bit / TARGET_CHAR_BIT))
error (_("malformed core note - too short"));
diff --git a/gdb/gcore.c b/gdb/gcore.c
index eb108feb79..f283ed4580 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -95,9 +95,9 @@ write_gcore_file_1 (bfd *obfd)
error (_("Failed to create 'note' section for corefile: %s"),
bfd_errmsg (bfd_get_error ()));
- bfd_set_section_vma (obfd, note_sec, 0);
- bfd_set_section_alignment (obfd, note_sec, 0);
- bfd_set_section_size (obfd, note_sec, note_size);
+ bfd_set_section_vma (note_sec, 0);
+ bfd_set_section_alignment (note_sec, 0);
+ bfd_set_section_size (note_sec, note_size);
/* Now create the memory/load sections. */
if (gcore_memory_sections (obfd) == 0)
@@ -332,11 +332,11 @@ derive_heap_segment (bfd *abfd, bfd_vma *bottom, bfd_vma *top)
for (sec = abfd->sections; sec; sec = sec->next)
{
- if (bfd_get_section_flags (abfd, sec) & SEC_DATA
- || strcmp (".bss", bfd_section_name (abfd, sec)) == 0)
+ if (bfd_section_flags (sec) & SEC_DATA
+ || strcmp (".bss", bfd_section_name (sec)) == 0)
{
- sec_vaddr = bfd_get_section_vma (abfd, sec);
- sec_size = bfd_get_section_size (sec);
+ sec_vaddr = bfd_section_vma (sec);
+ sec_size = bfd_section_size (sec);
if (sec_vaddr + sec_size > top_of_data_memory)
top_of_data_memory = sec_vaddr + sec_size;
}
@@ -365,17 +365,17 @@ make_output_phdrs (bfd *obfd, asection *osec, void *ignored)
int p_type = 0;
/* FIXME: these constants may only be applicable for ELF. */
- if (startswith (bfd_section_name (obfd, osec), "load"))
+ if (startswith (bfd_section_name (osec), "load"))
p_type = PT_LOAD;
- else if (startswith (bfd_section_name (obfd, osec), "note"))
+ else if (startswith (bfd_section_name (osec), "note"))
p_type = PT_NOTE;
else
p_type = PT_NULL;
p_flags |= PF_R; /* Segment is readable. */
- if (!(bfd_get_section_flags (obfd, osec) & SEC_READONLY))
+ if (!(bfd_section_flags (osec) & SEC_READONLY))
p_flags |= PF_W; /* Segment is writable. */
- if (bfd_get_section_flags (obfd, osec) & SEC_CODE)
+ if (bfd_section_flags (osec) & SEC_CODE)
p_flags |= PF_X; /* Segment is executable. */
bfd_record_phdr (obfd, p_type, 1, p_flags, 0, 0, 0, 0, 1, &osec);
@@ -417,8 +417,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
{
bfd *abfd = objfile->obfd;
asection *asec = objsec->the_bfd_section;
- bfd_vma align = (bfd_vma) 1 << bfd_get_section_alignment (abfd,
- asec);
+ bfd_vma align = (bfd_vma) 1 << bfd_section_alignment (asec);
bfd_vma start = obj_section_addr (objsec) & -align;
bfd_vma end = (obj_section_endaddr (objsec) + align - 1) & -align;
@@ -464,9 +463,9 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
plongest (size), paddress (target_gdbarch (), vaddr));
}
- bfd_set_section_size (obfd, osec, size);
- bfd_set_section_vma (obfd, osec, vaddr);
- bfd_section_lma (obfd, osec) = 0; /* ??? bfd_set_section_lma? */
+ bfd_set_section_size (osec, size);
+ bfd_set_section_vma (osec, vaddr);
+ bfd_set_section_lma (osec, 0);
return 0;
}
@@ -482,9 +481,8 @@ objfile_find_memory_regions (struct target_ops *self,
for (objfile *objfile : current_program_space->objfiles ())
ALL_OBJFILE_OSECTIONS (objfile, objsec)
{
- bfd *ibfd = objfile->obfd;
asection *isec = objsec->the_bfd_section;
- flagword flags = bfd_get_section_flags (ibfd, isec);
+ flagword flags = bfd_section_flags (isec);
/* Separate debug info files are irrelevant for gcore. */
if (objfile->separate_debug_objfile_backlink != NULL)
@@ -492,7 +490,7 @@ objfile_find_memory_regions (struct target_ops *self,
if ((flags & SEC_ALLOC) || (flags & SEC_LOAD))
{
- int size = bfd_section_size (ibfd, isec);
+ int size = bfd_section_size (isec);
int ret;
ret = (*func) (obj_section_addr (objsec), size,
@@ -530,15 +528,15 @@ objfile_find_memory_regions (struct target_ops *self,
static void
gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
{
- bfd_size_type size, total_size = bfd_section_size (obfd, osec);
+ bfd_size_type size, total_size = bfd_section_size (osec);
file_ptr offset = 0;
/* Read-only sections are marked; we don't have to copy their contents. */
- if ((bfd_get_section_flags (obfd, osec) & SEC_LOAD) == 0)
+ if ((bfd_section_flags (osec) & SEC_LOAD) == 0)
return;
/* Only interested in "load" sections. */
- if (!startswith (bfd_section_name (obfd, osec), "load"))
+ if (!startswith (bfd_section_name (osec), "load"))
return;
size = std::min (total_size, (bfd_size_type) MAX_COPY_BYTES);
@@ -549,13 +547,13 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
if (size > total_size)
size = total_size;
- if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
+ if (target_read_memory (bfd_section_vma (osec) + offset,
memhunk.data (), size) != 0)
{
warning (_("Memory read failed for corefile "
"section, %s bytes at %s."),
plongest (size),
- paddress (target_gdbarch (), bfd_section_vma (obfd, osec)));
+ paddress (target_gdbarch (), bfd_section_vma (osec)));
break;
}
if (!bfd_set_section_contents (obfd, osec, memhunk.data (),
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index a17460a8a0..8a67d5e97d 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -480,7 +480,7 @@ static void
free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore)
{
struct gdb_bfd_section_data *sect
- = (struct gdb_bfd_section_data *) bfd_get_section_userdata (abfd, sectp);
+ = (struct gdb_bfd_section_data *) bfd_section_userdata (sectp);
if (sect != NULL && sect->data != NULL)
{
@@ -626,14 +626,13 @@ get_section_descriptor (asection *section)
{
struct gdb_bfd_section_data *result;
- result = ((struct gdb_bfd_section_data *)
- bfd_get_section_userdata (section->owner, section));
+ result = (struct gdb_bfd_section_data *) bfd_section_userdata (section);
if (result == NULL)
{
result = ((struct gdb_bfd_section_data *)
bfd_zalloc (section->owner, sizeof (*result)));
- bfd_set_section_userdata (section->owner, section, result);
+ bfd_set_section_userdata (section, result);
}
return result;
@@ -671,9 +670,9 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
/* Only try to mmap sections which are large enough: we don't want
to waste space due to fragmentation. */
- if (bfd_get_section_size (sectp) > 4 * pagesize)
+ if (bfd_section_size (sectp) > 4 * pagesize)
{
- descriptor->size = bfd_get_section_size (sectp);
+ descriptor->size = bfd_section_size (sectp);
descriptor->data = bfd_mmap (abfd, 0, descriptor->size, PROT_READ,
MAP_PRIVATE, sectp->filepos,
&descriptor->map_addr,
@@ -697,14 +696,14 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size)
/* Handle compressed sections, or ordinary uncompressed sections in
the no-mmap case. */
- descriptor->size = bfd_get_section_size (sectp);
+ descriptor->size = bfd_section_size (sectp);
descriptor->data = NULL;
data = NULL;
if (!bfd_get_full_section_contents (abfd, sectp, &data))
{
warning (_("Can't read data for section '%s' in file '%s'"),
- bfd_get_section_name (abfd, sectp),
+ bfd_section_name (sectp),
bfd_get_filename (abfd));
/* Set size to 0 to prevent further attempts to read the invalid
section. */
diff --git a/gdb/gdb_bfd.h b/gdb/gdb_bfd.h
index aa67fc0a14..674880d07f 100644
--- a/gdb/gdb_bfd.h
+++ b/gdb/gdb_bfd.h
@@ -106,7 +106,7 @@ void gdb_bfd_record_inclusion (bfd *includer, bfd *includee);
/* Try to read or map the contents of the section SECT. If successful, the
section data is returned and *SIZE is set to the size of the section data;
- this may not be the same as the size according to bfd_get_section_size if the
+ this may not be the same as the size according to bfd_section_size if the
section was compressed. The returned section data is associated with the BFD
and will be destroyed when the BFD is destroyed. There is no other way to
free it; for temporary uses of section data, see bfd_malloc_and_get_section.
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index b1f71883ec..249d5c91bd 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -380,7 +380,7 @@ read_unwind_info (struct objfile *objfile)
if (strcmp (unwind_sec->name, "$UNWIND_START$") == 0
|| strcmp (unwind_sec->name, ".PARISC.unwind") == 0)
{
- unwind_size = bfd_section_size (objfile->obfd, unwind_sec);
+ unwind_size = bfd_section_size (unwind_sec);
unwind_entries = unwind_size / UNWIND_ENTRY_SIZE;
total_entries += unwind_entries;
@@ -393,7 +393,7 @@ read_unwind_info (struct objfile *objfile)
if (stub_unwind_sec)
{
- stub_unwind_size = bfd_section_size (objfile->obfd, stub_unwind_sec);
+ stub_unwind_size = bfd_section_size (stub_unwind_sec);
stub_entries = stub_unwind_size / STUB_UNWIND_ENTRY_SIZE;
}
else
@@ -421,7 +421,7 @@ read_unwind_info (struct objfile *objfile)
if (strcmp (unwind_sec->name, "$UNWIND_START$") == 0
|| strcmp (unwind_sec->name, ".PARISC.unwind") == 0)
{
- unwind_size = bfd_section_size (objfile->obfd, unwind_sec);
+ unwind_size = bfd_section_size (unwind_sec);
unwind_entries = unwind_size / UNWIND_ENTRY_SIZE;
internalize_unwinds (objfile, &ui->table[index], unwind_sec,
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 0e3ba82b76..25c3cfcbb9 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -110,14 +110,14 @@ core_process_module_section (bfd *abfd, asection *sect, void *obj)
if (!startswith (sect->name, ".module"))
return;
- buf = (gdb_byte *) xmalloc (bfd_get_section_size (sect) + 1);
+ buf = (gdb_byte *) xmalloc (bfd_section_size (sect) + 1);
if (!buf)
{
printf_unfiltered ("memory allocation failed for %s\n", sect->name);
goto out;
}
if (!bfd_get_section_contents (abfd, sect,
- buf, 0, bfd_get_section_size (sect)))
+ buf, 0, bfd_section_size (sect)))
goto out;
@@ -130,7 +130,7 @@ core_process_module_section (bfd *abfd, asection *sect, void *obj)
module_name_size =
extract_unsigned_integer (buf + 8, 4, byte_order);
- if (12 + module_name_size > bfd_get_section_size (sect))
+ if (12 + module_name_size > bfd_section_size (sect))
goto out;
module_name = (char *) buf + 12;
@@ -240,7 +240,7 @@ i386_cygwin_osabi_sniffer (bfd *abfd)
{
asection *section = bfd_get_section_by_name (abfd, ".reg");
if (section
- && bfd_section_size (abfd, section) == I386_WINDOWS_SIZEOF_GREGSET)
+ && bfd_section_size (section) == I386_WINDOWS_SIZEOF_GREGSET)
return GDB_OSABI_CYGWIN;
}
diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c
index 3848bf890d..04d0a641b7 100644
--- a/gdb/i386-fbsd-tdep.c
+++ b/gdb/i386-fbsd-tdep.c
@@ -233,7 +233,7 @@ i386fbsd_core_read_xcr0 (bfd *abfd)
if (xstate)
{
- size_t size = bfd_section_size (abfd, xstate);
+ size_t size = bfd_section_size (xstate);
/* Check extended state size. */
if (size < X86_XSTATE_AVX_SIZE)
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 760d00008f..c41013984e 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -646,7 +646,7 @@ i386_linux_core_read_xcr0 (bfd *abfd)
if (xstate)
{
- size_t size = bfd_section_size (abfd, xstate);
+ size_t size = bfd_section_size (xstate);
/* Check extended state size. */
if (size < X86_XSTATE_AVX_SIZE)
diff --git a/gdb/jit.c b/gdb/jit.c
index 4722d6c6ce..af01b4d6c4 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -910,12 +910,12 @@ JITed symbol file is not an object file, ignoring it.\n"));
addresses that we care about. */
section_addr_info sai;
for (sec = nbfd->sections; sec != NULL; sec = sec->next)
- if ((bfd_get_section_flags (nbfd.get (), sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
+ if ((bfd_section_flags (sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
{
/* We assume that these virtual addresses are absolute, and do not
treat them as offsets. */
- sai.emplace_back (bfd_get_section_vma (nbfd.get (), sec),
- bfd_get_section_name (nbfd.get (), sec),
+ sai.emplace_back (bfd_section_vma (sec),
+ bfd_section_name (sec),
sec->index);
}
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index ff888a9067..63a9bd32df 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1046,7 +1046,7 @@ linux_core_info_proc_mappings (struct gdbarch *gdbarch, const char *args)
addr_size_bits = gdbarch_addr_bit (core_gdbarch);
addr_size = addr_size_bits / 8;
- note_size = bfd_get_section_size (section);
+ note_size = bfd_section_size (section);
if (note_size < 2 * addr_size)
error (_("malformed core note - too short for header"));
diff --git a/gdb/machoread.c b/gdb/machoread.c
index d7471e9572..1795982a3e 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -575,7 +575,7 @@ macho_add_oso_symfile (oso_el *oso, const gdb_bfd_ref_ptr &abfd,
sec->name, sym->name,
paddress (arch, res));
}
- bfd_set_section_vma (abfd.get (), sec, res);
+ bfd_set_section_vma (sec, res);
sections_rebased[sec->index] = 1;
}
}
@@ -854,8 +854,7 @@ macho_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
{
if (strcmp (asect->name, dsect->name) != 0)
break;
- bfd_set_section_size (dsym_bfd.get (), dsect,
- bfd_get_section_size (asect));
+ bfd_set_section_size (dsect, bfd_section_size (asect));
}
/* Add the dsym file as a separate file. */
diff --git a/gdb/maint.c b/gdb/maint.c
index b8eb93827c..ec9f4abb26 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -335,8 +335,8 @@ print_bfd_section_info (bfd *abfd,
asection *asect,
void *datum)
{
- flagword flags = bfd_get_section_flags (abfd, asect);
- const char *name = bfd_section_name (abfd, asect);
+ flagword flags = bfd_section_flags (asect);
+ const char *name = bfd_section_name (asect);
maint_print_section_data *print_data = (maint_print_section_data *) datum;
const char *arg = print_data->arg;
@@ -348,8 +348,8 @@ print_bfd_section_info (bfd *abfd,
int addr_size = gdbarch_addr_bit (gdbarch) / 8;
CORE_ADDR addr, endaddr;
- addr = bfd_section_vma (abfd, asect);
- endaddr = addr + bfd_section_size (abfd, asect);
+ addr = bfd_section_vma (asect);
+ endaddr = addr + bfd_section_size (asect);
print_section_index (abfd, asect, print_data->index_digits);
maint_print_section_info (name, flags, addr, endaddr,
asect->filepos, addr_size);
@@ -366,8 +366,8 @@ print_objfile_section_info (bfd *abfd,
struct obj_section *asect,
maint_print_section_data *print_data)
{
- flagword flags = bfd_get_section_flags (abfd, asect->the_bfd_section);
- const char *name = bfd_section_name (abfd, asect->the_bfd_section);
+ flagword flags = bfd_section_flags (asect->the_bfd_section);
+ const char *name = bfd_section_name (asect->the_bfd_section);
const char *string = print_data->arg;
if (string == NULL || *string == '\0'
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index dffef8fd1a..0956fbdb67 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -2338,7 +2338,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
the text section (and fh->adr) really starts at zero. */
text_sect = bfd_get_section_by_name (cur_bfd, ".text");
if (text_sect != NULL
- && (bfd_get_section_flags (cur_bfd, text_sect) & SEC_RELOC))
+ && (bfd_section_flags (text_sect) & SEC_RELOC))
relocatable = 1;
extern_tab = XOBNEWVEC (&objfile->objfile_obstack, EXTR, hdr->iextMax);
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index 9033a61950..7659e28038 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -1179,8 +1179,7 @@ mi_memory_changed (struct inferior *inferior, CORE_ADDR memaddr,
sec = find_pc_section (memaddr);
if (sec != NULL && sec->objfile != NULL)
{
- flagword flags = bfd_get_section_flags (sec->objfile->obfd,
- sec->the_bfd_section);
+ flagword flags = bfd_section_flags (sec->the_bfd_section);
if (flags & SEC_CODE)
mi_uiout->field_string ("type", "code");
diff --git a/gdb/minidebug.c b/gdb/minidebug.c
index 6c67b4e04b..2a60741dfa 100644
--- a/gdb/minidebug.c
+++ b/gdb/minidebug.c
@@ -87,7 +87,7 @@ lzma_open (struct bfd *nbfd, void *open_closure)
struct gdb_lzma_stream *lstream;
size_t pos;
- size = bfd_get_section_size (section);
+ size = bfd_section_size (section);
offset = section->filepos + size - LZMA_STREAM_HEADER_SIZE;
if (size < LZMA_STREAM_HEADER_SIZE
|| bfd_seek (section->owner, offset, SEEK_SET) != 0
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index 08d027917d..eab284da13 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -562,7 +562,7 @@ mips_linux_core_read_description (struct gdbarch *gdbarch,
if (! section)
return NULL;
- switch (bfd_section_size (abfd, section))
+ switch (bfd_section_size (section))
{
case sizeof (mips_elf_gregset_t):
return mips_tdesc_gp32;
diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c
index cf1ce37873..791a5991ad 100644
--- a/gdb/mips-sde-tdep.c
+++ b/gdb/mips-sde-tdep.c
@@ -208,7 +208,7 @@ mips_sde_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect,
enum gdb_osabi *os_ident_ptr = (enum gdb_osabi *) obj;
const char *name;
- name = bfd_get_section_name (abfd, sect);
+ name = bfd_section_name (sect);
/* The presence of a section with a ".sde" prefix is indicative
of an SDE binary. */
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 37a1b2a0b8..6870db8202 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -7975,7 +7975,7 @@ static void
mips_find_abi_section (bfd *abfd, asection *sect, void *obj)
{
enum mips_abi *abip = (enum mips_abi *) obj;
- const char *name = bfd_get_section_name (abfd, sect);
+ const char *name = bfd_section_name (sect);
if (*abip != MIPS_ABI_UNKNOWN)
return;
@@ -8003,7 +8003,7 @@ static void
mips_find_long_section (bfd *abfd, asection *sect, void *obj)
{
int *lbp = (int *) obj;
- const char *name = bfd_get_section_name (abfd, sect);
+ const char *name = bfd_section_name (sect);
if (startswith (name, ".gcc_compiled_long32"))
*lbp = 32;
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index b25abe5a48..b5f7f6cde4 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -200,10 +200,10 @@ read_alphacoff_dynamic_symtab (minimal_symbol_reader &reader,
|| si.dyninfo_sect == NULL || si.got_sect == NULL)
return;
- gdb::byte_vector sym_sec (bfd_get_section_size (si.sym_sect));
- gdb::byte_vector str_sec (bfd_get_section_size (si.str_sect));
- gdb::byte_vector dyninfo_sec (bfd_get_section_size (si.dyninfo_sect));
- gdb::byte_vector got_sec (bfd_get_section_size (si.got_sect));
+ gdb::byte_vector sym_sec (bfd_section_size (si.sym_sect));
+ gdb::byte_vector str_sec (bfd_section_size (si.str_sect));
+ gdb::byte_vector dyninfo_sec (bfd_section_size (si.dyninfo_sect));
+ gdb::byte_vector got_sec (bfd_section_size (si.got_sect));
if (!bfd_get_section_contents (abfd, si.sym_sect, sym_sec.data (),
(file_ptr) 0, sym_sec.size ()))
diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c
index 0c610d2841..41b4e25737 100644
--- a/gdb/nto-tdep.c
+++ b/gdb/nto-tdep.c
@@ -319,8 +319,8 @@ nto_sniff_abi_note_section (bfd *abfd, asection *sect, void *obj)
const char *name;
const unsigned sizeof_Elf_Nhdr = 12;
- sectname = bfd_get_section_name (abfd, sect);
- sectsize = bfd_section_size (abfd, sect);
+ sectname = bfd_section_name (sect);
+ sectsize = bfd_section_size (sect);
if (sectsize > 128)
sectsize = 128;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 7cbcbbd01b..90c4650bd4 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -271,7 +271,7 @@ add_to_objfile_sections_full (struct bfd *abfd, struct bfd_section *asect,
{
flagword aflag;
- aflag = bfd_get_section_flags (abfd, asect);
+ aflag = bfd_section_flags (asect);
if (!(aflag & SEC_ALLOC))
return;
}
@@ -1119,15 +1119,15 @@ static int
insert_section_p (const struct bfd *abfd,
const struct bfd_section *section)
{
- const bfd_vma lma = bfd_section_lma (abfd, section);
+ const bfd_vma lma = bfd_section_lma (section);
- if (overlay_debugging && lma != 0 && lma != bfd_section_vma (abfd, section)
+ if (overlay_debugging && lma != 0 && lma != bfd_section_vma (section)
&& (bfd_get_file_flags (abfd) & BFD_IN_MEMORY) == 0)
/* This is an overlay section. IN_MEMORY check is needed to avoid
discarding sections from the "system supplied DSO" (aka vdso)
on some Linux systems (e.g. Fedora 11). */
return 0;
- if ((bfd_get_section_flags (abfd, section) & SEC_THREAD_LOCAL) != 0)
+ if ((bfd_section_flags (section) & SEC_THREAD_LOCAL) != 0)
/* This is a TLS section. */
return 0;
@@ -1220,10 +1220,10 @@ filter_overlapping_sections (struct obj_section **map, int map_size)
" (A) section `%s' from `%s' [%s, %s)\n"
" (B) section `%s' from `%s' [%s, %s).\n"
"Will ignore section B"),
- bfd_section_name (abfd1, bfds1), objfile_name (objf1),
+ bfd_section_name (bfds1), objfile_name (objf1),
paddress (gdbarch, sect1_addr),
paddress (gdbarch, sect1_endaddr),
- bfd_section_name (abfd2, bfds2), objfile_name (objf2),
+ bfd_section_name (bfds2), objfile_name (objf2),
paddress (gdbarch, sect2_addr),
paddress (gdbarch, sect2_endaddr));
}
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 239aba2c2a..68d36d408e 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -143,14 +143,14 @@ struct obj_section
/* The memory address of section S (vma + offset). */
#define obj_section_addr(s) \
- (bfd_get_section_vma ((s)->objfile->obfd, s->the_bfd_section) \
+ (bfd_section_vma (s->the_bfd_section) \
+ obj_section_offset (s))
/* The one-passed-the-end memory address of section S
(vma + size + offset). */
#define obj_section_endaddr(s) \
- (bfd_get_section_vma ((s)->objfile->obfd, s->the_bfd_section) \
- + bfd_get_section_size ((s)->the_bfd_section) \
+ (bfd_section_vma (s->the_bfd_section) \
+ + bfd_section_size ((s)->the_bfd_section) \
+ obj_section_offset (s))
/* The "objstats" structure provides a place for gdb to record some
diff --git a/gdb/osabi.c b/gdb/osabi.c
index 5d4bbcdff8..cdf72a7664 100644
--- a/gdb/osabi.c
+++ b/gdb/osabi.c
@@ -416,7 +416,7 @@ check_note (bfd *abfd, asection *sect, char *note, unsigned int *sectsize,
gdb_assert (notesz <= MAX_NOTESZ);
/* Check whether SECT is big enough to comtain the complete note. */
- if (notesz > bfd_section_size (abfd, sect))
+ if (notesz > bfd_section_size (sect))
return 0;
/* Check the note name. */
@@ -445,8 +445,8 @@ generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, void *obj)
unsigned int sectsize;
char *note;
- name = bfd_get_section_name (abfd, sect);
- sectsize = bfd_section_size (abfd, sect);
+ name = bfd_section_name (sect);
+ sectsize = bfd_section_size (sect);
/* Limit the amount of data to read. */
if (sectsize > MAX_NOTESZ)
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 82277a03f8..c6181c9dd4 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -1558,7 +1558,7 @@ ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
static int
ppc_linux_spu_section (bfd *abfd, asection *asect, void *user_data)
{
- return startswith (bfd_section_name (abfd, asect), "SPU/");
+ return startswith (bfd_section_name (asect), "SPU/");
}
static const struct target_desc *
@@ -1580,7 +1580,7 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
if (! section)
return NULL;
- switch (bfd_section_size (abfd, section))
+ switch (bfd_section_size (section))
{
case 48 * 4:
features.wordsize = 4;
diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c
index b29d04c135..6a7aabf877 100644
--- a/gdb/ppc64-tdep.c
+++ b/gdb/ppc64-tdep.c
@@ -593,8 +593,8 @@ ppc64_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
s->the_bfd_section,
&buf, addr - s->addr, 8);
if (res != 0)
- return extract_unsigned_integer (buf, 8, byte_order)
- - bfd_section_vma (s->bfd, s->the_bfd_section) + s->addr;
+ return (extract_unsigned_integer (buf, 8, byte_order)
+ - bfd_section_vma (s->the_bfd_section) + s->addr);
}
return addr;
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index d402d8733d..b55459e4ad 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1435,8 +1435,7 @@ record_btrace_target::xfer_partial (enum target_object object,
if (section != NULL)
{
/* Check if the section we found is readonly. */
- if ((bfd_get_section_flags (section->the_bfd_section->owner,
- section->the_bfd_section)
+ if ((bfd_section_flags (section->the_bfd_section)
& SEC_READONLY) != 0)
{
/* Truncate the request to fit into this section. */
diff --git a/gdb/record-full.c b/gdb/record-full.c
index c1d124f519..0c6cb62163 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -2350,9 +2350,9 @@ record_full_restore (void)
osec ? "succeeded" : "failed");
if (osec == NULL)
return;
- osec_size = bfd_section_size (core_bfd, osec);
+ osec_size = bfd_section_size (osec);
if (record_debug)
- fprintf_unfiltered (gdb_stdlog, "%s", bfd_section_name (core_bfd, osec));
+ fprintf_unfiltered (gdb_stdlog, "%s", bfd_section_name (osec));
/* Check the magic code. */
bfdcore_read (core_bfd, osec, &magic, sizeof (magic), &bfd_offset);
@@ -2599,10 +2599,9 @@ record_full_base_target::save_record (const char *recfilename)
error (_("Failed to create 'precord' section for corefile %s: %s"),
recfilename,
bfd_errmsg (bfd_get_error ()));
- bfd_set_section_size (obfd.get (), osec, save_size);
- bfd_set_section_vma (obfd.get (), osec, 0);
- bfd_set_section_alignment (obfd.get (), osec, 0);
- bfd_section_lma (obfd.get (), osec) = 0;
+ bfd_set_section_size (osec, save_size);
+ bfd_set_section_vma (osec, 0);
+ bfd_set_section_alignment (osec, 0);
/* Save corefile state. */
write_gcore_file (obfd.get ());
diff --git a/gdb/remote.c b/gdb/remote.c
index e39366d8b2..980864e070 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -8749,9 +8749,7 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf,
secp = target_section_by_addr (this, memaddr);
if (secp != NULL
- && (bfd_get_section_flags (secp->the_bfd_section->owner,
- secp->the_bfd_section)
- & SEC_READONLY))
+ && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
{
struct target_section *p;
ULONGEST memend = memaddr + len;
@@ -10656,11 +10654,11 @@ compare_sections_command (const char *args, int from_tty)
if (read_only && (s->flags & SEC_READONLY) == 0)
continue; /* Skip writeable sections */
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (size == 0)
continue; /* Skip zero-length section. */
- sectname = bfd_get_section_name (exec_bfd, s);
+ sectname = bfd_section_name (s);
if (args && strcmp (args, sectname) != 0)
continue; /* Not the section selected by user. */
@@ -13059,7 +13057,6 @@ void
remote_target::trace_set_readonly_regions ()
{
asection *s;
- bfd *abfd = NULL;
bfd_size_type size;
bfd_vma vma;
int anysecs = 0;
@@ -13083,8 +13080,8 @@ remote_target::trace_set_readonly_regions ()
continue;
anysecs = 1;
- vma = bfd_get_section_vma (abfd, s);
- size = bfd_get_section_size (s);
+ vma = bfd_section_vma (s);
+ size = bfd_section_size (s);
sprintf_vma (tmp1, vma);
sprintf_vma (tmp2, vma + size);
sec_length = 1 + strlen (tmp1) + 1 + strlen (tmp2);
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
index 4964f591a5..f2ff255736 100644
--- a/gdb/rs6000-aix-tdep.c
+++ b/gdb/rs6000-aix-tdep.c
@@ -1110,7 +1110,7 @@ rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
if (ldinfo_sec == NULL)
error (_("cannot find .ldinfo section from core file: %s"),
bfd_errmsg (bfd_get_error ()));
- ldinfo_size = bfd_get_section_size (ldinfo_sec);
+ ldinfo_size = bfd_section_size (ldinfo_sec);
gdb::byte_vector ldinfo_buf (ldinfo_size);
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 328b41cc59..47a232f6c6 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -3866,7 +3866,7 @@ bfd_uses_spe_extensions (bfd *abfd)
if (!sect)
return 0;
- size = bfd_get_section_size (sect);
+ size = bfd_section_size (sect);
contents = (gdb_byte *) xmalloc (size);
if (!bfd_get_section_contents (abfd, sect, contents, 0, size))
{
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 02ae28b4ea..ab3889ba45 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -346,7 +346,7 @@ s390_core_read_description (struct gdbarch *gdbarch,
te = (hwcap & HWCAP_S390_TE);
gs = (hwcap & HWCAP_S390_GS);
- switch (bfd_section_size (abfd, section))
+ switch (bfd_section_size (section))
{
case s390_sizeof_gregset:
if (high_gprs)
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 871efc59bc..463c0a0bd7 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -697,9 +697,7 @@ s390_load (struct s390_prologue_data *data,
struct target_section *secp;
secp = target_section_by_addr (current_top_target (), addr.k);
if (secp != NULL
- && (bfd_get_section_flags (secp->the_bfd_section->owner,
- secp->the_bfd_section)
- & SEC_READONLY))
+ && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
return pv_constant (read_memory_integer (addr.k, size,
data->byte_order));
}
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 1a25a0d4a9..8308190d90 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -303,15 +303,13 @@ solib_aix_bss_data_overlap (bfd *abfd)
section after the .data section (the problem has only been
observed when using the GNU linker, and the default linker
script always places the .data and .bss sections in that order). */
- if (bfd_section_vma (abfd, bss_sect)
- < bfd_section_vma (abfd, data_sect))
+ if (bfd_section_vma (bss_sect) < bfd_section_vma (data_sect))
return 0;
- if (bfd_section_vma (abfd, bss_sect)
- < bfd_section_vma (abfd, data_sect) + bfd_get_section_size (data_sect))
- return ((bfd_section_vma (abfd, data_sect)
- + bfd_get_section_size (data_sect))
- - bfd_section_vma (abfd, bss_sect));
+ if (bfd_section_vma (bss_sect)
+ < bfd_section_vma (data_sect) + bfd_section_size (data_sect))
+ return (bfd_section_vma (data_sect) + bfd_section_size (data_sect)
+ - bfd_section_vma (bss_sect));
return 0;
}
@@ -324,7 +322,7 @@ solib_aix_relocate_section_addresses (struct so_list *so,
{
struct bfd_section *bfd_sect = sec->the_bfd_section;
bfd *abfd = bfd_sect->owner;
- const char *section_name = bfd_section_name (abfd, bfd_sect);
+ const char *section_name = bfd_section_name (bfd_sect);
lm_info_aix *info = (lm_info_aix *) so->lm_info;
if (strcmp (section_name, ".text") == 0)
@@ -355,17 +353,17 @@ solib_aix_relocate_section_addresses (struct so_list *so,
CORE_ADDR data_offset = 0;
if (data_sect != NULL)
- data_offset = info->data_addr - bfd_section_vma (abfd, data_sect);
+ data_offset = info->data_addr - bfd_section_vma (data_sect);
- sec->addr = bfd_section_vma (abfd, bfd_sect) + data_offset;
+ sec->addr = bfd_section_vma (bfd_sect) + data_offset;
sec->addr += solib_aix_bss_data_overlap (abfd);
- sec->endaddr = sec->addr + bfd_section_size (abfd, bfd_sect);
+ sec->endaddr = sec->addr + bfd_section_size (bfd_sect);
}
else
{
/* All other sections should not be relocated. */
- sec->addr = bfd_section_vma (abfd, bfd_sect);
- sec->endaddr = sec->addr + bfd_section_size (abfd, bfd_sect);
+ sec->addr = bfd_section_vma (bfd_sect);
+ sec->endaddr = sec->addr + bfd_section_size (bfd_sect);
}
}
@@ -414,7 +412,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
= objfile->sections[objfile->sect_index_text].the_bfd_section;
offsets->offsets[objfile->sect_index_text]
- = info->text_addr + sect->filepos - bfd_section_vma (abfd, sect);
+ = info->text_addr + sect->filepos - bfd_section_vma (sect);
}
/* .data */
@@ -425,7 +423,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
= objfile->sections[objfile->sect_index_data].the_bfd_section;
offsets->offsets[objfile->sect_index_data]
- = info->data_addr - bfd_section_vma (abfd, sect);
+ = info->data_addr - bfd_section_vma (sect);
}
/* .bss
@@ -661,8 +659,7 @@ data_obj_section_from_objfile (struct objfile *objfile)
struct obj_section *osect;
ALL_OBJFILE_OSECTIONS (objfile, osect)
- if (strcmp (bfd_section_name (objfile->obfd, osect->the_bfd_section),
- ".data") == 0)
+ if (strcmp (bfd_section_name (osect->the_bfd_section), ".data") == 0)
return osect;
return NULL;
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 59b195f491..70d6f2e314 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -438,12 +438,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr)
such fallback to the file VMA address without the possibility of
having the section relocated to its actual in-memory address. */
- dyn_addr = bfd_section_vma (abfd, sect);
+ dyn_addr = bfd_section_vma (sect);
}
/* Read in .dynamic from the BFD. We will get the actual value
from memory later. */
- sect_size = bfd_section_size (abfd, sect);
+ sect_size = bfd_section_size (sect);
buf = bufstart = (gdb_byte *) alloca (sect_size);
if (!bfd_get_section_contents (abfd, sect,
buf, 0, sect_size))
@@ -807,7 +807,7 @@ enable_break (void)
/* Read the contents of the .interp section into a local buffer;
the contents specify the dynamic linker this program uses. */
- interp_sect_size = bfd_section_size (exec_bfd, interp_sect);
+ interp_sect_size = bfd_section_size (interp_sect);
buf = (char *) alloca (interp_sect_size);
bfd_get_section_contents (exec_bfd, interp_sect,
buf, 0, interp_sect_size);
@@ -839,24 +839,20 @@ enable_break (void)
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
if (interp_sect)
{
- info->interp_text_sect_low
- = bfd_section_vma (tmp_bfd.get (), interp_sect);
+ info->interp_text_sect_low = bfd_section_vma (interp_sect);
info->interp_text_sect_low
+= displacement_from_map (ldm, info->interp_text_sect_low);
info->interp_text_sect_high
- = info->interp_text_sect_low
- + bfd_section_size (tmp_bfd.get (), interp_sect);
+ = info->interp_text_sect_low + bfd_section_size (interp_sect);
}
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
if (interp_sect)
{
- info->interp_plt_sect_low =
- bfd_section_vma (tmp_bfd.get (), interp_sect);
+ info->interp_plt_sect_low = bfd_section_vma (interp_sect);
info->interp_plt_sect_low
+= displacement_from_map (ldm, info->interp_plt_sect_low);
- info->interp_plt_sect_high =
- info->interp_plt_sect_low + bfd_section_size (tmp_bfd.get (),
- interp_sect);
+ info->interp_plt_sect_high
+ = info->interp_plt_sect_low + bfd_section_size (interp_sect);
}
addr = gdb_bfd_lookup_symbol (tmp_bfd.get (), cmp_name,
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index fdd4b34530..08fa576867 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -546,7 +546,7 @@ enable_break2 (void)
/* Read the contents of the .interp section into a local buffer;
the contents specify the dynamic linker this program uses. */
- interp_sect_size = bfd_section_size (exec_bfd, interp_sect);
+ interp_sect_size = bfd_section_size (interp_sect);
buf = (char *) alloca (interp_sect_size);
bfd_get_section_contents (exec_bfd, interp_sect,
buf, 0, interp_sect_size);
@@ -603,24 +603,20 @@ enable_break2 (void)
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
if (interp_sect)
{
- interp_text_sect_low
- = bfd_section_vma (tmp_bfd.get (), interp_sect);
+ interp_text_sect_low = bfd_section_vma (interp_sect);
interp_text_sect_low
+= displacement_from_map (ldm, interp_text_sect_low);
interp_text_sect_high
- = interp_text_sect_low + bfd_section_size (tmp_bfd.get (),
- interp_sect);
+ = interp_text_sect_low + bfd_section_size (interp_sect);
}
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
if (interp_sect)
{
- interp_plt_sect_low =
- bfd_section_vma (tmp_bfd.get (), interp_sect);
+ interp_plt_sect_low = bfd_section_vma (interp_sect);
interp_plt_sect_low
+= displacement_from_map (ldm, interp_plt_sect_low);
interp_plt_sect_high =
- interp_plt_sect_low + bfd_section_size (tmp_bfd.get (),
- interp_sect);
+ interp_plt_sect_low + bfd_section_size (interp_sect);
}
addr = gdb_bfd_lookup_symbol (tmp_bfd.get (), cmp_name, "_dl_debug_addr");
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
index c5e0acaf02..49e470adb6 100644
--- a/gdb/solib-spu.c
+++ b/gdb/solib-spu.c
@@ -364,7 +364,7 @@ spu_bfd_open (const char *pathname)
spu_name = bfd_get_section_by_name (abfd.get (), ".note.spu_name");
if (spu_name)
{
- int sect_size = bfd_section_size (abfd.get (), spu_name);
+ int sect_size = bfd_section_size (spu_name);
if (sect_size > 20)
{
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index ffae26bfc5..e04fde942d 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -234,7 +234,7 @@ lm_addr_check (const struct so_list *so, bfd *abfd)
if (dyninfo_sect == NULL)
goto set_addr;
- dynaddr = bfd_section_vma (abfd, dyninfo_sect);
+ dynaddr = bfd_section_vma (dyninfo_sect);
if (dynaddr + l_addr != l_dynaddr)
{
@@ -559,7 +559,7 @@ find_program_interpreter (void)
interp_sect = bfd_get_section_by_name (exec_bfd, ".interp");
if (interp_sect != NULL)
{
- int sect_size = bfd_section_size (exec_bfd, interp_sect);
+ int sect_size = bfd_section_size (interp_sect);
gdb::byte_vector buf (sect_size);
bfd_get_section_contents (exec_bfd, interp_sect, buf.data (), 0,
@@ -618,12 +618,12 @@ scan_dyntag (const int desired_dyntag, bfd *abfd, CORE_ADDR *ptr,
such fallback to the file VMA address without the possibility of
having the section relocated to its actual in-memory address. */
- dyn_addr = bfd_section_vma (abfd, sect);
+ dyn_addr = bfd_section_vma (sect);
}
/* Read in .dynamic from the BFD. We will get the actual value
from memory later. */
- sect_size = bfd_section_size (abfd, sect);
+ sect_size = bfd_section_size (sect);
buf = bufstart = (gdb_byte *) alloca (sect_size);
if (!bfd_get_section_contents (abfd, sect,
buf, 0, sect_size))
@@ -2255,20 +2255,18 @@ enable_break (struct svr4_info *info, int from_tty)
interp_sect = bfd_get_section_by_name (tmp_bfd, ".text");
if (interp_sect)
{
- info->interp_text_sect_low =
- bfd_section_vma (tmp_bfd, interp_sect) + load_addr;
- info->interp_text_sect_high =
- info->interp_text_sect_low
- + bfd_section_size (tmp_bfd, interp_sect);
+ info->interp_text_sect_low
+ = bfd_section_vma (interp_sect) + load_addr;
+ info->interp_text_sect_high
+ = info->interp_text_sect_low + bfd_section_size (interp_sect);
}
interp_sect = bfd_get_section_by_name (tmp_bfd, ".plt");
if (interp_sect)
{
- info->interp_plt_sect_low =
- bfd_section_vma (tmp_bfd, interp_sect) + load_addr;
- info->interp_plt_sect_high =
- info->interp_plt_sect_low
- + bfd_section_size (tmp_bfd, interp_sect);
+ info->interp_plt_sect_low
+ = bfd_section_vma (interp_sect) + load_addr;
+ info->interp_plt_sect_high
+ = info->interp_plt_sect_low + bfd_section_size (interp_sect);
}
svr4_create_solib_event_breakpoints (info, target_gdbarch (), sym_addr);
@@ -2392,20 +2390,18 @@ enable_break (struct svr4_info *info, int from_tty)
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".text");
if (interp_sect)
{
- info->interp_text_sect_low =
- bfd_section_vma (tmp_bfd.get (), interp_sect) + load_addr;
- info->interp_text_sect_high =
- info->interp_text_sect_low
- + bfd_section_size (tmp_bfd.get (), interp_sect);
+ info->interp_text_sect_low
+ = bfd_section_vma (interp_sect) + load_addr;
+ info->interp_text_sect_high
+ = info->interp_text_sect_low + bfd_section_size (interp_sect);
}
interp_sect = bfd_get_section_by_name (tmp_bfd.get (), ".plt");
if (interp_sect)
{
- info->interp_plt_sect_low =
- bfd_section_vma (tmp_bfd.get (), interp_sect) + load_addr;
- info->interp_plt_sect_high =
- info->interp_plt_sect_low
- + bfd_section_size (tmp_bfd.get (), interp_sect);
+ info->interp_plt_sect_low
+ = bfd_section_vma (interp_sect) + load_addr;
+ info->interp_plt_sect_high
+ = info->interp_plt_sect_low + bfd_section_size (interp_sect);
}
/* Now try to set a breakpoint in the dynamic linker. */
@@ -2733,7 +2729,7 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
gdb_byte *buf_filesz_p = (gdb_byte *) &phdrp->p_filesz;
CORE_ADDR filesz;
- content2 = (bfd_get_section_flags (exec_bfd, plt2_asect)
+ content2 = (bfd_section_flags (plt2_asect)
& SEC_HAS_CONTENTS) != 0;
filesz = extract_unsigned_integer (buf_filesz_p, 4,
@@ -2742,9 +2738,9 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
/* PLT2_ASECT is from on-disk file (exec_bfd) while
FILESZ is from the in-memory image. */
if (content2)
- filesz += bfd_get_section_size (plt2_asect);
+ filesz += bfd_section_size (plt2_asect);
else
- filesz -= bfd_get_section_size (plt2_asect);
+ filesz -= bfd_section_size (plt2_asect);
store_unsigned_integer (buf_filesz_p, 4, byte_order,
filesz);
@@ -2867,7 +2863,7 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
gdb_byte *buf_filesz_p = (gdb_byte *) &phdrp->p_filesz;
CORE_ADDR filesz;
- content2 = (bfd_get_section_flags (exec_bfd, plt2_asect)
+ content2 = (bfd_section_flags (plt2_asect)
& SEC_HAS_CONTENTS) != 0;
filesz = extract_unsigned_integer (buf_filesz_p, 8,
@@ -2876,9 +2872,9 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
/* PLT2_ASECT is from on-disk file (exec_bfd) while
FILESZ is from the in-memory image. */
if (content2)
- filesz += bfd_get_section_size (plt2_asect);
+ filesz += bfd_section_size (plt2_asect);
else
- filesz -= bfd_get_section_size (plt2_asect);
+ filesz -= bfd_section_size (plt2_asect);
store_unsigned_integer (buf_filesz_p, 8, byte_order,
filesz);
@@ -2972,8 +2968,7 @@ svr4_relocate_main_executable (void)
for (asect = exec_bfd->sections; asect != NULL; asect = asect->next)
exec_set_section_address (bfd_get_filename (exec_bfd), asect->index,
- (bfd_section_vma (exec_bfd, asect)
- + displacement));
+ bfd_section_vma (asect) + displacement);
}
}
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 1ccbc27b2b..3fd180850c 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -323,7 +323,7 @@ solib_target_relocate_section_addresses (struct so_list *so,
for (i = 0, sect = so->abfd->sections;
sect != NULL;
i++, sect = sect->next)
- if ((bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+ if ((bfd_section_flags (sect) & SEC_ALLOC))
num_alloc_sections++;
if (num_alloc_sections != li->section_bases.size ())
@@ -341,14 +341,14 @@ Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
sect != NULL;
i++, sect = sect->next)
{
- if (!(bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
+ if (!(bfd_section_flags (sect) & SEC_ALLOC))
continue;
- if (bfd_section_size (so->abfd, sect) > 0)
+ if (bfd_section_size (sect) > 0)
{
CORE_ADDR low, high;
low = li->section_bases[i];
- high = low + bfd_section_size (so->abfd, sect) - 1;
+ high = low + bfd_section_size (sect) - 1;
if (low < so->addr_low)
so->addr_low = low;
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
index 9dbb633734..635366b4f1 100644
--- a/gdb/spu-linux-nat.c
+++ b/gdb/spu-linux-nat.c
@@ -363,7 +363,7 @@ spu_bfd_open (ULONGEST addr)
spu_name = bfd_get_section_by_name (nbfd.get (), ".note.spu_name");
if (spu_name)
{
- int sect_size = bfd_section_size (nbfd.get (), spu_name);
+ int sect_size = bfd_section_size (spu_name);
if (sect_size > 20)
{
char *buf = (char *)alloca (sect_size - 20 + 1);
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index d01f3af300..5360efb12f 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -1833,7 +1833,7 @@ spu_get_overlay_table (struct objfile *objfile)
continue;
ALL_OBJFILE_OSECTIONS (objfile, osect)
- if (vma == bfd_section_vma (objfile->obfd, osect->the_bfd_section)
+ if (vma == bfd_section_vma (osect->the_bfd_section)
&& pos == osect->the_bfd_section->filepos)
{
int ndx = osect - objfile->sections;
@@ -1921,9 +1921,9 @@ spu_overlay_new_objfile (struct objfile *objfile)
int ndx = osect - objfile->sections;
if (ovly_table[ndx].mapped_ptr == 0)
- bfd_section_lma (obfd, bsect) = bfd_section_vma (obfd, bsect);
+ bfd_set_section_lma (bsect, bfd_section_vma (bsect));
else
- bfd_section_lma (obfd, bsect) = SPU_OVERLAY_LMA + bsect->filepos;
+ bfd_set_section_lma (bsect, SPU_OVERLAY_LMA + bsect->filepos);
}
}
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 05542c1391..82fb17ed16 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -111,9 +111,9 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
section_addr_info sai;
for (sec = nbfd->sections; sec != NULL; sec = sec->next)
- if ((bfd_get_section_flags (nbfd, sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
- sai.emplace_back (bfd_get_section_vma (nbfd, sec) + loadbase,
- bfd_get_section_name (nbfd, sec),
+ if ((bfd_section_flags (sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
+ sai.emplace_back (bfd_section_vma (sec) + loadbase,
+ bfd_section_name (sec),
sec->index);
if (from_tty)
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 5252c727aa..b914b05a17 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -200,15 +200,14 @@ find_lowest_section (bfd *abfd, asection *sect, void *obj)
{
asection **lowest = (asection **) obj;
- if (0 == (bfd_get_section_flags (abfd, sect) & (SEC_ALLOC | SEC_LOAD)))
+ if (0 == (bfd_section_flags (sect) & (SEC_ALLOC | SEC_LOAD)))
return;
if (!*lowest)
*lowest = sect; /* First loadable section */
- else if (bfd_section_vma (abfd, *lowest) > bfd_section_vma (abfd, sect))
+ else if (bfd_section_vma (*lowest) > bfd_section_vma (sect))
*lowest = sect; /* A lower loadable section */
- else if (bfd_section_vma (abfd, *lowest) == bfd_section_vma (abfd, sect)
- && (bfd_section_size (abfd, (*lowest))
- <= bfd_section_size (abfd, sect)))
+ else if (bfd_section_vma (*lowest) == bfd_section_vma (sect)
+ && (bfd_section_size (*lowest) <= bfd_section_size (sect)))
*lowest = sect;
}
@@ -228,10 +227,10 @@ build_section_addr_info_from_section_table (const struct target_section *start,
struct bfd_section *asect = stp->the_bfd_section;
bfd *abfd = asect->owner;
- if (bfd_get_section_flags (abfd, asect) & (SEC_ALLOC | SEC_LOAD)
+ if (bfd_section_flags (asect) & (SEC_ALLOC | SEC_LOAD)
&& sap.size () < end - start)
sap.emplace_back (stp->addr,
- bfd_section_name (abfd, asect),
+ bfd_section_name (asect),
gdb_bfd_section_index (abfd, asect));
}
@@ -247,9 +246,9 @@ build_section_addr_info_from_bfd (bfd *abfd)
section_addr_info sap;
for (sec = abfd->sections; sec != NULL; sec = sec->next)
- if (bfd_get_section_flags (abfd, sec) & (SEC_ALLOC | SEC_LOAD))
- sap.emplace_back (bfd_get_section_vma (abfd, sec),
- bfd_get_section_name (abfd, sec),
+ if (bfd_section_flags (sec) & (SEC_ALLOC | SEC_LOAD))
+ sap.emplace_back (bfd_section_vma (sec),
+ bfd_section_name (sec),
gdb_bfd_section_index (abfd, sec));
return sap;
@@ -353,10 +352,10 @@ place_section (bfd *abfd, asection *sect, void *obj)
struct place_section_arg *arg = (struct place_section_arg *) obj;
CORE_ADDR *offsets = arg->offsets->offsets, start_addr;
int done;
- ULONGEST align = ((ULONGEST) 1) << bfd_get_section_alignment (abfd, sect);
+ ULONGEST align = ((ULONGEST) 1) << bfd_section_alignment (sect);
/* We are only interested in allocated sections. */
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
return;
/* If the user specified an offset, honor it. */
@@ -380,7 +379,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
continue;
/* We can only conflict with allocated sections. */
- if ((bfd_get_section_flags (abfd, cur_sec) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (cur_sec) & SEC_ALLOC) == 0)
continue;
/* If the section offset is 0, either the section has not been placed
@@ -390,10 +389,10 @@ place_section (bfd *abfd, asection *sect, void *obj)
continue;
/* If this section would overlap us, then we must move up. */
- if (start_addr + bfd_get_section_size (sect) > offsets[indx]
- && start_addr < offsets[indx] + bfd_get_section_size (cur_sec))
+ if (start_addr + bfd_section_size (sect) > offsets[indx]
+ && start_addr < offsets[indx] + bfd_section_size (cur_sec))
{
- start_addr = offsets[indx] + bfd_get_section_size (cur_sec);
+ start_addr = offsets[indx] + bfd_section_size (cur_sec);
start_addr = (start_addr + align - 1) & -align;
done = 0;
break;
@@ -405,7 +404,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
while (!done);
offsets[gdb_bfd_section_index (abfd, sect)] = start_addr;
- arg->lowest = start_addr + bfd_get_section_size (sect);
+ arg->lowest = start_addr + bfd_section_size (sect);
}
/* Store section_addr_info as prepared (made relative and with SECTINDEX
@@ -510,7 +509,7 @@ addr_info_make_relative (section_addr_info *addrs, bfd *abfd)
lower_offset = 0;
}
else
- lower_offset = bfd_section_vma (bfd_get_filename (abfd), lower_sect);
+ lower_offset = bfd_section_vma (lower_sect);
/* Create ADDRS_TO_ABFD_ADDRS array to map the sections in ADDRS to sections
in ABFD. Section names are not unique - there can be multiple sections of
@@ -658,7 +657,7 @@ default_symfile_offsets (struct objfile *objfile,
for (cur_sec = abfd->sections; cur_sec != NULL; cur_sec = cur_sec->next)
/* We do not expect this to happen; just skip this step if the
relocatable file has a section with an assigned VMA. */
- if (bfd_section_vma (abfd, cur_sec) != 0)
+ if (bfd_section_vma (cur_sec) != 0)
break;
if (cur_sec == NULL)
@@ -700,10 +699,10 @@ default_symfile_offsets (struct objfile *objfile,
for (cur_sec = abfd->sections; cur_sec != NULL;
cur_sec = cur_sec->next)
{
- if ((bfd_get_section_flags (abfd, cur_sec) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (cur_sec) & SEC_ALLOC) == 0)
continue;
- bfd_set_section_vma (abfd, cur_sec, offsets[cur_sec->index]);
+ bfd_set_section_vma (cur_sec, offsets[cur_sec->index]);
exec_set_section_address (bfd_get_filename (abfd),
cur_sec->index,
offsets[cur_sec->index]);
@@ -740,7 +739,7 @@ default_symfile_segments (bfd *abfd)
/* Make sure there is at least one loadable section in the file. */
for (sect = abfd->sections; sect != NULL; sect = sect->next)
{
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
continue;
break;
@@ -748,8 +747,8 @@ default_symfile_segments (bfd *abfd)
if (sect == NULL)
return NULL;
- low = bfd_get_section_vma (abfd, sect);
- high = low + bfd_get_section_size (sect);
+ low = bfd_section_vma (sect);
+ high = low + bfd_section_size (sect);
data = XCNEW (struct symfile_segment_data);
data->num_segments = 1;
@@ -763,14 +762,14 @@ default_symfile_segments (bfd *abfd)
{
CORE_ADDR vma;
- if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (sect) & SEC_ALLOC) == 0)
continue;
- vma = bfd_get_section_vma (abfd, sect);
+ vma = bfd_section_vma (sect);
if (vma < low)
low = vma;
- if (vma + bfd_get_section_size (sect) > high)
- high = vma + bfd_get_section_size (sect);
+ if (vma + bfd_section_size (sect) > high)
+ high = vma + bfd_section_size (sect);
data->segment_info[i] = 1;
}
@@ -872,9 +871,9 @@ init_entry_point_info (struct objfile *objfile)
{
struct bfd_section *sect = osect->the_bfd_section;
- if (entry_point >= bfd_get_section_vma (objfile->obfd, sect)
- && entry_point < (bfd_get_section_vma (objfile->obfd, sect)
- + bfd_get_section_size (sect)))
+ if (entry_point >= bfd_section_vma (sect)
+ && entry_point < (bfd_section_vma (sect)
+ + bfd_section_size (sect)))
{
ei->the_bfd_section_index
= gdb_bfd_section_index (objfile->obfd, sect);
@@ -1878,7 +1877,7 @@ add_section_size_callback (bfd *abfd, asection *asec, void *data)
{
bfd_size_type *sum = (bfd_size_type *) data;
- *sum += bfd_get_section_size (asec);
+ *sum += bfd_section_size (asec);
}
/* Opaque data for load_progress. */
@@ -2001,16 +2000,16 @@ static void
load_section_callback (bfd *abfd, asection *asec, void *data)
{
struct load_section_data *args = (struct load_section_data *) data;
- bfd_size_type size = bfd_get_section_size (asec);
- const char *sect_name = bfd_get_section_name (abfd, asec);
+ bfd_size_type size = bfd_section_size (asec);
+ const char *sect_name = bfd_section_name (asec);
- if ((bfd_get_section_flags (abfd, asec) & SEC_LOAD) == 0)
+ if ((bfd_section_flags (asec) & SEC_LOAD) == 0)
return;
if (size == 0)
return;
- ULONGEST begin = bfd_section_lma (abfd, asec) + args->load_offset;
+ ULONGEST begin = bfd_section_lma (asec) + args->load_offset;
ULONGEST end = begin + size;
gdb_byte *buffer = (gdb_byte *) xmalloc (size);
bfd_get_section_contents (abfd, asec, buffer, 0, size);
@@ -2988,9 +2987,8 @@ section_is_overlay (struct obj_section *section)
{
asection *bfd_section = section->the_bfd_section;
- if (bfd_section_lma (abfd, bfd_section) != 0
- && bfd_section_lma (abfd, bfd_section)
- != bfd_section_vma (abfd, bfd_section))
+ if (bfd_section_lma (bfd_section) != 0
+ && bfd_section_lma (bfd_section) != bfd_section_vma (bfd_section))
return 1;
}
@@ -3061,15 +3059,14 @@ pc_in_unmapped_range (CORE_ADDR pc, struct obj_section *section)
{
if (section_is_overlay (section))
{
- bfd *abfd = section->objfile->obfd;
asection *bfd_section = section->the_bfd_section;
/* We assume the LMA is relocated by the same offset as the VMA. */
- bfd_vma size = bfd_get_section_size (bfd_section);
+ bfd_vma size = bfd_section_size (bfd_section);
CORE_ADDR offset = obj_section_offset (section);
- if (bfd_get_section_lma (abfd, bfd_section) + offset <= pc
- && pc < bfd_get_section_lma (abfd, bfd_section) + offset + size)
+ if (bfd_section_lma (bfd_section) + offset <= pc
+ && pc < bfd_section_lma (bfd_section) + offset + size)
return 1;
}
@@ -3117,8 +3114,8 @@ overlay_unmapped_address (CORE_ADDR pc, struct obj_section *section)
{
asection *bfd_section = section->the_bfd_section;
- return pc + bfd_section_lma (abfd, bfd_section)
- - bfd_section_vma (abfd, bfd_section);
+ return (pc + bfd_section_lma (bfd_section)
+ - bfd_section_vma (bfd_section));
}
return pc;
@@ -3135,8 +3132,8 @@ overlay_mapped_address (CORE_ADDR pc, struct obj_section *section)
{
asection *bfd_section = section->the_bfd_section;
- return pc + bfd_section_vma (abfd, bfd_section)
- - bfd_section_lma (abfd, bfd_section);
+ return (pc + bfd_section_vma (bfd_section)
+ - bfd_section_lma (bfd_section));
}
return pc;
@@ -3241,10 +3238,10 @@ list_overlays_command (const char *args, int from_tty)
bfd_vma lma, vma;
int size;
- vma = bfd_section_vma (objfile->obfd, osect->the_bfd_section);
- lma = bfd_section_lma (objfile->obfd, osect->the_bfd_section);
- size = bfd_get_section_size (osect->the_bfd_section);
- name = bfd_section_name (objfile->obfd, osect->the_bfd_section);
+ vma = bfd_section_vma (osect->the_bfd_section);
+ lma = bfd_section_lma (osect->the_bfd_section);
+ size = bfd_section_size (osect->the_bfd_section);
+ name = bfd_section_name (osect->the_bfd_section);
printf_filtered ("Section %s, loaded at ", name);
fputs_filtered (paddress (gdbarch, lma), gdb_stdout);
@@ -3282,8 +3279,7 @@ map_overlay_command (const char *args, int from_tty)
/* First, find a section matching the user supplied argument. */
for (objfile *obj_file : current_program_space->objfiles ())
ALL_OBJFILE_OSECTIONS (obj_file, sec)
- if (!strcmp (bfd_section_name (obj_file->obfd, sec->the_bfd_section),
- args))
+ if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
{
/* Now, check to see if the section is an overlay. */
if (!section_is_overlay (sec))
@@ -3301,8 +3297,7 @@ map_overlay_command (const char *args, int from_tty)
{
if (info_verbose)
printf_unfiltered (_("Note: section %s unmapped by overlap\n"),
- bfd_section_name (obj_file->obfd,
- sec2->the_bfd_section));
+ bfd_section_name (sec2->the_bfd_section));
sec2->ovly_mapped = 0; /* sec2 overlaps sec: unmap sec2. */
}
return;
@@ -3330,7 +3325,7 @@ unmap_overlay_command (const char *args, int from_tty)
/* First, find a section matching the user supplied argument. */
for (objfile *objfile : current_program_space->objfiles ())
ALL_OBJFILE_OSECTIONS (objfile, sec)
- if (!strcmp (bfd_section_name (objfile->obfd, sec->the_bfd_section), args))
+ if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
{
if (!sec->ovly_mapped)
error (_("Section %s is not mapped"), args);
@@ -3539,14 +3534,14 @@ simple_overlay_update_1 (struct obj_section *osect)
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
for (i = 0; i < cache_novlys; i++)
- if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
- && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+ if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+ && cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
{
read_target_long_array (cache_ovly_table_base + i * word_size,
(unsigned int *) cache_ovly_table[i],
4, word_size, byte_order);
- if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
- && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+ if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+ && cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
{
osect->ovly_mapped = cache_ovly_table[i][MAPPED];
return 1;
@@ -3607,8 +3602,8 @@ simple_overlay_update (struct obj_section *osect)
asection *bsect = osect->the_bfd_section;
for (i = 0; i < cache_novlys; i++)
- if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
- && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect))
+ if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
+ && cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
{ /* obj_section matches i'th entry in ovly_table. */
osect->ovly_mapped = cache_ovly_table[i][MAPPED];
break; /* finished with inner for loop: break out. */
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 7666de390c..4699fd0920 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -244,8 +244,7 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
{
if (section->the_bfd_section != NULL)
fprintf_filtered (outfile, " section %s",
- bfd_section_name (objfile->obfd,
- section->the_bfd_section));
+ bfd_section_name (section->the_bfd_section));
else
fprintf_filtered (outfile, " spurious section %ld",
(long) (section - objfile->sections));
@@ -525,8 +524,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
outfile);
if (section)
fprintf_filtered (outfile, " section %s\n",
- bfd_section_name (section->the_bfd_section->owner,
- section->the_bfd_section));
+ bfd_section_name (section->the_bfd_section));
else
fprintf_filtered (outfile, "\n");
return;
@@ -596,8 +594,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
outfile);
if (section)
fprintf_filtered (outfile, " section %s",
- bfd_section_name (section->the_bfd_section->owner,
- section->the_bfd_section));
+ bfd_section_name (section->the_bfd_section));
break;
case LOC_REGISTER:
@@ -638,8 +635,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
outfile);
if (section)
fprintf_filtered (outfile, " section %s",
- bfd_section_name (section->the_bfd_section->owner,
- section->the_bfd_section));
+ bfd_section_name (section->the_bfd_section));
break;
case LOC_BLOCK:
@@ -655,8 +651,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
outfile);
if (section)
fprintf_filtered (outfile, " section %s",
- bfd_section_name (section->the_bfd_section->owner,
- section->the_bfd_section));
+ bfd_section_name (section->the_bfd_section));
break;
case LOC_COMPUTED:
diff --git a/gdb/symtab.c b/gdb/symtab.c
index e2edad4fb1..35eab08cb3 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1033,20 +1033,17 @@ matching_obj_sections (struct obj_section *obj_first,
have the same size, address, and name. We can't compare section indexes,
which would be more reliable, because some sections may have been
stripped. */
- if (bfd_get_section_size (first) != bfd_get_section_size (second))
+ if (bfd_section_size (first) != bfd_section_size (second))
return 0;
/* In-memory addresses may start at a different offset, relativize them. */
- if (bfd_get_section_vma (first->owner, first)
- - bfd_get_start_address (first->owner)
- != bfd_get_section_vma (second->owner, second)
- - bfd_get_start_address (second->owner))
+ if (bfd_section_vma (first) - bfd_get_start_address (first->owner)
+ != bfd_section_vma (second) - bfd_get_start_address (second->owner))
return 0;
- if (bfd_get_section_name (first->owner, first) == NULL
- || bfd_get_section_name (second->owner, second) == NULL
- || strcmp (bfd_get_section_name (first->owner, first),
- bfd_get_section_name (second->owner, second)) != 0)
+ if (bfd_section_name (first) == NULL
+ || bfd_section_name (second) == NULL
+ || strcmp (bfd_section_name (first), bfd_section_name (second)) != 0)
return 0;
/* Otherwise check that they are in corresponding objfiles. */
diff --git a/gdb/target.c b/gdb/target.c
index 599e22a724..78bdfeb49a 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -1042,9 +1042,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object,
secp = target_section_by_addr (ops, memaddr);
if (secp != NULL
- && (bfd_get_section_flags (secp->the_bfd_section->owner,
- secp->the_bfd_section)
- & SEC_READONLY))
+ && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
{
table = target_get_section_table (ops);
return section_table_xfer_memory_partial (readbuf, writebuf,
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index c4fde913af..26030e0a92 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -794,8 +794,7 @@ windows_make_so (const char *name, LPVOID load_addr)
file header and the section alignment. */
cygwin_load_start = (CORE_ADDR) (uintptr_t) ((char *)
load_addr + 0x1000);
- cygwin_load_end = cygwin_load_start + bfd_section_size (abfd.get (),
- text);
+ cygwin_load_end = cygwin_load_start + bfd_section_size (text);
}
#endif
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index a17031a110..2fa2706653 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -267,9 +267,9 @@ find_targ_sec (bfd *abfd, asection *sect, void *obj)
if (sect->target_index == args->targ_index)
{
/* This is the section. Figure out what SECT_OFF_* code it is. */
- if (bfd_get_section_flags (abfd, sect) & SEC_CODE)
+ if (bfd_section_flags (sect) & SEC_CODE)
*args->resultp = SECT_OFF_TEXT (objfile);
- else if (bfd_get_section_flags (abfd, sect) & SEC_LOAD)
+ else if (bfd_section_flags (sect) & SEC_LOAD)
*args->resultp = SECT_OFF_DATA (objfile);
else
*args->resultp = gdb_bfd_section_index (abfd, sect);
@@ -2354,7 +2354,7 @@ scan_xcoff_symtab (minimal_symbol_reader &reader,
section. */
bfd_sect = secnum_to_bfd_section (symbol.n_scnum, objfile);
if (bfd_sect)
- toc_offset -= bfd_section_vma (objfile->obfd, bfd_sect);
+ toc_offset -= bfd_section_vma (bfd_sect);
break;
case XMC_TC:
@@ -2952,7 +2952,7 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags)
secp = bfd_get_section_by_name (abfd, ".debug");
if (secp)
{
- length = bfd_section_size (abfd, secp);
+ length = bfd_section_size (secp);
if (length)
{
debugsec
@@ -3029,8 +3029,7 @@ xcoff_symfile_offsets (struct objfile *objfile,
if (objfile->num_sections == 0)
return; /* Is that even possible? Better safe than sorry. */
- first_section_name
- = bfd_section_name (objfile->obfd, objfile->sections[0].the_bfd_section);
+ first_section_name = bfd_section_name (objfile->sections[0].the_bfd_section);
if (objfile->sect_index_text == 0
&& strcmp (first_section_name, ".text") != 0)
@@ -3089,7 +3088,7 @@ xcoff_get_core_n_import_files (bfd *abfd)
if (sect == NULL)
return -1; /* Not a core file. */
- for (offset = 0; offset < bfd_get_section_size (sect);)
+ for (offset = 0; offset < bfd_section_size (sect);)
{
int next;
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index a2ebab5e04..84285aa30d 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * corefile.c, * symtab.c: Update throughout for bfd section
+ macro and function changes.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* Makefile.in: Re-generate.
diff --git a/gprof/corefile.c b/gprof/corefile.c
index 3f350f5f6b..ba6fd9c54f 100644
--- a/gprof/corefile.c
+++ b/gprof/corefile.c
@@ -271,17 +271,17 @@ core_init (const char * aout_name)
void
core_get_text_space (bfd *cbfd)
{
- core_text_space = malloc (bfd_get_section_size (core_text_sect));
+ core_text_space = malloc (bfd_section_size (core_text_sect));
if (!core_text_space)
{
fprintf (stderr, _("%s: ran out room for %lu bytes of text space\n"),
- whoami, (unsigned long) bfd_get_section_size (core_text_sect));
+ whoami, (unsigned long) bfd_section_size (core_text_sect));
done (1);
}
if (!bfd_get_section_contents (cbfd, core_text_sect, core_text_space,
- 0, bfd_get_section_size (core_text_sect)))
+ 0, bfd_section_size (core_text_sect)))
{
bfd_perror ("bfd_get_section_contents");
free (core_text_space);
@@ -675,7 +675,7 @@ core_create_function_syms (void)
sym_sec = core_syms[i]->section;
symtab.limit->addr = core_syms[i]->value;
if (sym_sec)
- symtab.limit->addr += bfd_get_section_vma (sym_sec->owner, sym_sec);
+ symtab.limit->addr += bfd_section_vma (sym_sec);
if (found)
{
@@ -734,8 +734,8 @@ core_create_function_syms (void)
section containing the symbol, if available. */
min_vma = MIN (symtab.limit->addr, min_vma);
if (sym_sec)
- max_vma = MAX (bfd_get_section_vma (sym_sec->owner, sym_sec)
- + bfd_section_size (sym_sec->owner, sym_sec) - 1,
+ max_vma = MAX (bfd_section_vma (sym_sec)
+ + bfd_section_size (sym_sec) - 1,
max_vma);
else
max_vma = MAX (symtab.limit->addr, max_vma);
@@ -787,7 +787,7 @@ core_create_line_syms (void)
ltab.len = 0;
prev_line_num = 0;
- vma_high = core_text_sect->vma + bfd_get_section_size (core_text_sect);
+ vma_high = core_text_sect->vma + bfd_section_size (core_text_sect);
for (vma = core_text_sect->vma; vma < vma_high; vma += min_insn_size)
{
unsigned int len;
diff --git a/gprof/symtab.c b/gprof/symtab.c
index 70eb41573b..eb63aa926a 100644
--- a/gprof/symtab.c
+++ b/gprof/symtab.c
@@ -149,7 +149,7 @@ symtab_finalize (Sym_Table *tab)
if (tab->len > 0 && dst[-1].end_addr == 0)
dst[-1].end_addr
- = core_text_sect->vma + bfd_get_section_size (core_text_sect) - 1;
+ = core_text_sect->vma + bfd_section_size (core_text_sect) - 1;
DBG (AOUTDEBUG | IDDEBUG,
printf ("[symtab_finalize]: removed %d duplicate entries\n",
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e8f9ed7365..2abb558b9c 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
+ * emultempl/aarch64elf.em, * emultempl/aix.em,
+ * emultempl/armcoff.em, * emultempl/armelf.em,
+ * emultempl/cr16elf.em, * emultempl/cskyelf.em,
+ * emultempl/m68hc1xelf.em, * emultempl/m68kelf.em,
+ * emultempl/mipself.em, * emultempl/mmix-elfnmmo.em,
+ * emultempl/mmo.em, * emultempl/msp430.em,
+ * emultempl/nios2elf.em, * emultempl/pe.em, * emultempl/pep.em,
+ * emultempl/ppc64elf.em, * emultempl/xtensaelf.em: Update
+ throughout for bfd section macro and function changes.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* ldcref.c (check_reloc_refs): Update bfd_get_section to
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 7ffb17e7a9..bd5c888782 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -178,7 +178,7 @@ elf${ELFSIZE}_aarch64_add_stub_section (const char *stub_sec_name,
/* Long branch stubs contain a 64-bit address, so the section requires
8 byte alignment. */
- bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 3);
+ bfd_set_section_alignment (stub_sec, 3);
output_section = input_section->output_section;
os = lang_output_section_get (output_section);
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index 8151a9d5e9..1ce8376a52 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -895,7 +895,7 @@ gld${EMULATION_NAME}_before_allocation (void)
if (is == NULL)
{
einfo (_("%F%P: can't find %s in output section\n"),
- bfd_get_section_name (sec->owner, sec));
+ bfd_section_name (sec));
}
/* Now figure out where the section should go. */
diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em
index 20122aa03f..180e1faa27 100644
--- a/ld/emultempl/armcoff.em
+++ b/ld/emultempl/armcoff.em
@@ -176,8 +176,7 @@ gld${EMULATION_NAME}_finish (void)
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
+ + bfd_section_vma (h->u.def.section->output_section)
+ h->u.def.section->output_offset);
val |= 1;
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index bb32bbbda4..0cbfcc70b3 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -232,7 +232,7 @@ elf32_arm_add_stub_section (const char * stub_sec_name,
if (stub_sec == NULL)
goto err_ret;
- bfd_set_section_alignment (stub_file->the_bfd, stub_sec, alignment_power);
+ bfd_set_section_alignment (stub_sec, alignment_power);
os = lang_output_section_get (output_section);
@@ -478,8 +478,7 @@ gld${EMULATION_NAME}_finish (void)
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
+ + bfd_section_vma (h->u.def.section->output_section)
+ h->u.def.section->output_offset);
val |= 1;
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
index 197f0c6391..9cdd356e35 100644
--- a/ld/emultempl/cr16elf.em
+++ b/ld/emultempl/cr16elf.em
@@ -75,14 +75,12 @@ cr16_elf_after_open (void)
relsec = bfd_make_section (abfd, ".emreloc");
if (relsec == NULL
- || ! bfd_set_section_flags (abfd, relsec,
- (SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY))
- || ! bfd_set_section_alignment (abfd, relsec, 2)
- || ! bfd_set_section_size (abfd, relsec,
- datasec->reloc_count * 8))
+ || !bfd_set_section_flags (relsec, (SEC_ALLOC
+ | SEC_LOAD
+ | SEC_HAS_CONTENTS
+ | SEC_IN_MEMORY))
+ || !bfd_set_section_alignment (relsec, 2)
+ || !bfd_set_section_size (relsec, datasec->reloc_count * 8))
einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
}
@@ -99,11 +97,11 @@ cr16_elf_after_open (void)
static void
check_sections (bfd *abfd, asection *sec, void *datasec)
{
- if ((strncmp (bfd_get_section_name (abfd, sec), ".data.rel", 9) == 0)
+ if ((strncmp (bfd_section_name (sec), ".data.rel", 9) == 0)
&& sec != datasec
&& sec->reloc_count == 0 )
einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
- abfd, bfd_get_section_name (abfd, sec));
+ abfd, bfd_section_name (sec));
}
static void
diff --git a/ld/emultempl/cskyelf.em b/ld/emultempl/cskyelf.em
index 10d037c80d..9184808655 100644
--- a/ld/emultempl/cskyelf.em
+++ b/ld/emultempl/cskyelf.em
@@ -180,10 +180,10 @@ elf32_csky_add_stub_section (const char *stub_sec_name,
if (stub_sec == NULL)
goto err_ret;
- bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 3);
+ bfd_set_section_alignment (stub_sec, 3);
output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
+ secname = bfd_section_name (output_section);
os = lang_output_section_find (secname);
info.input_section = input_section;
diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em
index b55989e0e6..b63e4e92d9 100644
--- a/ld/emultempl/m68hc1xelf.em
+++ b/ld/emultempl/m68hc1xelf.em
@@ -212,10 +212,8 @@ hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
case lang_input_section_enum:
if (l->input_section.section == info->input_section
- || strcmp (bfd_get_section_name (l->input_section.section->owner,
- l->input_section.section),
- bfd_get_section_name (info->input_section->owner,
- info->input_section)) == 0)
+ || strcmp (bfd_section_name (l->input_section.section),
+ bfd_section_name (info->input_section)) == 0)
{
/* We've found our section. Insert the stub immediately
before its associated input section. */
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
index add8fd21dc..c8d9eea934 100644
--- a/ld/emultempl/m68kelf.em
+++ b/ld/emultempl/m68kelf.em
@@ -102,9 +102,8 @@ m68k_elf_after_open (void)
| SEC_HAS_CONTENTS
| SEC_IN_MEMORY));
if (relsec == NULL
- || ! bfd_set_section_alignment (abfd, relsec, 2)
- || ! bfd_set_section_size (abfd, relsec,
- datasec->reloc_count * 12))
+ || !bfd_set_section_alignment (relsec, 2)
+ || !bfd_set_section_size (relsec, datasec->reloc_count * 12))
einfo (_("%F%P: %pB: can not create .emreloc section: %E\n"));
}
@@ -123,11 +122,11 @@ m68k_elf_after_open (void)
static void
check_sections (bfd *abfd, asection *sec, void *datasec)
{
- if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
+ if ((bfd_section_flags (sec) & SEC_DATA)
&& sec != datasec
&& sec->reloc_count != 0)
einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"),
- abfd, bfd_get_section_name (abfd, sec));
+ abfd, bfd_section_name (sec));
}
#endif /* SUPPORT_EMBEDDED_RELOCS */
diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em
index 108d33faf3..48944d5309 100644
--- a/ld/emultempl/mipself.em
+++ b/ld/emultempl/mipself.em
@@ -168,7 +168,7 @@ mips_add_stub_section (const char *stub_sec_name, asection *input_section,
/* Set the flags. */
flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
| SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
- if (!bfd_set_section_flags (stub_bfd, stub_sec, flags))
+ if (!bfd_set_section_flags (stub_sec, flags))
goto err_ret;
os = lang_output_section_get (output_section);
diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em
index 736988b0cf..7cb4087a93 100644
--- a/ld/emultempl/mmix-elfnmmo.em
+++ b/ld/emultempl/mmix-elfnmmo.em
@@ -103,14 +103,14 @@ mmix_after_allocation (void)
}
/* Set vma to correspond to first such register number * 8. */
- bfd_set_section_vma (link_info.output_bfd, sec, (bfd_vma) regvma);
+ bfd_set_section_vma (sec, (bfd_vma) regvma);
/* Simplify symbol output for the register section (without contents;
created for register symbols) by setting the output offset to 0.
This section is only present when there are register symbols. */
sec = bfd_get_section_by_name (link_info.output_bfd, MMIX_REG_SECTION_NAME);
if (sec != NULL)
- bfd_set_section_vma (sec->owner, sec, 0);
+ bfd_set_section_vma (sec, 0);
if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info))
{
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
index 62ee144416..fff48942bc 100644
--- a/ld/emultempl/mmo.em
+++ b/ld/emultempl/mmo.em
@@ -192,10 +192,10 @@ mmo_place_orphan (asection *s,
paper over the bug similarly. */
static void
-mmo_wipe_sec_reloc_flag (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
+mmo_wipe_sec_reloc_flag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
+ void *ptr ATTRIBUTE_UNUSED)
{
- bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec) & ~SEC_RELOC);
+ bfd_set_section_flags (sec, bfd_section_flags (sec) & ~SEC_RELOC);
}
/* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */
diff --git a/ld/emultempl/msp430.em b/ld/emultempl/msp430.em
index 765a9ea288..8f25489528 100644
--- a/ld/emultempl/msp430.em
+++ b/ld/emultempl/msp430.em
@@ -382,10 +382,10 @@ change_output_section (lang_statement_union_type ** head,
}
static void
-add_region_prefix (bfd *abfd, asection *s,
- ATTRIBUTE_UNUSED void *unused)
+add_region_prefix (bfd *abfd ATTRIBUTE_UNUSED, asection *s,
+ void *unused ATTRIBUTE_UNUSED)
{
- const char *curr_name = bfd_get_section_name (abfd, s);
+ const char *curr_name = bfd_section_name (s);
int region = REGION_NONE;
if (strncmp (curr_name, ".text", 5) == 0)
@@ -404,10 +404,10 @@ add_region_prefix (bfd *abfd, asection *s,
case REGION_NONE:
break;
case REGION_UPPER:
- bfd_rename_section (abfd, s, concat (".upper", curr_name, NULL));
+ bfd_rename_section (s, concat (".upper", curr_name, NULL));
break;
case REGION_LOWER:
- bfd_rename_section (abfd, s, concat (".lower", curr_name, NULL));
+ bfd_rename_section (s, concat (".lower", curr_name, NULL));
break;
case REGION_EITHER:
s->name = concat (".either", curr_name, NULL);
@@ -538,7 +538,8 @@ gld${EMULATION_NAME}_handle_option (int optc)
}
static void
-eval_upper_either_sections (bfd *abfd, asection *s, void *data)
+eval_upper_either_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *s, void *data)
{
const char * base_sec_name;
const char * curr_name;
@@ -560,7 +561,7 @@ eval_upper_either_sections (bfd *abfd, asection *s, void *data)
return;
base_sec_name = (const char *) data;
- curr_name = bfd_get_section_name (abfd, s);
+ curr_name = bfd_section_name (s);
/* Only concerned with .either input sections in the upper output section. */
either_name = concat (".either", base_sec_name, NULL);
@@ -620,7 +621,8 @@ eval_upper_either_sections (bfd *abfd, asection *s, void *data)
}
static void
-eval_lower_either_sections (bfd *abfd, asection *s, void *data)
+eval_lower_either_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *s, void *data)
{
const char * base_sec_name;
const char * curr_name;
@@ -640,7 +642,7 @@ eval_lower_either_sections (bfd *abfd, asection *s, void *data)
return;
base_sec_name = (const char *) data;
- curr_name = bfd_get_section_name (abfd, s);
+ curr_name = bfd_section_name (s);
/* Only concerned with .either input sections in the lower or "default"
output section i.e. not in the upper output section. */
diff --git a/ld/emultempl/nios2elf.em b/ld/emultempl/nios2elf.em
index 02eb06fb57..816da6ca72 100644
--- a/ld/emultempl/nios2elf.em
+++ b/ld/emultempl/nios2elf.em
@@ -181,7 +181,7 @@ nios2elf_add_stub_section (const char *stub_sec_name, asection *input_section,
goto err_ret;
output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
+ secname = bfd_section_name (output_section);
os = lang_output_section_find (secname);
info.input_section = input_section;
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 2e78f26ad8..70f771cebd 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1920,8 +1920,7 @@ gld_${EMULATION_NAME}_finish (void)
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
+ + bfd_section_vma (h->u.def.section->output_section)
+ h->u.def.section->output_offset);
val |= 1;
@@ -2182,7 +2181,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
ls = &(*pl)->input_section;
- lname = bfd_get_section_name (ls->section->owner, ls->section);
+ lname = bfd_section_name (ls->section);
if (strchr (lname, '\$') != NULL
&& (dollar == NULL || strcmp (orig_secname, lname) < 0))
break;
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 601ef11c20..6d150d211a 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1979,7 +1979,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
ls = &(*pl)->input_section;
- lname = bfd_get_section_name (ls->section->owner, ls->section);
+ lname = bfd_section_name (ls->section);
if (strchr (lname, '\$') != NULL
&& (dollar == NULL || strcmp (orig_secname, lname) < 0))
break;
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index 6df2a20cfc..ee71f256c6 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -421,12 +421,11 @@ ppc_add_stub_section (const char *stub_sec_name, asection *input_section)
stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
stub_sec_name, flags);
if (stub_sec == NULL
- || !bfd_set_section_alignment (stub_file->the_bfd, stub_sec,
- (params.plt_stub_align > 5
- ? params.plt_stub_align
- : params.plt_stub_align < -5
- ? -params.plt_stub_align
- : 5)))
+ || !bfd_set_section_alignment (stub_sec, (params.plt_stub_align > 5
+ ? params.plt_stub_align
+ : params.plt_stub_align < -5
+ ? -params.plt_stub_align
+ : 5)))
goto err_ret;
output_section = input_section->output_section;
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index c826363f5c..569df615ce 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -127,9 +127,9 @@ replace_insn_sec_with_prop_sec (bfd *abfd,
/* Create a property table section for it. */
prop_sec_name = strdup (prop_sec_name);
prop_sec = bfd_make_section_with_flags
- (abfd, prop_sec_name, bfd_get_section_flags (abfd, insn_sec));
+ (abfd, prop_sec_name, bfd_section_flags (insn_sec));
if (prop_sec == NULL
- || ! bfd_set_section_alignment (abfd, prop_sec, 2))
+ || !bfd_set_section_alignment (prop_sec, 2))
{
*error_message = _("could not create new section");
goto cleanup;
@@ -247,7 +247,7 @@ replace_instruction_table_sections (bfd *abfd, asection *sec)
char *owned_prop_sec_name = NULL;
const char *sec_name;
- sec_name = bfd_get_section_name (abfd, sec);
+ sec_name = bfd_section_name (sec);
if (strcmp (sec_name, INSN_SEC_BASE_NAME) == 0)
{
insn_sec_name = INSN_SEC_BASE_NAME;
@@ -1293,10 +1293,10 @@ static bfd_boolean
is_inconsistent_linkonce_section (asection *sec)
{
bfd *abfd = sec->owner;
- const char *sec_name = bfd_get_section_name (abfd, sec);
+ const char *sec_name = bfd_section_name (sec);
const char *name;
- if ((bfd_get_section_flags (abfd, sec) & SEC_LINK_ONCE) == 0
+ if ((bfd_section_flags (sec) & SEC_LINK_ONCE) == 0
|| strncmp (sec_name, ".gnu.linkonce.", linkonce_len) != 0)
return FALSE;
diff --git a/ld/ldcref.c b/ld/ldcref.c
index fff852a89a..576cf7e388 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -574,7 +574,7 @@ check_nocrossref (struct cref_hash_entry *h, void *ignore ATTRIBUTE_UNUSED)
defsec = hl->u.def.section->output_section;
if (defsec == NULL)
return TRUE;
- defsecname = bfd_get_section_name (defsec->owner, defsec);
+ defsecname = bfd_section_name (defsec);
for (ncrs = nocrossref_list; ncrs != NULL; ncrs = ncrs->next)
for (ncr = ncrs->list; ncr != NULL; ncr = ncr->next)
@@ -658,10 +658,10 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
arelent **p, **pend;
outsec = sec->output_section;
- outsecname = bfd_get_section_name (outsec->owner, outsec);
+ outsecname = bfd_section_name (outsec);
outdefsec = info->defsec->output_section;
- outdefsecname = bfd_get_section_name (outdefsec->owner, outdefsec);
+ outdefsecname = bfd_section_name (outdefsec);
/* The section where the symbol is defined is permitted. */
if (strcmp (outsecname, outdefsecname) == 0)
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 608ca6c1f3..a6a6aa9e1e 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -293,7 +293,7 @@ ldctor_build_sets (void)
/* See PR 20911 for a reproducer. */
if (p->elements->section->owner == NULL)
einfo (_("%X%P: special section %s does not support reloc %s for set %s\n"),
- bfd_get_section_name (link_info.output_bfd, p->elements->section),
+ bfd_section_name (p->elements->section),
bfd_get_reloc_code_name (p->reloc),
p->h->root.string);
else
diff --git a/ld/ldelf.c b/ld/ldelf.c
index 3b0f3ada8c..8d4a2e58a1 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1065,7 +1065,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
for (s = abfd->sections; s && type < COMPACT_EH_HDR; s = s->next)
{
- const char *name = bfd_get_section_name (abfd, s);
+ const char *name = bfd_section_name (s);
if (bfd_is_abs_section (s->output_section))
continue;
@@ -1112,7 +1112,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
bed->dynamic_sec_flags
| SEC_READONLY);
if (s != NULL
- && bfd_set_section_alignment (elfbfd, s, 2))
+ && bfd_set_section_alignment (s, 2))
{
htab->eh_info.hdr_sec = s;
warn_eh_frame = FALSE;
@@ -1382,7 +1382,7 @@ ldelf_setup_build_id (bfd *ibfd)
flags = (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
| SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
s = bfd_make_section_with_flags (ibfd, ".note.gnu.build-id", flags);
- if (s != NULL && bfd_set_section_alignment (ibfd, s, 2))
+ if (s != NULL && bfd_set_section_alignment (s, 2))
{
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
t->o->build_id.after_write_object_contents = &write_build_id;
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 76e862a640..a3843623fb 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -319,7 +319,7 @@ walk_wild_section_general (lang_wild_statement_type *ptr,
if (sec->spec.name != NULL)
{
- const char *sname = bfd_get_section_name (file->the_bfd, s);
+ const char *sname = bfd_section_name (s);
skip = name_match (sec->spec.name, sname) != 0;
}
@@ -452,10 +452,8 @@ compare_section (sort_type sort, asection *asec, asection *bsec)
abort ();
case by_init_priority:
- ainit_priority
- = get_init_priority (bfd_get_section_name (asec->owner, asec));
- binit_priority
- = get_init_priority (bfd_get_section_name (bsec->owner, bsec));
+ ainit_priority = get_init_priority (bfd_section_name (asec));
+ binit_priority = get_init_priority (bfd_section_name (bsec));
if (ainit_priority == 0 || binit_priority == 0)
goto sort_by_name;
ret = ainit_priority - binit_priority;
@@ -465,28 +463,24 @@ compare_section (sort_type sort, asection *asec, asection *bsec)
goto sort_by_name;
case by_alignment_name:
- ret = (bfd_section_alignment (bsec->owner, bsec)
- - bfd_section_alignment (asec->owner, asec));
+ ret = bfd_section_alignment (bsec) - bfd_section_alignment (asec);
if (ret)
break;
/* Fall through. */
case by_name:
sort_by_name:
- ret = strcmp (bfd_get_section_name (asec->owner, asec),
- bfd_get_section_name (bsec->owner, bsec));
+ ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
break;
case by_name_alignment:
- ret = strcmp (bfd_get_section_name (asec->owner, asec),
- bfd_get_section_name (bsec->owner, bsec));
+ ret = strcmp (bfd_section_name (asec), bfd_section_name (bsec));
if (ret)
break;
/* Fall through. */
case by_alignment:
- ret = (bfd_section_alignment (bsec->owner, bsec)
- - bfd_section_alignment (asec->owner, asec));
+ ret = bfd_section_alignment (bsec) - bfd_section_alignment (asec);
break;
}
@@ -610,7 +604,7 @@ walk_wild_section_specs1_wild1 (lang_wild_statement_type *ptr,
for (s = file->the_bfd->sections; s != NULL; s = s->next)
{
- const char *sname = bfd_get_section_name (file->the_bfd, s);
+ const char *sname = bfd_section_name (s);
bfd_boolean skip = !match_simple_wild (wildsec0->spec.name, sname);
if (!skip)
@@ -647,7 +641,7 @@ walk_wild_section_specs2_wild1 (lang_wild_statement_type *ptr,
walk_wild_consider_section (ptr, file, s, sec0, callback, data);
else
{
- const char *sname = bfd_get_section_name (file->the_bfd, s);
+ const char *sname = bfd_section_name (s);
bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
if (!skip)
@@ -682,7 +676,7 @@ walk_wild_section_specs3_wild2 (lang_wild_statement_type *ptr,
walk_wild_consider_section (ptr, file, s, sec0, callback, data);
else
{
- const char *sname = bfd_get_section_name (file->the_bfd, s);
+ const char *sname = bfd_section_name (s);
bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
if (!skip)
@@ -734,7 +728,7 @@ walk_wild_section_specs4_wild2 (lang_wild_statement_type *ptr,
walk_wild_consider_section (ptr, file, s, sec1, callback, data);
else
{
- const char *sname = bfd_get_section_name (file->the_bfd, s);
+ const char *sname = bfd_section_name (s);
bfd_boolean skip = !match_simple_wild (wildsec2->spec.name,
sname);
@@ -5314,9 +5308,8 @@ lang_size_sections_1
" section %s\n"), os->name);
input = os->children.head->input_section.section;
- bfd_set_section_vma (os->bfd_section->owner,
- os->bfd_section,
- bfd_section_vma (input->owner, input));
+ bfd_set_section_vma (os->bfd_section,
+ bfd_section_vma (input));
if (!(os->bfd_section->flags & SEC_FIXED_SIZE))
os->bfd_section->size = input->size;
break;
@@ -5371,13 +5364,11 @@ lang_size_sections_1
if (command_line.check_section_addresses)
einfo (_("%F%P: error: no memory region specified"
" for loadable section `%s'\n"),
- bfd_get_section_name (link_info.output_bfd,
- os->bfd_section));
+ bfd_section_name (os->bfd_section));
else
einfo (_("%P: warning: no memory region specified"
" for loadable section `%s'\n"),
- bfd_get_section_name (link_info.output_bfd,
- os->bfd_section));
+ bfd_section_name (os->bfd_section));
}
newdot = os->region->current;
@@ -5406,7 +5397,7 @@ lang_size_sections_1
os->name, (unsigned long) dotdelta);
}
- bfd_set_section_vma (0, os->bfd_section, newdot);
+ bfd_set_section_vma (os->bfd_section, newdot);
os->bfd_section->output_offset = 0;
}
@@ -6464,8 +6455,7 @@ lang_end (void)
bfd_vma val;
val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
+ + bfd_section_vma (h->u.def.section->output_section)
+ h->u.def.section->output_offset);
if (!bfd_set_start_address (link_info.output_bfd, val))
einfo (_("%F%P: %s: can't set start address\n"), entry_symbol.name);
@@ -6496,10 +6486,9 @@ lang_end (void)
einfo (_("%P: warning: cannot find entry symbol %s;"
" defaulting to %V\n"),
entry_symbol.name,
- bfd_get_section_vma (link_info.output_bfd, ts));
- if (!(bfd_set_start_address
- (link_info.output_bfd,
- bfd_get_section_vma (link_info.output_bfd, ts))))
+ bfd_section_vma (ts));
+ if (!bfd_set_start_address (link_info.output_bfd,
+ bfd_section_vma (ts)))
einfo (_("%F%P: can't set start address\n"));
}
else
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 577b911da8..3cfbc39e5b 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1014,33 +1014,31 @@ build_filler_bfd (int include_edata)
{
edata_s = bfd_make_section_old_way (filler_bfd, ".edata");
if (edata_s == NULL
- || !bfd_set_section_flags (filler_bfd, edata_s,
- (SEC_HAS_CONTENTS
- | SEC_ALLOC
- | SEC_LOAD
- | SEC_KEEP
- | SEC_IN_MEMORY)))
+ || !bfd_set_section_flags (edata_s, (SEC_HAS_CONTENTS
+ | SEC_ALLOC
+ | SEC_LOAD
+ | SEC_KEEP
+ | SEC_IN_MEMORY)))
{
einfo (_("%X%P: can not create .edata section: %E\n"));
return;
}
- bfd_set_section_size (filler_bfd, edata_s, edata_sz);
+ bfd_set_section_size (edata_s, edata_sz);
}
reloc_s = bfd_make_section_old_way (filler_bfd, ".reloc");
if (reloc_s == NULL
- || !bfd_set_section_flags (filler_bfd, reloc_s,
- (SEC_HAS_CONTENTS
- | SEC_ALLOC
- | SEC_LOAD
- | SEC_KEEP
- | SEC_IN_MEMORY)))
+ || !bfd_set_section_flags (reloc_s, (SEC_HAS_CONTENTS
+ | SEC_ALLOC
+ | SEC_LOAD
+ | SEC_KEEP
+ | SEC_IN_MEMORY)))
{
einfo (_("%X%P: can not create .reloc section: %E\n"));
return;
}
- bfd_set_section_size (filler_bfd, reloc_s, 0);
+ bfd_set_section_size (reloc_s, 0);
ldlang_add_file (filler_file);
}
@@ -1303,7 +1301,7 @@ pe_walk_relocs (struct bfd_link_info *info,
{
arelent **relocs;
int relsize, nrelocs, i;
- int flags = bfd_get_section_flags (b, s);
+ int flags = bfd_section_flags (s);
/* Skip discarded linkonce sections. */
if (flags & SEC_LINK_ONCE
@@ -1947,8 +1945,8 @@ quick_section (bfd *abfd, const char *name, int flags, int align)
asymbol *sym;
sec = bfd_make_section_old_way (abfd, name);
- bfd_set_section_flags (abfd, sec, flags | SEC_ALLOC | SEC_LOAD | SEC_KEEP);
- bfd_set_section_alignment (abfd, sec, align);
+ bfd_set_section_flags (sec, flags | SEC_ALLOC | SEC_LOAD | SEC_KEEP);
+ bfd_set_section_alignment (sec, align);
/* Remember to undo this before trying to link internally! */
sec->output_section = sec;
@@ -2072,7 +2070,7 @@ make_head (bfd *parent)
pointer to the list points to the *end* of this section, which is
the start of the list of sections from other objects. */
- bfd_set_section_size (abfd, id2, 20);
+ bfd_set_section_size (id2, 20);
d2 = xmalloc (20);
id2->contents = d2;
memset (d2, 0, 20);
@@ -2084,16 +2082,16 @@ make_head (bfd *parent)
save_relocs (id2);
if (pe_use_nul_prefixed_import_tables)
- bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+ bfd_set_section_size (id5, PE_IDATA5_SIZE);
else
- bfd_set_section_size (abfd, id5, 0);
+ bfd_set_section_size (id5, 0);
d5 = xmalloc (PE_IDATA5_SIZE);
id5->contents = d5;
memset (d5, 0, PE_IDATA5_SIZE);
if (pe_use_nul_prefixed_import_tables)
- bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+ bfd_set_section_size (id4, PE_IDATA4_SIZE);
else
- bfd_set_section_size (abfd, id4, 0);
+ bfd_set_section_size (id4, 0);
d4 = xmalloc (PE_IDATA4_SIZE);
id4->contents = d4;
memset (d4, 0, PE_IDATA4_SIZE);
@@ -2154,12 +2152,12 @@ make_tail (bfd *parent)
id7 = quick_section (abfd, ".idata$7", SEC_HAS_CONTENTS, 2);
quick_symbol (abfd, U (""), dll_symname, "_iname", id7, BSF_GLOBAL, 0);
- bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+ bfd_set_section_size (id4, PE_IDATA4_SIZE);
d4 = xmalloc (PE_IDATA4_SIZE);
id4->contents = d4;
memset (d4, 0, PE_IDATA4_SIZE);
- bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+ bfd_set_section_size (id5, PE_IDATA5_SIZE);
d5 = xmalloc (PE_IDATA5_SIZE);
id5->contents = d5;
memset (d5, 0, PE_IDATA5_SIZE);
@@ -2167,7 +2165,7 @@ make_tail (bfd *parent)
len = strlen (dll_filename) + 1;
if (len & 1)
len++;
- bfd_set_section_size (abfd, id7, len);
+ bfd_set_section_size (id7, len);
d7 = xmalloc (len);
id7->contents = d7;
strcpy ((char *) d7, dll_filename);
@@ -2339,7 +2337,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
if (include_jmp_stub)
{
- bfd_set_section_size (abfd, tx, jmp_byte_count);
+ bfd_set_section_size (tx, jmp_byte_count);
td = xmalloc (jmp_byte_count);
tx->contents = td;
memcpy (td, jmp_bytes, jmp_byte_count);
@@ -2374,16 +2372,16 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
save_relocs (tx);
}
else
- bfd_set_section_size (abfd, tx, 0);
+ bfd_set_section_size (tx, 0);
- bfd_set_section_size (abfd, id7, 4);
+ bfd_set_section_size (id7, 4);
d7 = xmalloc (4);
id7->contents = d7;
memset (d7, 0, 4);
quick_reloc (abfd, 0, BFD_RELOC_RVA, 5);
save_relocs (id7);
- bfd_set_section_size (abfd, id5, PE_IDATA5_SIZE);
+ bfd_set_section_size (id5, PE_IDATA5_SIZE);
d5 = xmalloc (PE_IDATA5_SIZE);
id5->contents = d5;
memset (d5, 0, PE_IDATA5_SIZE);
@@ -2400,7 +2398,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
save_relocs (id5);
}
- bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE);
+ bfd_set_section_size (id4, PE_IDATA4_SIZE);
d4 = xmalloc (PE_IDATA4_SIZE);
id4->contents = d4;
memset (d4, 0, PE_IDATA4_SIZE);
@@ -2420,7 +2418,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
if (exp->flag_noname)
{
len = 0;
- bfd_set_section_size (abfd, id6, 0);
+ bfd_set_section_size (id6, 0);
}
else
{
@@ -2433,7 +2431,7 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
len = 2 + strlen (exp->name) + 1;
if (len & 1)
len++;
- bfd_set_section_size (abfd, id6, len);
+ bfd_set_section_size (id6, len);
d6 = xmalloc (len);
id6->contents = d6;
memset (d6, 0, len);
@@ -2491,7 +2489,7 @@ make_singleton_name_thunk (const char *import, bfd *parent)
quick_symbol (abfd, "__nm_", import, "", UNDSEC, BSF_GLOBAL, 0);
/* We need space for the real thunk and for the null terminator. */
- bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE * 2);
+ bfd_set_section_size (id4, PE_IDATA4_SIZE * 2);
d4 = xmalloc (PE_IDATA4_SIZE * 2);
id4->contents = d4;
memset (d4, 0, PE_IDATA4_SIZE * 2);
@@ -2568,7 +2566,7 @@ make_import_fixup_entry (const char *name,
quick_symbol (abfd, U (""), symname, "_iname", UNDSEC, BSF_GLOBAL, 0);
quick_symbol (abfd, "", fixup_name, "", UNDSEC, BSF_GLOBAL, 0);
- bfd_set_section_size (abfd, id2, 20);
+ bfd_set_section_size (id2, 20);
d2 = xmalloc (20);
id2->contents = d2;
memset (d2, 0, 20);
@@ -2643,7 +2641,7 @@ make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
quick_symbol (abfd, "__imp_", name, "", UNDSEC, BSF_GLOBAL, 0);
- bfd_set_section_size (abfd, rt_rel, size);
+ bfd_set_section_size (rt_rel, size);
rt_rel_d = xmalloc (size);
rt_rel->contents = rt_rel_d;
memset (rt_rel_d, 0, size);
@@ -2660,7 +2658,7 @@ make_runtime_pseudo_reloc (const char *name ATTRIBUTE_UNUSED,
}
else
{
- bfd_set_section_size (abfd, rt_rel, 8);
+ bfd_set_section_size (rt_rel, 8);
rt_rel_d = xmalloc (8);
rt_rel->contents = rt_rel_d;
memset (rt_rel_d, 0, 8);
@@ -2708,7 +2706,7 @@ pe_create_runtime_relocator_reference (bfd *parent)
quick_symbol (abfd, "", U ("_pei386_runtime_relocator"), "", UNDSEC,
BSF_NO_FLAGS, 0);
- bfd_set_section_size (abfd, extern_rt_rel, PE_IDATA5_SIZE);
+ bfd_set_section_size (extern_rt_rel, PE_IDATA5_SIZE);
extern_rt_rel_d = xcalloc (1, PE_IDATA5_SIZE);
extern_rt_rel->contents = extern_rt_rel_d;
@@ -3571,7 +3569,7 @@ pe_dll_fill_sections (bfd *abfd, struct bfd_link_info *info)
generate_reloc (abfd, info);
if (reloc_sz > 0)
{
- bfd_set_section_size (filler_bfd, reloc_s, reloc_sz);
+ bfd_set_section_size (reloc_s, reloc_sz);
/* Resize the sections. */
lang_reset_memory_regions ();
@@ -3603,7 +3601,7 @@ pe_exe_fill_sections (bfd *abfd, struct bfd_link_info *info)
generate_reloc (abfd, info);
if (reloc_sz > 0)
{
- bfd_set_section_size (filler_bfd, reloc_s, reloc_sz);
+ bfd_set_section_size (reloc_s, reloc_sz);
/* Resize the sections. */
lang_reset_memory_regions ();
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index e56e2c0b86..8a82ed0565 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * ctf-open-bfd.c: Update throughout for bfd section macro changes.
+
2019-09-09 Phil Blundell <pb@pbcl.net>
binutils 2.33 branch created.
diff --git a/libctf/ctf-open-bfd.c b/libctf/ctf-open-bfd.c
index bb2d7e64de..6a0c15531e 100644
--- a/libctf/ctf-open-bfd.c
+++ b/libctf/ctf-open-bfd.c
@@ -100,7 +100,7 @@ ctf_bfdopen (struct bfd *abfd, int *errp)
ctfsect.cts_name = _CTF_SECTION;
ctfsect.cts_entsize = 1;
- ctfsect.cts_size = bfd_section_size (abfd, ctf_asect);
+ ctfsect.cts_size = bfd_section_size (ctf_asect);
ctfsect.cts_data = contents;
if ((arc = ctf_bfdopen_ctfsect (abfd, &ctfsect, errp)) != NULL)
@@ -157,7 +157,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd _libctf_unused_,
}
strsect.cts_data = contents;
strsect.cts_name = (char *) strsect.cts_data + strhdr->sh_name;
- strsect.cts_size = bfd_section_size (abfd, str_asect);
+ strsect.cts_size = bfd_section_size (str_asect);
strsect.cts_entsize = strhdr->sh_size;
strsectp = &strsect;
@@ -170,7 +170,7 @@ ctf_bfdopen_ctfsect (struct bfd *abfd _libctf_unused_,
symsect.cts_name = (char *) strsect.cts_data + symhdr->sh_name;
symsect.cts_entsize = symhdr->sh_size;
- symsect.cts_size = bfd_section_size (abfd, sym_asect);
+ symsect.cts_size = bfd_section_size (sym_asect);
symsect.cts_data = contents;
symsectp = &symsect;
}
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index d5b412275f..0d8abcd7ff 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * arc-ext.c: Update throughout for bfd section macro changes.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* Makefile.in: Re-generate.
diff --git a/opcodes/arc-ext.c b/opcodes/arc-ext.c
index bf578871d7..cfb13aa0e1 100644
--- a/opcodes/arc-ext.c
+++ b/opcodes/arc-ext.c
@@ -438,7 +438,7 @@ build_ARC_extmap (bfd *text_bfd)
sizeof (".gnu.linkonce.arcextmap.") - 1)
|| !strcmp (sect->name,".arcextmap"))
{
- bfd_size_type count = bfd_get_section_size (sect);
+ bfd_size_type count = bfd_section_size (sect);
unsigned char* buffer = xmalloc (count);
if (buffer)
diff --git a/sim/ChangeLog b/sim/ChangeLog
index d16f2cfa57..191e2370a9 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-18 Alan Modra <amodra@gmail.com>
+
+ * common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
+ * erc32/func.c, * lm32/sim-if.c, * m32c/load.c, * m32c/trace.c,
+ * m68hc11/interp.c, * ppc/hw_htab.c, * ppc/hw_init.c,
+ * rl78/load.c, * rl78/trace.c, * rx/gdb-if.c, * rx/load.c,
+ * rx/trace.c: Update throughout for bfd section macro changes.
+
2019-06-13 Stafford Horne <shorne@gmail.com>
* or1k/cpu.c: Regenerate.
diff --git a/sim/common/sim-load.c b/sim/common/sim-load.c
index c198027824..ff06497d5c 100644
--- a/sim/common/sim-load.c
+++ b/sim/common/sim-load.c
@@ -101,7 +101,7 @@ sim_load_file (SIM_DESC sd, const char *myname, host_callback *callback,
{
bfd_size_type size;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (size > 0)
{
unsigned char *buffer;
@@ -119,13 +119,13 @@ sim_load_file (SIM_DESC sd, const char *myname, host_callback *callback,
return NULL;
}
if (lma_p)
- lma = bfd_section_lma (result_bfd, s);
+ lma = bfd_section_lma (s);
else
- lma = bfd_section_vma (result_bfd, s);
+ lma = bfd_section_vma (s);
if (verbose_p)
{
xprintf (callback, "Loading section %s, size 0x%lx %s ",
- bfd_get_section_name (result_bfd, s),
+ bfd_section_name (s),
(unsigned long) size,
(lma_p ? "lma" : "vma"));
xprintf_bfd_vma (callback, lma);
diff --git a/sim/common/sim-utils.c b/sim/common/sim-utils.c
index c94b2f77ac..e83a2e4d0c 100644
--- a/sim/common/sim-utils.c
+++ b/sim/common/sim-utils.c
@@ -263,11 +263,11 @@ sim_analyze_program (SIM_DESC sd, const char *prog_name, bfd *prog_bfd)
STATE_START_ADDR (sd) = bfd_get_start_address (prog_bfd);
for (s = prog_bfd->sections; s; s = s->next)
- if (strcmp (bfd_get_section_name (prog_bfd, s), ".text") == 0)
+ if (strcmp (bfd_section_name (s), ".text") == 0)
{
STATE_TEXT_SECTION (sd) = s;
- STATE_TEXT_START (sd) = bfd_get_section_vma (prog_bfd, s);
- STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (prog_bfd, s);
+ STATE_TEXT_START (sd) = bfd_section_vma (s);
+ STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (s);
break;
}
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 1a5d421caf..ebfb0e586b 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -315,17 +315,17 @@ cris_set_section_offset_iterator (bfd *abfd, asection *s, void *vp)
SIM_DESC sd = p->sd;
int offset = p->offset;
- if ((bfd_get_section_flags (abfd, s) & SEC_ALLOC))
+ if ((bfd_section_flags (s) & SEC_ALLOC))
{
- bfd_vma vma = bfd_get_section_vma (abfd, s);
+ bfd_vma vma = bfd_section_vma (s);
- bfd_set_section_vma (abfd, s, vma + offset);
+ bfd_set_section_vma (s, vma + offset);
}
/* This seems clumsy and inaccurate, but let's stick to doing it the
same way as sim_analyze_program for consistency. */
- if (strcmp (bfd_get_section_name (abfd, s), ".text") == 0)
- STATE_TEXT_START (sd) = bfd_get_section_vma (abfd, s);
+ if (strcmp (bfd_section_name (s), ".text") == 0)
+ STATE_TEXT_START (sd) = bfd_section_vma (s);
}
/* Adjust the start-address, LMA and VMA of a SD. Must be called
@@ -360,10 +360,10 @@ get_progbounds_iterator (bfd *abfd ATTRIBUTE_UNUSED, asection *s, void *vp)
{
struct progbounds *pbp = (struct progbounds *) vp;
- if ((bfd_get_section_flags (abfd, s) & SEC_ALLOC))
+ if ((bfd_section_flags (s) & SEC_ALLOC))
{
- bfd_size_type sec_size = bfd_get_section_size (s);
- bfd_size_type sec_start = bfd_get_section_vma (abfd, s);
+ bfd_size_type sec_size = bfd_section_size (s);
+ bfd_size_type sec_start = bfd_section_vma (s);
bfd_size_type sec_end = sec_start + sec_size;
if (sec_end > pbp->endmem)
@@ -372,7 +372,7 @@ get_progbounds_iterator (bfd *abfd ATTRIBUTE_UNUSED, asection *s, void *vp)
if (sec_start < pbp->startmem)
pbp->startmem = sec_start;
- if ((bfd_get_section_flags (abfd, s) & SEC_LOAD))
+ if ((bfd_section_flags (s) & SEC_LOAD))
{
if (sec_end > pbp->end_loadmem)
pbp->end_loadmem = sec_end;
diff --git a/sim/erc32/func.c b/sim/erc32/func.c
index d6a51b1591..a0c85a0913 100644
--- a/sim/erc32/func.c
+++ b/sim/erc32/func.c
@@ -1051,14 +1051,14 @@ bfd_load (const char *fname)
if (sis_verbose)
printf("loading %s:", fname);
for (section = pbfd->sections; section; section = section->next) {
- if (bfd_get_section_flags(pbfd, section) & SEC_ALLOC) {
+ if (bfd_section_flags (section) & SEC_ALLOC) {
bfd_vma section_address;
unsigned long section_size;
const char *section_name;
- section_name = bfd_get_section_name(pbfd, section);
+ section_name = bfd_section_name (section);
- section_address = bfd_get_section_vma(pbfd, section);
+ section_address = bfd_section_vma (section);
/*
* Adjust sections from a.out files, since they don't carry their
* addresses with.
@@ -1084,14 +1084,14 @@ bfd_load (const char *fname)
}
}
- section_size = bfd_section_size(pbfd, section);
+ section_size = bfd_section_size (section);
if (sis_verbose)
printf("\nsection %s at 0x%08lx (0x%lx bytes)",
section_name, section_address, section_size);
/* Text, data or lit */
- if (bfd_get_section_flags(pbfd, section) & SEC_LOAD) {
+ if (bfd_section_flags (section) & SEC_LOAD) {
file_ptr fptr;
fptr = 0;
diff --git a/sim/lm32/sim-if.c b/sim/lm32/sim-if.c
index 2698b2e28e..71312d3644 100644
--- a/sim/lm32/sim-if.c
+++ b/sim/lm32/sim-if.c
@@ -50,21 +50,18 @@ find_base (bfd *prog_bfd)
found = 0;
for (s = prog_bfd->sections; s; s = s->next)
{
- if ((strcmp (bfd_get_section_name (prog_bfd, s), ".boot") == 0)
- || (strcmp (bfd_get_section_name (prog_bfd, s), ".text") == 0)
- || (strcmp (bfd_get_section_name (prog_bfd, s), ".data") == 0)
- || (strcmp (bfd_get_section_name (prog_bfd, s), ".bss") == 0))
+ if ((strcmp (bfd_section_name (s), ".boot") == 0)
+ || (strcmp (bfd_section_name (s), ".text") == 0)
+ || (strcmp (bfd_section_name (s), ".data") == 0)
+ || (strcmp (bfd_section_name (s), ".bss") == 0))
{
if (!found)
{
- base = bfd_get_section_vma (prog_bfd, s);
+ base = bfd_section_vma (s);
found = 1;
}
else
- base =
- bfd_get_section_vma (prog_bfd,
- s) < base ? bfd_get_section_vma (prog_bfd,
- s) : base;
+ base = bfd_section_vma (s) < base ? bfd_section_vma (s) : base;
}
}
return base & ~(0xffffUL);
diff --git a/sim/m32c/load.c b/sim/m32c/load.c
index 3937fea088..c6a3b2dcaa 100644
--- a/sim/m32c/load.c
+++ b/sim/m32c/load.c
@@ -74,11 +74,11 @@ m32c_load (bfd * prog)
remains as a reminder. */
if ((s->flags & SEC_ALLOC) && !(s->flags & SEC_READONLY))
{
- if (strcmp (bfd_get_section_name (prog, s), ".stack"))
+ if (strcmp (bfd_section_name (s), ".stack"))
{
int secend =
- bfd_get_section_size (s) + bfd_section_lma (prog, s);
- if (heaptop < secend && bfd_section_lma (prog, s) < 0x10000)
+ bfd_section_size (s) + bfd_section_lma (s);
+ if (heaptop < secend && bfd_section_lma (s) < 0x10000)
{
heaptop = heapbottom = secend;
}
@@ -91,14 +91,14 @@ m32c_load (bfd * prog)
bfd_size_type size;
bfd_vma base;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (size <= 0)
continue;
- base = bfd_section_lma (prog, s);
+ base = bfd_section_lma (s);
if (verbose)
fprintf (stderr, "[load a=%08x s=%08x %s]\n",
- (int) base, (int) size, bfd_get_section_name (prog, s));
+ (int) base, (int) size, bfd_section_name (s));
buf = (char *) malloc (size);
bfd_get_section_contents (prog, s, buf, 0, size);
mem_put_blk (base, buf, size);
diff --git a/sim/m32c/trace.c b/sim/m32c/trace.c
index e507c978b8..bc75d15e3c 100644
--- a/sim/m32c/trace.c
+++ b/sim/m32c/trace.c
@@ -231,7 +231,7 @@ sim_disasm_one (void)
if (s->flags & SEC_CODE || code_section == 0)
{
code_section = s;
- code_base = bfd_section_lma (current_bfd, s);
+ code_base = bfd_section_lma (s);
break;
}
}
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index 9e8ccab180..a5131d2a97 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -344,15 +344,15 @@ sim_prepare_for_program (SIM_DESC sd, bfd* abfd)
{
bfd_size_type size;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (size > 0)
{
bfd_vma lma;
if (STATE_LOAD_AT_LMA_P (sd))
- lma = bfd_section_lma (abfd, s);
+ lma = bfd_section_lma (s);
else
- lma = bfd_section_vma (abfd, s);
+ lma = bfd_section_vma (s);
if (lma <= 0xFFFE && lma+size >= 0x10000)
cpu->cpu_use_elf_start = 0;
diff --git a/sim/ppc/hw_htab.c b/sim/ppc/hw_htab.c
index cf275ff702..e7b6371e1d 100644
--- a/sim/ppc/hw_htab.c
+++ b/sim/ppc/hw_htab.c
@@ -391,16 +391,16 @@ htab_sum_binary(bfd *abfd,
PTR data)
{
htab_binary_sizes *sizes = (htab_binary_sizes*)data;
- unsigned_word size = bfd_get_section_size (sec);
- unsigned_word vma = bfd_get_section_vma (abfd, sec);
- unsigned_word ra = bfd_get_section_lma (abfd, sec);
+ unsigned_word size = bfd_section_size (sec);
+ unsigned_word vma = bfd_section_vma (sec);
+ unsigned_word ra = bfd_section_lma (sec);
/* skip the section if no memory to allocate */
- if (! (bfd_get_section_flags(abfd, sec) & SEC_ALLOC))
+ if (! (bfd_section_flags (sec) & SEC_ALLOC))
return;
- if ((bfd_get_section_flags (abfd, sec) & SEC_CODE)
- || (bfd_get_section_flags (abfd, sec) & SEC_READONLY)) {
+ if ((bfd_section_flags (sec) & SEC_CODE)
+ || (bfd_section_flags (sec) & SEC_READONLY)) {
if (sizes->text_bound < vma + size)
sizes->text_bound = ALIGN_PAGE(vma + size);
if (sizes->text_base > vma)
@@ -408,8 +408,8 @@ htab_sum_binary(bfd *abfd,
if (sizes->text_ra > ra)
sizes->text_ra = FLOOR_PAGE(ra);
}
- else if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- || (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)) {
+ else if ((bfd_section_flags (sec) & SEC_DATA)
+ || (bfd_section_flags (sec) & SEC_ALLOC)) {
if (sizes->data_bound < vma + size)
sizes->data_bound = ALIGN_PAGE(vma + size);
if (sizes->data_base > vma)
@@ -432,41 +432,41 @@ htab_dma_binary(bfd *abfd,
device *me = sizes->me;
/* skip the section if no memory to allocate */
- if (! (bfd_get_section_flags(abfd, sec) & SEC_ALLOC))
+ if (! (bfd_section_flags (sec) & SEC_ALLOC))
return;
/* check/ignore any sections of size zero */
- section_size = bfd_get_section_size (sec);
+ section_size = bfd_section_size (sec);
if (section_size == 0)
return;
/* if nothing to load, ignore this one */
- if (! (bfd_get_section_flags(abfd, sec) & SEC_LOAD))
+ if (! (bfd_section_flags (sec) & SEC_LOAD))
return;
/* find where it is to go */
- section_vma = bfd_get_section_vma(abfd, sec);
+ section_vma = bfd_section_vma (sec);
section_ra = 0;
- if ((bfd_get_section_flags (abfd, sec) & SEC_CODE)
- || (bfd_get_section_flags (abfd, sec) & SEC_READONLY))
+ if ((bfd_section_flags (sec) & SEC_CODE)
+ || (bfd_section_flags (sec) & SEC_READONLY))
section_ra = (section_vma - sizes->text_base + sizes->text_ra);
- else if ((bfd_get_section_flags (abfd, sec) & SEC_DATA))
+ else if ((bfd_section_flags (sec) & SEC_DATA))
section_ra = (section_vma - sizes->data_base + sizes->data_ra);
else
return; /* just ignore it */
DTRACE(htab,
("load - name=%-7s vma=0x%.8lx size=%6ld ra=0x%.8lx flags=%3lx(%s%s%s%s%s )\n",
- bfd_get_section_name(abfd, sec),
+ bfd_section_name (sec),
(long)section_vma,
(long)section_size,
(long)section_ra,
- (long)bfd_get_section_flags(abfd, sec),
- bfd_get_section_flags(abfd, sec) & SEC_LOAD ? " LOAD" : "",
- bfd_get_section_flags(abfd, sec) & SEC_CODE ? " CODE" : "",
- bfd_get_section_flags(abfd, sec) & SEC_DATA ? " DATA" : "",
- bfd_get_section_flags(abfd, sec) & SEC_ALLOC ? " ALLOC" : "",
- bfd_get_section_flags(abfd, sec) & SEC_READONLY ? " READONLY" : ""
+ (long)bfd_section_flags (sec),
+ bfd_section_flags (sec) & SEC_LOAD ? " LOAD" : "",
+ bfd_section_flags (sec) & SEC_CODE ? " CODE" : "",
+ bfd_section_flags (sec) & SEC_DATA ? " DATA" : "",
+ bfd_section_flags (sec) & SEC_ALLOC ? " ALLOC" : "",
+ bfd_section_flags (sec) & SEC_READONLY ? " READONLY" : ""
));
/* dma in the sections data */
diff --git a/sim/ppc/hw_init.c b/sim/ppc/hw_init.c
index 0e7403bb6c..779c95c5a2 100644
--- a/sim/ppc/hw_init.c
+++ b/sim/ppc/hw_init.c
@@ -324,39 +324,39 @@ update_for_binary_section(bfd *abfd,
device *me = (device*)obj;
/* skip the section if no memory to allocate */
- if (! (bfd_get_section_flags(abfd, the_section) & SEC_ALLOC))
+ if (! (bfd_section_flags (the_section) & SEC_ALLOC))
return;
/* check/ignore any sections of size zero */
- section_size = bfd_get_section_size (the_section);
+ section_size = bfd_section_size (the_section);
if (section_size == 0)
return;
/* find where it is to go */
- section_vma = bfd_get_section_vma(abfd, the_section);
+ section_vma = bfd_section_vma (the_section);
DTRACE(binary,
("name=%-7s, vma=0x%.8lx, size=%6ld, flags=%3lx(%s%s%s%s%s )\n",
- bfd_get_section_name(abfd, the_section),
+ bfd_section_name (the_section),
(long)section_vma,
(long)section_size,
- (long)bfd_get_section_flags(abfd, the_section),
- bfd_get_section_flags(abfd, the_section) & SEC_LOAD ? " LOAD" : "",
- bfd_get_section_flags(abfd, the_section) & SEC_CODE ? " CODE" : "",
- bfd_get_section_flags(abfd, the_section) & SEC_DATA ? " DATA" : "",
- bfd_get_section_flags(abfd, the_section) & SEC_ALLOC ? " ALLOC" : "",
- bfd_get_section_flags(abfd, the_section) & SEC_READONLY ? " READONLY" : ""
+ (long)bfd_section_flags (the_section),
+ bfd_section_flags (the_section) & SEC_LOAD ? " LOAD" : "",
+ bfd_section_flags (the_section) & SEC_CODE ? " CODE" : "",
+ bfd_section_flags (the_section) & SEC_DATA ? " DATA" : "",
+ bfd_section_flags (the_section) & SEC_ALLOC ? " ALLOC" : "",
+ bfd_section_flags (the_section) & SEC_READONLY ? " READONLY" : ""
));
/* If there is an .interp section, it means it needs a shared library interpreter. */
- if (strcmp(".interp", bfd_get_section_name(abfd, the_section)) == 0)
+ if (strcmp(".interp", bfd_section_name (the_section)) == 0)
error("Shared libraries are not yet supported.\n");
/* determine the devices access */
access = access_read;
- if (bfd_get_section_flags(abfd, the_section) & SEC_CODE)
+ if (bfd_section_flags (the_section) & SEC_CODE)
access |= access_exec;
- if (!(bfd_get_section_flags(abfd, the_section) & SEC_READONLY))
+ if (!(bfd_section_flags (the_section) & SEC_READONLY))
access |= access_write;
/* if claim specified, allocate region from the memory device */
@@ -386,7 +386,7 @@ update_for_binary_section(bfd *abfd,
me);
/* if a load dma in the required data */
- if (bfd_get_section_flags(abfd, the_section) & SEC_LOAD) {
+ if (bfd_section_flags (the_section) & SEC_LOAD) {
void *section_init = zalloc(section_size);
if (!bfd_get_section_contents(abfd,
the_section,
diff --git a/sim/rl78/load.c b/sim/rl78/load.c
index c8c8ab8951..34ae923bcb 100644
--- a/sim/rl78/load.c
+++ b/sim/rl78/load.c
@@ -56,7 +56,7 @@ find_section_name_by_offset (bfd *abfd, file_ptr filepos)
for (s = abfd->sections; s; s = s->next)
if (s->filepos == filepos)
- return bfd_get_section_name (abfd, s);
+ return bfd_section_name (s);
return "(unknown)";
}
diff --git a/sim/rl78/trace.c b/sim/rl78/trace.c
index fd999a1513..1a97527377 100644
--- a/sim/rl78/trace.c
+++ b/sim/rl78/trace.c
@@ -224,7 +224,7 @@ sim_get_current_source_location (const char ** pfilename,
if (s->flags & SEC_CODE || code_section == 0)
{
code_section = s;
- code_base = bfd_section_lma (current_bfd, s);
+ code_base = bfd_section_lma (s);
break;
}
}
diff --git a/sim/rx/gdb-if.c b/sim/rx/gdb-if.c
index ef88146a5e..68e4b96ed6 100644
--- a/sim/rx/gdb-if.c
+++ b/sim/rx/gdb-if.c
@@ -164,14 +164,14 @@ build_swap_list (struct bfd *abfd)
struct swap_list *sl;
bfd_size_type size;
- size = bfd_get_section_size (s);
+ size = bfd_section_size (s);
if (size <= 0)
continue;
sl = malloc (sizeof (struct swap_list));
assert (sl != NULL);
sl->next = swap_list;
- sl->start = bfd_section_lma (abfd, s);
+ sl->start = bfd_section_lma (s);
sl->end = sl->start + size;
swap_list = sl;
}
diff --git a/sim/rx/load.c b/sim/rx/load.c
index 65451ca821..a9b596bbc5 100644
--- a/sim/rx/load.c
+++ b/sim/rx/load.c
@@ -52,7 +52,7 @@ find_section_name_by_offset (bfd *abfd, file_ptr filepos)
for (s = abfd->sections; s; s = s->next)
if (s->filepos == filepos)
- return bfd_get_section_name (abfd, s);
+ return bfd_section_name (s);
return "(unknown)";
}
diff --git a/sim/rx/trace.c b/sim/rx/trace.c
index ed65d19a8f..a4ea680bff 100644
--- a/sim/rx/trace.c
+++ b/sim/rx/trace.c
@@ -228,7 +228,7 @@ sim_get_current_source_location (const char ** pfilename,
if (s->flags & SEC_CODE || code_section == 0)
{
code_section = s;
- code_base = bfd_section_lma (current_bfd, s);
+ code_base = bfd_section_lma (s);
break;
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-19 1:02 [binutils-gdb] bfd_section_* macros gdb-buildbot
@ 2019-09-19 1:05 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-19 1:05 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/89
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
fd3619828e94a24a92cddec42cbc0ab33352eeb4
Subject of commit:
bfd_section_* macros
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/fd/fd3619828e94a24a92cddec42cbc0ab33352eeb4/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.server/server-connect.exp: tcp4: connect to gdbserver using tcp4:127.0.0.1
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=5: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/fd/fd3619828e94a24a92cddec42cbc0ab33352eeb4//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/fd/fd3619828e94a24a92cddec42cbc0ab33352eeb4//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb] Catch exception when constructing the highlighter
@ 2019-09-19 18:20 gdb-buildbot
2019-09-19 18:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-19 18:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f64e2f4045485f99b4ce6649fdab874dacccd5a6 ***
commit f64e2f4045485f99b4ce6649fdab874dacccd5a6
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 19:49:39 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 19:49:39 2019 +0200
[gdb] Catch exception when constructing the highlighter
Currently in source_cache::ensure we catch the exception that triggers when
highlighter->highlight is called:
...
try
{
std::istringstream input (contents);
std::ostringstream output;
highlighter->highlight (input, output, lang_name, fullname);
...
and the file used earlier in the construction of the highlighter:
...
highlighter = new srchilite::SourceHighlight ("esc.outlang");
...
is missing.
The fact that this exception triggers when highlighter->highlight is called is
an implementation artefact of libsource-highlight.so though, and this could be
different for older or newer versions.
Make things more robust by also catching exceptions thrown during construction
of the highlighter. This makes the handling on master equivalent with what
has been committed for 8.3.1.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-09-19 Tom de Vries <tdevries@suse.de>
PR gdb/25009
* source-cache.c (source_cache::ensure): Catch exception thrown during
construction of the highlighter.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7057e37e8d..39f917b186 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-19 Tom de Vries <tdevries@suse.de>
+
+ PR gdb/25009
+ * source-cache.c (source_cache::ensure): Catch exception thrown during
+ construction of the highlighter.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* aarch64-linux-tdep.c, * arm-tdep.c, * auto-load.c,
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 7a52ce9458..1fe6da8132 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -190,14 +190,14 @@ source_cache::ensure (struct symtab *s)
conditional compilation in source-cache.h. */
static srchilite::SourceHighlight *highlighter;
- if (highlighter == nullptr)
- {
- highlighter = new srchilite::SourceHighlight ("esc.outlang");
- highlighter->setStyleFile ("esc.style");
- }
-
try
{
+ if (highlighter == nullptr)
+ {
+ highlighter = new srchilite::SourceHighlight ("esc.outlang");
+ highlighter->setStyleFile ("esc.style");
+ }
+
std::istringstream input (contents);
std::ostringstream output;
highlighter->highlight (input, output, lang_name, fullname);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test
@ 2019-09-19 18:42 gdb-buildbot
2019-09-19 18:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-19 18:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e452e88f54624ae55d534c4ae32e0c768cb4b59f ***
commit e452e88f54624ae55d534c4ae32e0c768cb4b59f
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Sep 19 19:54:15 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Sep 19 19:54:15 2019 +0200
[gdb/testsuite] Don't use FOOBAR pattern in gdb_test
If gdb_test is used with fewer than five arguments, then the question_string
defaults to "^FOOBAR$":
...
if [llength $args]==5 {
set question_string [lindex $args 3]
set response_string [lindex $args 4]
} else {
set question_string "^FOOBAR$"
}
...
This can however match "FOOBAR", so perhaps "\$FOOBAR^" would have been a
better choice.
Eliminate the FOOBAR pattern from gdb_test by instead of defining a default
regexp, conditionally appending the regexp matching to a user_code variable.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d5a5309fdf..e86091eee3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-19 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.
+
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index acbeb01376..3a1f053cf8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1083,24 +1083,28 @@ proc gdb_test { args } {
set command [lindex $args 0]
set pattern [lindex $args 1]
- if [llength $args]==5 {
- set question_string [lindex $args 3]
- set response_string [lindex $args 4]
- } else {
- set question_string "^FOOBAR$"
- }
-
- return [gdb_test_multiple $command $message {
+ set user_code {}
+ lappend user_code {
-re "\[\r\n\]*(?:$pattern)\[\r\n\]+$gdb_prompt $" {
if ![string match "" $message] then {
pass "$message"
}
}
- -re "(${question_string})$" {
- send_gdb "$response_string\n"
- exp_continue
+ }
+
+ if { [llength $args] == 5 } {
+ set question_string [lindex $args 3]
+ set response_string [lindex $args 4]
+ lappend user_code {
+ -re "(${question_string})$" {
+ send_gdb "$response_string\n"
+ exp_continue
+ }
}
- }]
+ }
+
+ set user_code [join $user_code]
+ return [gdb_test_multiple $command $message $user_code]
}
# Return 1 if version MAJOR.MINOR is at least AT_LEAST_MAJOR.AT_LEAST_MINOR.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h
@ 2019-09-20 0:39 gdb-buildbot
2019-09-20 0:51 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 0:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e86f08d28f469b9400e91bbaf1b0a5e7f697732a ***
commit e86f08d28f469b9400e91bbaf1b0a5e7f697732a
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:26:55 2019 +0900
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:13:53 2019 +0900
Declare dwarf_always_disassemble in dwarf2read.h
And remove the declaration from dwarf2loc.c, for better typesafety.
gdb/ChangeLog:
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
* dwarf2read.h: Declare dwarf_always_disassemble.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 39f917b186..45e6e79fb8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19 Christian Biesinger <cbiesinger@google.com>
+
+ * dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
+ * dwarf2read.h: Declare dwarf_always_disassemble.
+
2019-09-19 Tom de Vries <tdevries@suse.de>
PR gdb/25009
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 29fccae594..c8ba0290a0 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -46,8 +46,6 @@
#include "gdbsupport/underlying.h"
#include "gdbsupport/byte-vector.h"
-extern bool dwarf_always_disassemble;
-
static struct value *dwarf2_evaluate_loc_desc_full (struct type *type,
struct frame_info *frame,
const gdb_byte *data,
diff --git a/gdb/dwarf2read.h b/gdb/dwarf2read.h
index 8939f97af5..e9b946247b 100644
--- a/gdb/dwarf2read.h
+++ b/gdb/dwarf2read.h
@@ -33,6 +33,8 @@ extern struct cmd_list_element *show_dwarf_cmdlist;
typedef struct dwarf2_per_cu_data *dwarf2_per_cu_ptr;
DEF_VEC_P (dwarf2_per_cu_ptr);
+extern bool dwarf_always_disassemble;
+
/* A descriptor for dwarf sections.
S.ASECTION, SIZE are typically initialized when the objfile is first
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 0:39 [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h gdb-buildbot
@ 2019-09-20 0:51 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 0:51 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/95
Author:
Christian Biesinger <cbiesinger@google.com>
Commit tested:
e86f08d28f469b9400e91bbaf1b0a5e7f697732a
Subject of commit:
Declare dwarf_always_disassemble in dwarf2read.h
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/e8/e86f08d28f469b9400e91bbaf1b0a5e7f697732a/
*** Diff to previous build ***
==============================================
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/e8/e86f08d28f469b9400e91bbaf1b0a5e7f697732a//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/e8/e86f08d28f469b9400e91bbaf1b0a5e7f697732a//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move arm_apcs_32 extern declaration to header
@ 2019-09-20 0:53 gdb-buildbot
2019-09-20 1:01 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 0:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c7ae7675cf726c343a1db3e27e3e5665cb485271 ***
commit c7ae7675cf726c343a1db3e27e3e5665cb485271
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:33:35 2019 +0900
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:17:49 2019 +0900
Move arm_apcs_32 extern declaration to header
Instead of having several extern declarations for arm_apcs_32
in a few .c files, declare it in arm-tdep.h. This file is already
included from these .c files.
gdb/ChangeLog:
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
* arm-linux-tdep.c: Likewise.
* arm-nbsd-nat.c: Likewise.
* arm-tdep.h: Declare arm_apcs_32.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 45e6e79fb8..c7e724eb8b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-19 Christian Biesinger <cbiesinger@google.com>
+
+ * arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
+ * arm-linux-tdep.c: Likewise.
+ * arm-nbsd-nat.c: Likewise.
+ * arm-tdep.h: Declare arm_apcs_32.
+ * arm-tdep.c: Move documentation for arm_apcs_32 to arm-tdep.h.
+
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* dwarf2loc.c: Remove extern declaration of dwarf_always_disassemble.
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index ef44e68d31..bef67c7ac7 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -66,8 +66,6 @@
#define PTRACE_SETHBPREGS 30
#endif
-extern bool arm_apcs_32;
-
class arm_linux_nat_target final : public linux_nat_target
{
public:
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 31ea4564db..54ea8511cb 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -56,7 +56,6 @@
#include "user-regs.h"
#include <ctype.h>
#include "elf/common.h"
-extern bool arm_apcs_32;
/* Under ARM GNU/Linux the traditional way of performing a breakpoint
is to execute a particular software interrupt, rather than use a
diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c
index 38a9e954b9..5160bfddf5 100644
--- a/gdb/arm-nbsd-nat.c
+++ b/gdb/arm-nbsd-nat.c
@@ -40,8 +40,6 @@ public:
static arm_netbsd_nat_target the_arm_netbsd_nat_target;
-extern bool arm_apcs_32;
-
static void
arm_supply_gregset (struct regcache *regcache, struct reg *gregset)
{
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index e17550fed7..c247052148 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -294,7 +294,7 @@ static CORE_ADDR arm_analyze_prologue (struct gdbarch *gdbarch,
#define DISPLACED_STEPPING_ARCH_VERSION 5
-/* Set to true if the 32-bit mode is in use. */
+/* See arm-tdep.h. */
bool arm_apcs_32 = true;
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index 6d1a91ca35..2cf3379d78 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -26,6 +26,10 @@ struct get_next_pcs;
struct arm_get_next_pcs;
struct gdb_get_next_pcs;
+/* Set to true if the 32-bit mode is in use. */
+
+extern bool arm_apcs_32;
+
#include "gdbarch.h"
#include "arch/arm.h"
#include "infrun.h"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 0:53 [binutils-gdb] Move arm_apcs_32 extern declaration to header gdb-buildbot
@ 2019-09-20 1:01 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 1:01 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/96
Author:
Christian Biesinger <cbiesinger@google.com>
Commit tested:
c7ae7675cf726c343a1db3e27e3e5665cb485271
Subject of commit:
Move arm_apcs_32 extern declaration to header
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/c7/c7ae7675cf726c343a1db3e27e3e5665cb485271/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: get integer valueof "mypid"
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/c7/c7ae7675cf726c343a1db3e27e3e5665cb485271//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/c7/c7ae7675cf726c343a1db3e27e3e5665cb485271//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move declaration of overload_resolution to value.h
@ 2019-09-20 1:12 gdb-buildbot
2019-09-20 1:14 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 1:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e4153ae630fcc779ba414fdcea960394cb479e04 ***
commit e4153ae630fcc779ba414fdcea960394cb479e04
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Sep 19 13:40:15 2019 +0900
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 09:19:15 2019 +0900
Move declaration of overload_resolution to value.h
The variable is defined in valops.c and has an extern decl in
eval.c; move it to the header file.
gdb/ChangeLog:
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* eval.c: Move declaration of overload_resolution to...
* value.h: ...here.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7e724eb8b..41a002498d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19 Christian Biesinger <cbiesinger@google.com>
+
+ * eval.c: Move declaration of overload_resolution to...
+ * value.h: ...here.
+
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* arm-linux-nat.c: Remove extern declaration for arm_apcs_32.
diff --git a/gdb/eval.c b/gdb/eval.c
index f8915b9957..70ba1f1e3f 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -42,9 +42,6 @@
#include "typeprint.h"
#include <ctype.h>
-/* This is defined in valops.c */
-extern bool overload_resolution;
-
/* Prototypes for local functions. */
static struct value *evaluate_subexp_for_sizeof (struct expression *, int *,
diff --git a/gdb/value.h b/gdb/value.h
index 47bf672eb5..0d75eaa5b2 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -81,6 +81,8 @@ struct value_print_options;
value_contents_eq for more info.
*/
+extern bool overload_resolution;
+
/* The structure which defines the type of a value. It should never
be possible for a program lval value to survive over a call to the
inferior (i.e. to be put into the history list or an internal
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC64, error on unsupported dynamic relocation
@ 2019-09-20 7:59 gdb-buildbot
2019-09-20 8:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 7:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e59a1001222d853f0517c7e974bb51589ba86710 ***
commit e59a1001222d853f0517c7e974bb51589ba86710
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Fri Sep 20 12:21:50 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 12:51:19 2019 +0930
PowerPC64, error on unsupported dynamic relocation
This patch corrects the set of dynamic relocations recognised by gold
as supported by glibc, and teaches ld.bfd to report an error similar
to the gold error. Note that ld --noinhibit-exec can be used to
produce an output, supporting older ld with newer glibc if the set of
supported glibc dynamic relocations changes.
bfd/
* elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
(ppc64_elf_relocate_section): Error if emitting unsupported
dynamic relocations.
gold/
* powerpc.cc (Target_powerpc::Scan::check_non_pic): Move REL24
to 32-bit supported.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8fff6a6752..6fa38eef45 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
+ (ppc64_elf_relocate_section): Warn if emitting unsupported dynamic
+ relocations.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_get_section_name, bfd_get_section_vma),
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 14119dd259..ed8077586b 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -14148,6 +14148,66 @@ ppc64_elf_action_discarded (asection *sec)
return _bfd_elf_default_action_discarded (sec);
}
+/* These are the dynamic relocations supported by glibc. */
+
+static bfd_boolean
+ppc64_glibc_dynamic_reloc (enum elf_ppc64_reloc_type r_type)
+{
+ switch (r_type)
+ {
+ case R_PPC64_RELATIVE:
+ case R_PPC64_NONE:
+ case R_PPC64_ADDR64:
+ case R_PPC64_GLOB_DAT:
+ case R_PPC64_IRELATIVE:
+ case R_PPC64_JMP_IREL:
+ case R_PPC64_JMP_SLOT:
+ case R_PPC64_DTPMOD64:
+ case R_PPC64_DTPREL64:
+ case R_PPC64_TPREL64:
+ case R_PPC64_TPREL16_LO_DS:
+ case R_PPC64_TPREL16_DS:
+ case R_PPC64_TPREL16:
+ case R_PPC64_TPREL16_LO:
+ case R_PPC64_TPREL16_HI:
+ case R_PPC64_TPREL16_HIGH:
+ case R_PPC64_TPREL16_HA:
+ case R_PPC64_TPREL16_HIGHA:
+ case R_PPC64_TPREL16_HIGHER:
+ case R_PPC64_TPREL16_HIGHEST:
+ case R_PPC64_TPREL16_HIGHERA:
+ case R_PPC64_TPREL16_HIGHESTA:
+ case R_PPC64_ADDR16_LO_DS:
+ case R_PPC64_ADDR16_LO:
+ case R_PPC64_ADDR16_HI:
+ case R_PPC64_ADDR16_HIGH:
+ case R_PPC64_ADDR16_HA:
+ case R_PPC64_ADDR16_HIGHA:
+ case R_PPC64_REL30:
+ case R_PPC64_COPY:
+ case R_PPC64_UADDR64:
+ case R_PPC64_UADDR32:
+ case R_PPC64_ADDR32:
+ case R_PPC64_ADDR24:
+ case R_PPC64_ADDR16:
+ case R_PPC64_UADDR16:
+ case R_PPC64_ADDR16_DS:
+ case R_PPC64_ADDR16_HIGHER:
+ case R_PPC64_ADDR16_HIGHEST:
+ case R_PPC64_ADDR16_HIGHERA:
+ case R_PPC64_ADDR16_HIGHESTA:
+ case R_PPC64_ADDR14:
+ case R_PPC64_ADDR14_BRTAKEN:
+ case R_PPC64_ADDR14_BRNTAKEN:
+ case R_PPC64_REL32:
+ case R_PPC64_REL64:
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
+}
+
/* The RELOCATE_SECTION function is called by the ELF backend linker
to handle the relocations for a section.
@@ -14201,6 +14261,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
bfd_boolean is_opd;
/* Assume 'at' branch hints. */
bfd_boolean is_isa_v2 = TRUE;
+ bfd_boolean warned_dynamic = FALSE;
bfd_vma d_offset = (bfd_big_endian (input_bfd) ? 2 : 0);
/* Initialize howto table if needed. */
@@ -16166,6 +16227,19 @@ ppc64_elf_relocate_section (bfd *output_bfd,
loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela);
bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
+ if (!warned_dynamic
+ && !ppc64_glibc_dynamic_reloc (ELF64_R_TYPE (outrel.r_info)))
+ {
+ info->callbacks->einfo
+ /* xgettext:c-format */
+ (_("%X%P: %pB: %s against %pT "
+ "is not supported by glibc as a dynamic relocation\n"),
+ input_bfd,
+ ppc64_elf_howto_table[ELF64_R_TYPE (outrel.r_info)]->name,
+ sym_name);
+ warned_dynamic = TRUE;
+ }
+
/* If this reloc is against an external symbol, it will
be computed at runtime, so there's no need to do
anything now. However, for the sake of prelink ensure
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 9e45c0fb07..8ec7014b2a 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::Scan::check_non_pic): Move REL24
+ to 32-bit supported.
+
2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
* testsuite/Makefile.in: Re-generate.
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index e69ce192e3..ad35095ccd 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -7355,7 +7355,6 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
case elfcpp::R_POWERPC_ADDR14_BRTAKEN:
case elfcpp::R_POWERPC_ADDR14_BRNTAKEN:
case elfcpp::R_POWERPC_REL32:
- case elfcpp::R_POWERPC_REL24:
case elfcpp::R_POWERPC_TPREL16:
case elfcpp::R_POWERPC_TPREL16_LO:
case elfcpp::R_POWERPC_TPREL16_HI:
@@ -7404,6 +7403,7 @@ Target_powerpc<size, big_endian>::Scan::check_non_pic(Relobj* object,
{
// These are the relocation types supported only on 32-bit.
// ??? glibc ld.so doesn't need to support these.
+ case elfcpp::R_POWERPC_REL24:
case elfcpp::R_POWERPC_DTPREL16:
case elfcpp::R_POWERPC_DTPREL16_LO:
case elfcpp::R_POWERPC_DTPREL16_HI:
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] x86-64: fix handling of PUSH/POP of segment register
@ 2019-09-20 8:48 gdb-buildbot
2019-09-20 8:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 8:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3f9aad111cea2f25877d0a6b404956769c14faee ***
commit 3f9aad111cea2f25877d0a6b404956769c14faee
Author: Jan Beulich <jbeulich@suse.com>
AuthorDate: Fri Sep 20 10:18:15 2019 +0200
Commit: Jan Beulich <jbeulich@suse.com>
CommitDate: Fri Sep 20 10:18:15 2019 +0200
x86-64: fix handling of PUSH/POP of segment register
Commit 21df382b91 ("x86: fold SReg{2,3}") went too far: Folding 64-bit
PUSH/POP templates into non-64-bit ones isn't correct, due to the
different operand widths, and hence suffixes permitted. Restore the
separate templates.
Add tests of PUSH/POP with q suffix and %fs/%gs operands to the
testsuite. While doing so also add PUSHF/POPF ones _without_ suffix.
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b4234f09c0..bcd2f9af35 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2018-09-20 Jan Beulich <jbeulich@suse.com>
+
+ PR gas/25012
+ * config/tc-i386.c (process_operands): Adjust handling of
+ PUSH/POP of segment registers.
+ * testsuite/gas/i386/x86-64-opcode.s: Add PUSHq/POPq case with
+ %fs/%gs operands. Add PUSHF/POPF case without suffix.
+ * testsuite/gas/i386/x86-64-opcode.d: Adjust expectations.
+
2019-09-19 Matthew Malcomson <matthew.malcomson@arm.com>
* NEWS: Add SVE2 and TME entries.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index fec69c1397..349b36da5d 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7010,14 +7010,14 @@ duplicate:
if (flag_code != CODE_64BIT
? i.tm.base_opcode == POP_SEG_SHORT
&& i.op[0].regs->reg_num == 1
- : (i.tm.base_opcode | 1) == POP_SEG_SHORT
+ : (i.tm.base_opcode | 1) == POP_SEG386_SHORT
&& i.op[0].regs->reg_num < 4)
{
as_bad (_("you can't `%s %s%s'"),
i.tm.name, register_prefix, i.op[0].regs->reg_name);
return 0;
}
- if ( i.op[0].regs->reg_num > 3 )
+ if ( i.op[0].regs->reg_num > 3 && i.tm.opcode_length == 1 )
{
i.tm.base_opcode ^= POP_SEG_SHORT ^ POP_SEG386_SHORT;
i.tm.opcode_length = 2;
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d
index 35829f4f84..d8a1e44a45 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode.d
@@ -255,13 +255,19 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 41 8f 00 popq \(%r8\)
[ ]*[a-f0-9]+: 8f 00 popq \(%rax\)
[ ]*[a-f0-9]+: 0f a1 popq %fs
+[ ]*[a-f0-9]+: 0f a1 popq %fs
+[ ]*[a-f0-9]+: 0f a9 popq %gs
[ ]*[a-f0-9]+: 0f a9 popq %gs
[ ]*[a-f0-9]+: 9d popfq
+[ ]*[a-f0-9]+: 9d popfq
[ ]*[a-f0-9]+: 41 ff 30 pushq \(%r8\)
[ ]*[a-f0-9]+: ff 30 pushq \(%rax\)
[ ]*[a-f0-9]+: 0f a0 pushq %fs
+[ ]*[a-f0-9]+: 0f a0 pushq %fs
+[ ]*[a-f0-9]+: 0f a8 pushq %gs
[ ]*[a-f0-9]+: 0f a8 pushq %gs
[ ]*[a-f0-9]+: 9c pushfq
+[ ]*[a-f0-9]+: 9c pushfq
[ ]*[a-f0-9]+: 0f 77 emms
[ ]*[a-f0-9]+: 0f 0e femms
[ ]*[a-f0-9]+: 0f 08 invd
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s
index 8d4a6ed9b2..caee124d16 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.s
+++ b/gas/testsuite/gas/i386/x86-64-opcode.s
@@ -323,15 +323,21 @@
POPq (%r8) # -- -- -- 41 8F 00 ; REX to access upper reg.
POPq (%rax) # -- -- -- -- 8F 00
POP %fs # -- -- -- -- 0F A1
+ POPq %fs # -- -- -- -- 0F A1
POP %gs # -- -- -- -- 0F A9
- POPFQ # -- -- -- -- 9D
+ POPq %gs # -- -- -- -- 0F A9
+ POPF # -- -- -- -- 9D
+ POPFq # -- -- -- -- 9D
# PUSH
PUSHq (%r8) # -- -- -- 41 FF 30 ; REX to access upper reg.
PUSHq (%rax) # -- -- -- -- FF 30
PUSH %fs # -- -- -- -- 0F A0
+ PUSHq %fs # -- -- -- -- 0F A0
PUSH %gs # -- -- -- -- 0F A8
- PUSHFQ # -- -- -- -- 9C
+ PUSHq %gs # -- -- -- -- 0F A8
+ PUSHF # -- -- -- -- 9C
+ PUSHFq # -- -- -- -- 9C
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0d8abcd7ff..0043d4eb16 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,10 @@
+2018-09-20 Jan Beulich <jbeulich@suse.com>
+
+ PR gas/25012
+ * i386-opc.tbl (push, pop): Re-instate distinct Cpu64 templates
+ with SReg operand.
+ * i386-tbl.h: Re-generate.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* arc-ext.c: Update throughout for bfd section macro changes.
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index af2b600ba1..256ff04360 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -116,22 +116,24 @@ push, 1, 0x50, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|N
push, 1, 0xff, 0x6, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
push, 1, 0x6a, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8S }
push, 1, 0x68, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16|Imm32 }
-push, 1, 0x6, None, 1, 0, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
+push, 1, 0x6, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
// In 64bit mode, the operand size is implicitly 64bit.
push, 1, 0x50, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
push, 1, 0xff, 0x6, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
push, 1, 0x6a, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8S }
push, 1, 0x68, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm16|Imm32S }
+push, 1, 0xfa0, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg }
pusha, 0, 0x60, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
// Pop instructions.
pop, 1, 0x58, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
pop, 1, 0x8f, 0x0, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
-pop, 1, 0x7, None, 1, 0, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
+pop, 1, 0x7, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
// In 64bit mode, the operand size is implicitly 64bit.
pop, 1, 0x58, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
pop, 1, 0x8f, 0x0, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
+pop, 1, 0xfa1, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg }
popa, 0, 0x61, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 307415e8ca..89c752e826 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -635,7 +635,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -694,6 +694,19 @@ const insn_template i386_optab[] =
0 },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+ { "push", 1, 0xfa0, None, 2,
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
{ "pusha", 0, 0x60, None, 1,
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -739,7 +752,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -772,6 +785,19 @@ const insn_template i386_optab[] =
0 },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0,
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+ { "pop", 1, 0xfa1, None, 2,
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
{ "popa", 0, 0x61, None, 1,
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 8:48 [binutils-gdb] x86-64: fix handling of PUSH/POP of segment register gdb-buildbot
@ 2019-09-20 8:47 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 8:47 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/99
Author:
Jan Beulich <jbeulich@suse.com>
Commit tested:
3f9aad111cea2f25877d0a6b404956769c14faee
Subject of commit:
x86-64: fix handling of PUSH/POP of segment register
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3f/3f9aad111cea2f25877d0a6b404956769c14faee/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3f/3f9aad111cea2f25877d0a6b404956769c14faee//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3f/3f9aad111cea2f25877d0a6b404956769c14faee//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions
@ 2019-09-20 9:09 gdb-buildbot
2019-09-20 8:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 9:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 00f93c449228e69f2161405b1f49b406e88785f0 ***
commit 00f93c449228e69f2161405b1f49b406e88785f0
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 19 11:51:04 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:02 2019 +0930
bfd macro conversion to inline functions
This converts some of the macros that access struct bfd fields to
inline functions.
bfd/
* archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
* bfd-in.h (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
(bfd_get_target, bfd_get_flavour, bfd_family_coff, bfd_big_endian),
(bfd_little_endian, bfd_header_big_endian, bfd_header_little_endian),
(bfd_get_file_flags, bfd_applicable_file_flags),
(bfd_applicable_section_flags, bfd_has_map, bfd_is_thin_archive),
(bfd_valid_reloc_types, bfd_usrdata, bfd_get_start_address),
(bfd_get_symcount, bfd_get_outsymbols, bfd_count_sections),
(bfd_get_dynamic_symcount, bfd_get_symbol_leading_char): Delete.
* bfd/bfd.c (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
(bfd_get_file_flags, bfd_get_start_address, bfd_get_symcount),
(bfd_get_dynamic_symcount, bfd_get_outsymbols, bfd_count_sections),
(bfd_has_map, bfd_is_thin_archive, bfd_set_thin_archive),
(bfd_usrdata, bfd_set_usrdata): New inline functions.
* targets.c (bfd_get_target, bfd_get_flavour),
(bfd_applicable_file_flags, bfd_family_coff, bfd_big_endian),
(bfd_little_endian, bfd_header_big_endian),
(bfd_header_little_endian, bfd_applicable_section_flags),
(bfd_get_symbol_leading_char): New inline functions.
* bfd-in2.h: Regenerate.
binutils/
* ar.c (write_archive): Use bfd_set_thin_archive.
gdb/
* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
* dwarf2read.c (dwarf2_read_gdb_index, dwarf2_read_debug_names),
(read_indirect_string_from_dwz): Use bfd accessor.
* dwarf2read.h (struct dwz_file <filename>): Likewise.
* machoread.c (macho_symfile_read_all_oso): Likewise.
* solib.c (solib_bfd_open): Likewise.
ld/
* ldelf.c (ldelf_after_open, ldelf_place_orphan
* ldlang.c (walk_wild_file, lang_process): Use bfd_usrdata.
(load_symbols, ldlang_add_file): Use bfd_set_usrdata.
* ldmain.c (add_archive_element): Use bfd_usrdata.
* ldlang.h (bfd_input_just_syms): New inline function.
* emultempl/aarch64elf.em (build_section_lists): Use it.
* emultempl/mmo.em (mmo_place_orphan): Likewise.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/ppc64elf.em (build_section_lists): Likewise.
sim/
* ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6fa38eef45..1c700dbfff 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
+ * bfd-in.h (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
+ (bfd_get_target, bfd_get_flavour, bfd_family_coff, bfd_big_endian),
+ (bfd_little_endian, bfd_header_big_endian, bfd_header_little_endian),
+ (bfd_get_file_flags, bfd_applicable_file_flags),
+ (bfd_applicable_section_flags, bfd_has_map, bfd_is_thin_archive),
+ (bfd_valid_reloc_types, bfd_usrdata, bfd_get_start_address),
+ (bfd_get_symcount, bfd_get_outsymbols, bfd_count_sections),
+ (bfd_get_dynamic_symcount, bfd_get_symbol_leading_char): Delete.
+ * bfd/bfd.c (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
+ (bfd_get_file_flags, bfd_get_start_address, bfd_get_symcount),
+ (bfd_get_dynamic_symcount, bfd_get_outsymbols, bfd_count_sections),
+ (bfd_has_map, bfd_is_thin_archive, bfd_set_thin_archive),
+ (bfd_usrdata, bfd_set_usrdata): New inline functions.
+ * targets.c (bfd_get_target, bfd_get_flavour),
+ (bfd_applicable_file_flags, bfd_family_coff, bfd_big_endian),
+ (bfd_little_endian, bfd_header_big_endian),
+ (bfd_header_little_endian, bfd_applicable_section_flags),
+ (bfd_get_symbol_leading_char): New inline functions.
+ * bfd-in2.h: Regenerate.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_glibc_dynamic_reloc): New function.
diff --git a/bfd/archive.c b/bfd/archive.c
index dc0400d1cf..ccc09ad49f 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -856,7 +856,7 @@ bfd_generic_archive_p (bfd *abfd)
return NULL;
}
- bfd_is_thin_archive (abfd) = (strncmp (armag, ARMAGT, SARMAG) == 0);
+ bfd_set_thin_archive (abfd, strncmp (armag, ARMAGT, SARMAG) == 0);
if (strncmp (armag, ARMAG, SARMAG) != 0
&& ! bfd_is_thin_archive (abfd))
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index e55e3e90ba..34c1c3ad0e 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -509,38 +509,6 @@ extern int bfd_stat (bfd *, struct stat *);
#endif
extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
-#define bfd_get_filename(abfd) ((abfd)->filename)
-#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
-#define bfd_get_format(abfd) ((abfd)->format)
-#define bfd_get_target(abfd) ((abfd)->xvec->name)
-#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
-#define bfd_family_coff(abfd) \
- (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
- bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
-#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
-#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_header_big_endian(abfd) \
- ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
-#define bfd_header_little_endian(abfd) \
- ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_get_file_flags(abfd) ((abfd)->flags)
-#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
-#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_has_map(abfd) ((abfd)->has_armap)
-#define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
-
-#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
-#define bfd_usrdata(abfd) ((abfd)->usrdata)
-
-#define bfd_get_start_address(abfd) ((abfd)->start_address)
-#define bfd_get_symcount(abfd) ((abfd)->symcount)
-#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
-#define bfd_count_sections(abfd) ((abfd)->section_count)
-
-#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
-
-#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
extern bfd_boolean bfd_cache_close
(bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 425f0c6709..4f158679b2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -516,38 +516,6 @@ extern int bfd_stat (bfd *, struct stat *);
#endif
extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
-#define bfd_get_filename(abfd) ((abfd)->filename)
-#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
-#define bfd_get_format(abfd) ((abfd)->format)
-#define bfd_get_target(abfd) ((abfd)->xvec->name)
-#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
-#define bfd_family_coff(abfd) \
- (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
- bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
-#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
-#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_header_big_endian(abfd) \
- ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
-#define bfd_header_little_endian(abfd) \
- ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
-#define bfd_get_file_flags(abfd) ((abfd)->flags)
-#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
-#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_has_map(abfd) ((abfd)->has_armap)
-#define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
-
-#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
-#define bfd_usrdata(abfd) ((abfd)->usrdata)
-
-#define bfd_get_start_address(abfd) ((abfd)->start_address)
-#define bfd_get_symcount(abfd) ((abfd)->symcount)
-#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
-#define bfd_count_sections(abfd) ((abfd)->section_count)
-
-#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
-
-#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
extern bfd_boolean bfd_cache_close
(bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
@@ -7321,6 +7289,78 @@ struct bfd
const struct bfd_build_id *build_id;
};
+static inline const char *
+bfd_get_filename (const bfd *abfd)
+{
+ return abfd->filename;
+}
+
+static inline bfd_boolean
+bfd_get_cacheable (const bfd *abfd)
+{
+ return abfd->cacheable;
+}
+
+static inline enum bfd_format
+bfd_get_format (const bfd *abfd)
+{
+ return abfd->format;
+}
+
+static inline flagword
+bfd_get_file_flags (const bfd *abfd)
+{
+ return abfd->flags;
+}
+
+static inline bfd_vma
+bfd_get_start_address (const bfd *abfd)
+{
+ return abfd->start_address;
+}
+
+static inline unsigned int
+bfd_get_symcount (const bfd *abfd)
+{
+ return abfd->symcount;
+}
+
+static inline unsigned int
+bfd_get_dynamic_symcount (const bfd *abfd)
+{
+ return abfd->dynsymcount;
+}
+
+static inline struct bfd_symbol **
+bfd_get_outsymbols (const bfd *abfd)
+{
+ return abfd->outsymbols;
+}
+
+static inline unsigned int
+bfd_count_sections (const bfd *abfd)
+{
+ return abfd->section_count;
+}
+
+static inline bfd_boolean
+bfd_has_map (const bfd *abfd)
+{
+ return abfd->has_armap;
+}
+
+static inline bfd_boolean
+bfd_is_thin_archive (const bfd *abfd)
+{
+ return abfd->is_thin_archive;
+}
+
+static inline void *
+bfd_usrdata (const bfd *abfd)
+{
+ return abfd->usrdata;
+}
+
/* See note beside bfd_set_section_userdata. */
static inline bfd_boolean
bfd_set_cacheable (bfd * abfd, bfd_boolean val)
@@ -7329,6 +7369,18 @@ bfd_set_cacheable (bfd * abfd, bfd_boolean val)
return TRUE;
}
+static inline void
+bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
+{
+ abfd->is_thin_archive = val;
+}
+
+static inline void
+bfd_set_usrdata (bfd *abfd, void *val)
+{
+ abfd->usrdata = val;
+}
+
typedef enum bfd_error
{
@@ -8023,6 +8075,66 @@ typedef struct bfd_target
} bfd_target;
+static inline const char *
+bfd_get_target (const bfd *abfd)
+{
+ return abfd->xvec->name;
+}
+
+static inline enum bfd_flavour
+bfd_get_flavour (const bfd *abfd)
+{
+ return abfd->xvec->flavour;
+}
+
+static inline flagword
+bfd_applicable_file_flags (const bfd *abfd)
+{
+ return abfd->xvec->object_flags;
+}
+
+static inline bfd_boolean
+bfd_family_coff (const bfd *abfd)
+{
+ return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
+ || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
+}
+
+static inline bfd_boolean
+bfd_big_endian (const bfd *abfd)
+{
+ return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
+}
+static inline bfd_boolean
+bfd_little_endian (const bfd *abfd)
+{
+ return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
+}
+
+static inline bfd_boolean
+bfd_header_big_endian (const bfd *abfd)
+{
+ return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
+}
+
+static inline bfd_boolean
+bfd_header_little_endian (const bfd *abfd)
+{
+ return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
+}
+
+static inline flagword
+bfd_applicable_section_flags (const bfd *abfd)
+{
+ return abfd->xvec->section_flags;
+}
+
+static inline char
+bfd_get_symbol_leading_char (const bfd *abfd)
+{
+ return abfd->xvec->symbol_leading_char;
+}
+
bfd_boolean bfd_set_default_target (const char *name);
const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 7029bf7b85..c11274c187 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -355,6 +355,78 @@ CODE_FRAGMENT
. const struct bfd_build_id *build_id;
.};
.
+.static inline const char *
+.bfd_get_filename (const bfd *abfd)
+.{
+. return abfd->filename;
+.}
+.
+.static inline bfd_boolean
+.bfd_get_cacheable (const bfd *abfd)
+.{
+. return abfd->cacheable;
+.}
+.
+.static inline enum bfd_format
+.bfd_get_format (const bfd *abfd)
+.{
+. return abfd->format;
+.}
+.
+.static inline flagword
+.bfd_get_file_flags (const bfd *abfd)
+.{
+. return abfd->flags;
+.}
+.
+.static inline bfd_vma
+.bfd_get_start_address (const bfd *abfd)
+.{
+. return abfd->start_address;
+.}
+.
+.static inline unsigned int
+.bfd_get_symcount (const bfd *abfd)
+.{
+. return abfd->symcount;
+.}
+.
+.static inline unsigned int
+.bfd_get_dynamic_symcount (const bfd *abfd)
+.{
+. return abfd->dynsymcount;
+.}
+.
+.static inline struct bfd_symbol **
+.bfd_get_outsymbols (const bfd *abfd)
+.{
+. return abfd->outsymbols;
+.}
+.
+.static inline unsigned int
+.bfd_count_sections (const bfd *abfd)
+.{
+. return abfd->section_count;
+.}
+.
+.static inline bfd_boolean
+.bfd_has_map (const bfd *abfd)
+.{
+. return abfd->has_armap;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_thin_archive (const bfd *abfd)
+.{
+. return abfd->is_thin_archive;
+.}
+.
+.static inline void *
+.bfd_usrdata (const bfd *abfd)
+.{
+. return abfd->usrdata;
+.}
+.
.{* See note beside bfd_set_section_userdata. *}
.static inline bfd_boolean
.bfd_set_cacheable (bfd * abfd, bfd_boolean val)
@@ -363,6 +435,18 @@ CODE_FRAGMENT
. return TRUE;
.}
.
+.static inline void
+.bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
+.{
+. abfd->is_thin_archive = val;
+.}
+.
+.static inline void
+.bfd_set_usrdata (bfd *abfd, void *val)
+.{
+. abfd->usrdata = val;
+.}
+.
*/
#include "sysdep.h"
diff --git a/bfd/targets.c b/bfd/targets.c
index b02dfc5484..116a5c34de 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -584,6 +584,66 @@ to find an alternative output format that is suitable.
.
.} bfd_target;
.
+.static inline const char *
+.bfd_get_target (const bfd *abfd)
+.{
+. return abfd->xvec->name;
+.}
+.
+.static inline enum bfd_flavour
+.bfd_get_flavour (const bfd *abfd)
+.{
+. return abfd->xvec->flavour;
+.}
+.
+.static inline flagword
+.bfd_applicable_file_flags (const bfd *abfd)
+.{
+. return abfd->xvec->object_flags;
+.}
+.
+.static inline bfd_boolean
+.bfd_family_coff (const bfd *abfd)
+.{
+. return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
+. || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
+.}
+.
+.static inline bfd_boolean
+.bfd_big_endian (const bfd *abfd)
+.{
+. return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
+.}
+.static inline bfd_boolean
+.bfd_little_endian (const bfd *abfd)
+.{
+. return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
+.}
+.
+.static inline bfd_boolean
+.bfd_header_big_endian (const bfd *abfd)
+.{
+. return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
+.}
+.
+.static inline bfd_boolean
+.bfd_header_little_endian (const bfd *abfd)
+.{
+. return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
+.}
+.
+.static inline flagword
+.bfd_applicable_section_flags (const bfd *abfd)
+.{
+. return abfd->xvec->section_flags;
+.}
+.
+.static inline char
+.bfd_get_symbol_leading_char (const bfd *abfd)
+.{
+. return abfd->xvec->symbol_leading_char;
+.}
+.
*/
/* All known xvecs (even those that don't compile on all systems).
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9d1aa848fb..21dc92dcae 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * ar.c (write_archive): Use bfd_set_thin_archive.
+
2019-09-18 Tamar Christina <tamar.christina@arm.com>
* testsuite/binutils-all/objdump.exp (objump -S): Update testcases.
diff --git a/binutils/ar.c b/binutils/ar.c
index 4e953c054d..6bac862bc7 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -1200,7 +1200,7 @@ write_archive (bfd *iarch)
obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
if (make_thin_archive || bfd_is_thin_archive (iarch))
- bfd_is_thin_archive (obfd) = 1;
+ bfd_set_thin_archive (obfd, TRUE);
if (!bfd_set_archive_head (obfd, contents_head))
bfd_fatal (old_name);
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 41a002498d..5314b2746b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
+ * dwarf2read.c (dwarf2_read_gdb_index, dwarf2_read_debug_names),
+ (read_indirect_string_from_dwz): Use bfd accessor.
+ * dwarf2read.h (struct dwz_file <filename>): Likewise.
+ * machoread.c (macho_symfile_read_all_oso): Likewise.
+ * solib.c (solib_bfd_open): Likewise.
+
2019-09-19 Christian Biesinger <cbiesinger@google.com>
* eval.c: Move declaration of overload_resolution to...
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 5e71ded203..1052501c35 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3584,14 +3584,14 @@ dwarf2_read_gdb_index
return 0;
if (!read_gdb_index_from_buffer (objfile,
- bfd_get_filename (dwz->dwz_bfd), 1,
- dwz_index_content, &dwz_map,
+ bfd_get_filename (dwz->dwz_bfd.get ()),
+ 1, dwz_index_content, &dwz_map,
&dwz_list, &dwz_list_elements,
&dwz_types_ignore,
&dwz_types_elements_ignore))
{
warning (_("could not read '.gdb_index' section from %s; skipping"),
- bfd_get_filename (dwz->dwz_bfd));
+ bfd_get_filename (dwz->dwz_bfd.get ()));
return 0;
}
}
@@ -5596,11 +5596,11 @@ dwarf2_read_debug_names (struct dwarf2_per_objfile *dwarf2_per_objfile)
if (dwz != NULL)
{
if (!read_debug_names_from_section (objfile,
- bfd_get_filename (dwz->dwz_bfd),
+ bfd_get_filename (dwz->dwz_bfd.get ()),
&dwz->debug_names, dwz_map))
{
warning (_("could not read '.debug_names' section from %s; skipping"),
- bfd_get_filename (dwz->dwz_bfd));
+ bfd_get_filename (dwz->dwz_bfd.get ()));
return false;
}
}
@@ -19759,11 +19759,11 @@ read_indirect_string_from_dwz (struct objfile *objfile, struct dwz_file *dwz,
if (dwz->str.buffer == NULL)
error (_("DW_FORM_GNU_strp_alt used without .debug_str "
"section [in module %s]"),
- bfd_get_filename (dwz->dwz_bfd));
+ bfd_get_filename (dwz->dwz_bfd.get ()));
if (str_offset >= dwz->str.size)
error (_("DW_FORM_GNU_strp_alt pointing outside of "
".debug_str section [in module %s]"),
- bfd_get_filename (dwz->dwz_bfd));
+ bfd_get_filename (dwz->dwz_bfd.get ()));
gdb_assert (HOST_CHAR_BIT == 8);
if (dwz->str.buffer[str_offset] == '\0')
return NULL;
diff --git a/gdb/dwarf2read.h b/gdb/dwarf2read.h
index e9b946247b..d5a02990d4 100644
--- a/gdb/dwarf2read.h
+++ b/gdb/dwarf2read.h
@@ -417,7 +417,7 @@ struct dwz_file
const char *filename () const
{
- return bfd_get_filename (this->dwz_bfd);
+ return bfd_get_filename (this->dwz_bfd.get ());
}
/* A dwz file can only contain a few sections. */
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 8a67d5e97d..69618a27e1 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -546,7 +546,7 @@ gdb_bfd_ref (struct bfd *abfd)
abfd->flags |= BFD_DECOMPRESS;
gdata = new gdb_bfd_data (abfd);
- bfd_usrdata (abfd) = gdata;
+ bfd_set_usrdata (abfd, gdata);
bfd_alloc_data (abfd);
/* This is the first we've seen it, so add it to the hash table. */
@@ -608,7 +608,7 @@ gdb_bfd_unref (struct bfd *abfd)
bfd_free_data (abfd);
delete gdata;
- bfd_usrdata (abfd) = NULL; /* Paranoia. */
+ bfd_set_usrdata (abfd, NULL); /* Paranoia. */
htab_remove_elt (all_bfds, abfd);
diff --git a/gdb/machoread.c b/gdb/machoread.c
index 1795982a3e..a015d297c3 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -671,7 +671,7 @@ macho_symfile_read_all_oso (std::vector<oso_el> *oso_vector_ptr,
/* Load all oso in this library. */
while (member_bfd != NULL)
{
- const char *member_name = member_bfd->filename;
+ const char *member_name = bfd_get_filename (member_bfd.get ());
int member_len = strlen (member_name);
/* If this member is referenced, add it as a symfile. */
@@ -685,7 +685,7 @@ macho_symfile_read_all_oso (std::vector<oso_el> *oso_vector_ptr,
member_len))
{
macho_add_oso_symfile (oso2, member_bfd,
- bfd_get_filename (member_bfd),
+ bfd_get_filename (member_bfd.get ()),
main_objfile, symfile_flags);
oso2->name = NULL;
break;
diff --git a/gdb/solib.c b/gdb/solib.c
index 86000f6d61..b9a61e265b 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -502,14 +502,14 @@ solib_bfd_open (const char *pathname)
/* Check bfd format. */
if (!bfd_check_format (abfd.get (), bfd_object))
error (_("`%s': not in executable format: %s"),
- bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
+ bfd_get_filename (abfd.get ()), bfd_errmsg (bfd_get_error ()));
/* Check bfd arch. */
b = gdbarch_bfd_arch_info (target_gdbarch ());
if (!b->compatible (b, bfd_get_arch_info (abfd.get ())))
warning (_("`%s': Shared library architecture %s is not compatible "
- "with target architecture %s."), bfd_get_filename (abfd),
- bfd_get_arch_info (abfd.get ())->printable_name,
+ "with target architecture %s."), bfd_get_filename (abfd.get ()),
+ bfd_get_arch_info (abfd.get ())->printable_name,
b->printable_name);
return abfd;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2abb558b9c..705a2b2de8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * ldelf.c (ldelf_after_open, ldelf_place_orphan
+ * ldlang.c (walk_wild_file, lang_process): Use bfd_usrdata.
+ (load_symbols, ldlang_add_file): Use bfd_set_usrdata.
+ * ldmain.c (add_archive_element): Use bfd_usrdata.
+ * ldlang.h (bfd_input_just_syms): New inline function.
+ * emultempl/aarch64elf.em (build_section_lists): Use it.
+ * emultempl/mmo.em (mmo_place_orphan): Likewise.
+ * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+ * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
+ * emultempl/ppc64elf.em (build_section_lists): Likewise.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* ldcref.c, * ldctor.c, * ldelf.c, * ldlang.c, * pe-dll.c,
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index bd5c888782..208d169404 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -217,7 +217,7 @@ build_section_lists (lang_statement_union_type *statement)
{
asection *i = statement->input_section.section;
- if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
+ if (!bfd_input_just_syms (i->owner)
&& (i->flags & SEC_EXCLUDE) == 0
&& i->output_section != NULL
&& i->output_section->owner == link_info.output_bfd)
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
index fff48942bc..85c5863953 100644
--- a/ld/emultempl/mmo.em
+++ b/ld/emultempl/mmo.em
@@ -116,9 +116,7 @@ mmo_place_orphan (asection *s,
&& (nexts->flags & SEC_EXCLUDE) == 0
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
- && nexts->owner->usrdata != NULL
- && !(((lang_input_statement_type *) nexts->owner->usrdata)
- ->flags.just_syms))
+ && !bfd_input_just_syms (nexts->owner))
flags = (((flags ^ SEC_READONLY) | (nexts->flags ^ SEC_READONLY))
^ SEC_READONLY);
}
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 70f771cebd..150c98296f 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -2116,9 +2116,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
&& (nexts->flags & SEC_EXCLUDE) == 0
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
- && nexts->owner->usrdata != NULL
- && !(((lang_input_statement_type *) nexts->owner->usrdata)
- ->flags.just_syms))
+ && !bfd_input_just_syms (nexts->owner))
flags = (((flags ^ SEC_READONLY)
| (nexts->flags ^ SEC_READONLY))
^ SEC_READONLY);
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 6d150d211a..ab2a989bc5 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1914,9 +1914,7 @@ gld_${EMULATION_NAME}_place_orphan (asection *s,
&& (nexts->flags & SEC_EXCLUDE) == 0
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
- && nexts->owner->usrdata != NULL
- && !(((lang_input_statement_type *) nexts->owner->usrdata)
- ->flags.just_syms))
+ && !bfd_input_just_syms (nexts->owner))
flags = (((flags ^ SEC_READONLY)
| (nexts->flags ^ SEC_READONLY))
^ SEC_READONLY);
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index ee71f256c6..aad56cfddd 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -489,7 +489,7 @@ build_section_lists (lang_statement_union_type *statement)
{
asection *i = statement->input_section.section;
- if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
+ if (!bfd_input_just_syms (i->owner)
&& (i->flags & SEC_EXCLUDE) == 0
&& i->output_section != NULL
&& i->output_section->owner == link_info.output_bfd)
diff --git a/ld/ldelf.c b/ld/ldelf.c
index 8d4a2e58a1..e43d33d432 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1018,7 +1018,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
abfd != (bfd *) NULL; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_count_sections (abfd) != 0
- && !((lang_input_statement_type *) abfd->usrdata)->flags.just_syms)
+ && !bfd_input_just_syms (abfd))
break;
/* PR 10555: If there are no ELF input files do not try to
@@ -1060,7 +1060,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
{
int type = 0;
- if (((lang_input_statement_type *) abfd->usrdata)->flags.just_syms)
+ if (bfd_input_just_syms (abfd))
continue;
for (s = abfd->sections; s && type < COMPACT_EH_HDR; s = s->next)
@@ -2065,9 +2065,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
&& (nexts->flags & SEC_EXCLUDE) == 0
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
- && nexts->owner->usrdata != NULL
- && !(((lang_input_statement_type *) nexts->owner->usrdata)
- ->flags.just_syms)
+ && !bfd_input_just_syms (nexts->owner)
&& _bfd_elf_match_sections_by_type (nexts->owner, nexts,
s->owner, s))
flags = (((flags ^ SEC_READONLY)
diff --git a/ld/ldlang.c b/ld/ldlang.c
index a3843623fb..0ffcf34473 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -902,12 +902,8 @@ walk_wild_file (lang_wild_statement_type *s,
archive which is included, BFD will call ldlang_add_file,
which will set the usrdata field of the member to the
lang_input_statement. */
- if (member->usrdata != NULL)
- {
- walk_wild_section (s,
- (lang_input_statement_type *) member->usrdata,
- callback, data);
- }
+ if (bfd_usrdata (member) != NULL)
+ walk_wild_section (s, bfd_usrdata (member), callback, data);
member = bfd_openr_next_archived_file (f->the_bfd, member);
}
@@ -3038,7 +3034,7 @@ load_symbols (lang_input_statement_type *entry,
case bfd_archive:
check_excluded_libs (entry->the_bfd);
- entry->the_bfd->usrdata = entry;
+ bfd_set_usrdata (entry->the_bfd, entry);
if (entry->flags.whole_archive)
{
bfd *member = NULL;
@@ -6898,7 +6894,7 @@ ldlang_add_file (lang_input_statement_type *entry)
*link_info.input_bfds_tail = entry->the_bfd;
link_info.input_bfds_tail = &entry->the_bfd->link.next;
- entry->the_bfd->usrdata = entry;
+ bfd_set_usrdata (entry->the_bfd, entry);
bfd_set_gp_size (entry->the_bfd, g_switch_value);
/* Look through the sections and check for any which should not be
@@ -7540,7 +7536,7 @@ lang_process (void)
*iter = temp;
if (my_arch != NULL)
{
- lang_input_statement_type *parent = my_arch->usrdata;
+ lang_input_statement_type *parent = bfd_usrdata (my_arch);
if (parent != NULL)
parent->next = (lang_input_statement_type *)
((char *) iter
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 686e44f841..9fb10f80a7 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -331,6 +331,12 @@ typedef struct input_section_userdata_struct
#define get_userdata(x) ((x)->userdata)
+static inline bfd_boolean
+bfd_input_just_syms (const bfd *abfd)
+{
+ lang_input_statement_type *is = bfd_usrdata (abfd);
+ return is != NULL && is->flags.just_syms;
+}
typedef struct lang_wild_statement_struct lang_wild_statement_type;
diff --git a/ld/ldmain.c b/ld/ldmain.c
index e24194ef87..34c1922313 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -816,7 +816,7 @@ add_archive_element (struct bfd_link_info *info,
input->local_sym_name = abfd->filename;
input->the_bfd = abfd;
- parent = abfd->my_archive->usrdata;
+ parent = bfd_usrdata (abfd->my_archive);
if (parent != NULL && !parent->flags.reload)
parent->next = input;
diff --git a/sim/ChangeLog b/sim/ChangeLog
index 191e2370a9..d4c7d166d2 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
+
2019-09-18 Alan Modra <amodra@gmail.com>
* common/sim-load.c, * common/sim-utils.c, * cris/sim-if.c,
diff --git a/sim/ppc/emul_generic.c b/sim/ppc/emul_generic.c
index dc0b2cf1e0..64c0219309 100644
--- a/sim/ppc/emul_generic.c
+++ b/sim/ppc/emul_generic.c
@@ -262,12 +262,7 @@ emul_add_tree_options(device *tree,
if (tree_find_property(tree, "/options/little-endian?"))
little_endian = tree_find_boolean_property(tree, "/options/little-endian?");
else {
-#ifdef bfd_little_endian /* new bfd */
little_endian = (image != NULL && bfd_little_endian(image));
-#else
- little_endian = (image != NULL &&
- !image->xvec->byteorder_big_p);
-#endif
tree_parse(tree, "/options/little-endian? %s",
little_endian ? "true" : "false");
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, asymbol
@ 2019-09-20 9:27 gdb-buildbot
2019-09-20 9:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 9:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT af30dc128be191dc6179763203035ff62c634284 ***
commit af30dc128be191dc6179763203035ff62c634284
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 19 12:15:16 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:02 2019 +0930
bfd macro conversion to inline functions, asymbol
* bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
(bfd_asymbol_bfd, bfd_asymbol_flavour, bfd_set_asymbol_name): Delete.
* bfd.c (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
(bfd_asymbol_bfd, bfd_set_asymbol_name): New inline functions.
* targets.c (bfd_asymbol_flavour): Likewise.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c700dbfff..5222063bf0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+ (bfd_asymbol_bfd, bfd_asymbol_flavour, bfd_set_asymbol_name): Delete.
+ * bfd.c (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
+ (bfd_asymbol_bfd, bfd_set_asymbol_name): New inline functions.
+ * targets.c (bfd_asymbol_flavour): Likewise.
+ * bfd-in2.h: Regenerate.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 34c1c3ad0e..e9ada8d27f 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -237,19 +237,6 @@ typedef unsigned long symindex;
#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
-/* General purpose part of a symbol X;
- target specific parts are in libcoff.h, libaout.h, etc. */
-
-#define bfd_asymbol_section(sy) ((sy)->section)
-#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
-#define bfd_asymbol_name(sy) ((sy)->name)
-#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
-#define bfd_asymbol_flavour(sy) \
- (((sy)->flags & BSF_SYNTHETIC) != 0 \
- ? bfd_target_unknown_flavour \
- : (sy)->the_bfd->xvec->flavour)
-#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
-
/* A canonical archive symbol. */
/* This is a type pun with struct ranlib on purpose! */
typedef struct carsym
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4f158679b2..5ac3f41b7a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -244,19 +244,6 @@ typedef unsigned long symindex;
#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
-/* General purpose part of a symbol X;
- target specific parts are in libcoff.h, libaout.h, etc. */
-
-#define bfd_asymbol_section(sy) ((sy)->section)
-#define bfd_asymbol_value(sy) ((sy)->section->vma + (sy)->value)
-#define bfd_asymbol_name(sy) ((sy)->name)
-#define bfd_asymbol_bfd(sy) ((sy)->the_bfd)
-#define bfd_asymbol_flavour(sy) \
- (((sy)->flags & BSF_SYNTHETIC) != 0 \
- ? bfd_target_unknown_flavour \
- : (sy)->the_bfd->xvec->flavour)
-#define bfd_set_asymbol_name(sy, n) do { (sy)->name = (n); } while (0)
-
/* A canonical archive symbol. */
/* This is a type pun with struct ranlib on purpose! */
typedef struct carsym
@@ -7381,6 +7368,36 @@ bfd_set_usrdata (bfd *abfd, void *val)
abfd->usrdata = val;
}
+static inline asection *
+bfd_asymbol_section (const asymbol *sy)
+{
+ return sy->section;
+}
+
+static inline bfd_vma
+bfd_asymbol_value (const asymbol *sy)
+{
+ return sy->section->vma + sy->value;
+}
+
+static inline const char *
+bfd_asymbol_name (const asymbol *sy)
+{
+ return sy->name;
+}
+
+static inline struct bfd *
+bfd_asymbol_bfd (const asymbol *sy)
+{
+ return sy->the_bfd;
+}
+
+static inline void
+bfd_set_asymbol_name (asymbol *sy, const char *name)
+{
+ sy->name = name;
+}
+
typedef enum bfd_error
{
@@ -8135,6 +8152,14 @@ bfd_get_symbol_leading_char (const bfd *abfd)
return abfd->xvec->symbol_leading_char;
}
+static inline enum bfd_flavour
+bfd_asymbol_flavour (const asymbol *sy)
+{
+ if ((sy->flags & BSF_SYNTHETIC) != 0)
+ return bfd_target_unknown_flavour;
+ return sy->the_bfd->xvec->flavour;
+}
+
bfd_boolean bfd_set_default_target (const char *name);
const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
diff --git a/bfd/bfd.c b/bfd/bfd.c
index c11274c187..9270e118d3 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -447,6 +447,36 @@ CODE_FRAGMENT
. abfd->usrdata = val;
.}
.
+.static inline asection *
+.bfd_asymbol_section (const asymbol *sy)
+.{
+. return sy->section;
+.}
+.
+.static inline bfd_vma
+.bfd_asymbol_value (const asymbol *sy)
+.{
+. return sy->section->vma + sy->value;
+.}
+.
+.static inline const char *
+.bfd_asymbol_name (const asymbol *sy)
+.{
+. return sy->name;
+.}
+.
+.static inline struct bfd *
+.bfd_asymbol_bfd (const asymbol *sy)
+.{
+. return sy->the_bfd;
+.}
+.
+.static inline void
+.bfd_set_asymbol_name (asymbol *sy, const char *name)
+.{
+. sy->name = name;
+.}
+.
*/
#include "sysdep.h"
diff --git a/bfd/targets.c b/bfd/targets.c
index 116a5c34de..717657fba4 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -644,6 +644,14 @@ to find an alternative output format that is suitable.
. return abfd->xvec->symbol_leading_char;
.}
.
+.static inline enum bfd_flavour
+.bfd_asymbol_flavour (const asymbol *sy)
+.{
+. if ((sy->flags & BSF_SYNTHETIC) != 0)
+. return bfd_target_unknown_flavour;
+. return sy->the_bfd->xvec->flavour;
+.}
+.
*/
/* All known xvecs (even those that don't compile on all systems).
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 9:27 [binutils-gdb] bfd macro conversion to inline functions, asymbol gdb-buildbot
@ 2019-09-20 9:18 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 9:18 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/101
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
af30dc128be191dc6179763203035ff62c634284
Subject of commit:
bfd macro conversion to inline functions, asymbol
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/af/af30dc128be191dc6179763203035ff62c634284/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/af/af30dc128be191dc6179763203035ff62c634284//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/af/af30dc128be191dc6179763203035ff62c634284//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, section
@ 2019-09-20 9:43 gdb-buildbot
2019-09-20 9:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 9:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a48931cc2df9f87596d93b319236c73ef0fe0f4e ***
commit a48931cc2df9f87596d93b319236c73ef0fe0f4e
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Tue Sep 17 08:59:25 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Sep 20 18:04:03 2019 +0930
bfd macro conversion to inline functions, section
This one exposed a bug in tic6x gas, found with inline function
parameter type checking. struct bfd_section and struct bfd_symbol
both have a flags field, so bfd_is_com_section (symbol) compiled OK
when bfd_is_com_section was a macro but didn't special case common
symbols.
bfd/
* bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
(bfd_section_lma, bfd_section_alignment, bfd_section_flags),
(bfd_section_userdata, bfd_is_com_section, discarded_section),
(bfd_get_section_limit_octets, bfd_get_section_limit): Delete macros.
* bfd.c (bfd_get_section_limit_octets, bfd_get_section_limit),
(bfd_section_list_remove, bfd_section_list_append),
(bfd_section_list_prepend, bfd_section_list_insert_after),
(bfd_section_list_insert_before, bfd_section_removed_from_list):
New inline functions.
* section.c (bfd_is_und_section, bfd_is_abs_section),
(bfd_is_ind_section, bfd_is_const_section, bfd_section_list_remove),
(bfd_section_list_append, bfd_section_list_prepend),
(bfd_section_list_insert_after, bfd_section_list_insert_before),
(bfd_section_removed_from_list): Delete macros.
(bfd_section_name, bfd_section_size, bfd_section_vma),
(bfd_section_lma, bfd_section_alignment, bfd_section_flags),
(bfd_section_userdata, bfd_is_com_section, bfd_is_und_section),
(bfd_is_abs_section, bfd_is_ind_section, bfd_is_const_section),
(discarded_section): New inline functions.
* bfd-in2.h: Regenerate.
gas/
* config/tc-tic6x.c (tc_gen_reloc): Correct common symbol check.
ld/
* emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
Use bfd_section_userdata.
(xtensa_set_section_deps): Use bfd_set_section_userdata.
* ldlang.c (lang_output_section_get): Use bfd_section_userdata.
(sort_def_symbol): Likewise, and bfd_set_section_userdata.
(init_os): Use bfd_set_section_userdata.
(print_all_symbols): Use bfd_section_userdata.
* ldlang.h (get_userdata): Delete.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5222063bf0..080c628fee 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,26 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
+ (bfd_section_lma, bfd_section_alignment, bfd_section_flags),
+ (bfd_section_userdata, bfd_is_com_section, discarded_section),
+ (bfd_get_section_limit_octets, bfd_get_section_limit): Delete macros.
+ * bfd.c (bfd_get_section_limit_octets, bfd_get_section_limit),
+ (bfd_section_list_remove, bfd_section_list_append),
+ (bfd_section_list_prepend, bfd_section_list_insert_after),
+ (bfd_section_list_insert_before, bfd_section_removed_from_list):
+ New inline functions.
+ * section.c (bfd_is_und_section, bfd_is_abs_section),
+ (bfd_is_ind_section, bfd_is_const_section, bfd_section_list_remove),
+ (bfd_section_list_append, bfd_section_list_prepend),
+ (bfd_section_list_insert_after, bfd_section_list_insert_before),
+ (bfd_section_removed_from_list): Delete macros.
+ (bfd_section_name, bfd_section_size, bfd_section_vma),
+ (bfd_section_lma, bfd_section_alignment, bfd_section_flags),
+ (bfd_section_userdata, bfd_is_com_section, bfd_is_und_section),
+ (bfd_is_abs_section, bfd_is_ind_section, bfd_is_const_section),
+ (discarded_section): New inline functions.
+ * bfd-in2.h: Regenerate.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_asymbol_section, bfd_asymbol_value, bfd_asymbol_name),
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index e9ada8d27f..969a965796 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -285,31 +285,6 @@ typedef struct bfd_section *sec_ptr;
((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \
? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
: ~ (bfd_vma) 0)
-
-#define bfd_section_name(sec) ((sec)->name)
-#define bfd_section_size(sec) ((sec)->size)
-#define bfd_section_vma(sec) ((sec)->vma)
-#define bfd_section_lma(sec) ((sec)->lma)
-#define bfd_section_alignment(sec) ((sec)->alignment_power)
-#define bfd_section_flags(sec) ((sec)->flags)
-#define bfd_section_userdata(sec) ((sec)->userdata)
-
-#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
-
-#define bfd_get_section_limit_octets(bfd, sec) \
- ((bfd)->direction != write_direction && (sec)->rawsize != 0 \
- ? (sec)->rawsize : (sec)->size)
-
-/* Find the address one past the end of SEC. */
-#define bfd_get_section_limit(bfd, sec) \
- (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
-
-/* Return TRUE if input section SEC has been discarded. */
-#define discarded_section(sec) \
- (!bfd_is_abs_section (sec) \
- && bfd_is_abs_section ((sec)->output_section) \
- && (sec)->sec_info_type != SEC_INFO_TYPE_MERGE \
- && (sec)->sec_info_type != SEC_INFO_TYPE_JUST_SYMS)
\f
typedef enum bfd_print_symbol
{
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 5ac3f41b7a..44bce06191 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -292,31 +292,6 @@ typedef struct bfd_section *sec_ptr;
((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \
? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
: ~ (bfd_vma) 0)
-
-#define bfd_section_name(sec) ((sec)->name)
-#define bfd_section_size(sec) ((sec)->size)
-#define bfd_section_vma(sec) ((sec)->vma)
-#define bfd_section_lma(sec) ((sec)->lma)
-#define bfd_section_alignment(sec) ((sec)->alignment_power)
-#define bfd_section_flags(sec) ((sec)->flags)
-#define bfd_section_userdata(sec) ((sec)->userdata)
-
-#define bfd_is_com_section(sec) (((sec)->flags & SEC_IS_COMMON) != 0)
-
-#define bfd_get_section_limit_octets(bfd, sec) \
- ((bfd)->direction != write_direction && (sec)->rawsize != 0 \
- ? (sec)->rawsize : (sec)->size)
-
-/* Find the address one past the end of SEC. */
-#define bfd_get_section_limit(bfd, sec) \
- (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
-
-/* Return TRUE if input section SEC has been discarded. */
-#define discarded_section(sec) \
- (!bfd_is_abs_section (sec) \
- && bfd_is_abs_section ((sec)->output_section) \
- && (sec)->sec_info_type != SEC_INFO_TYPE_MERGE \
- && (sec)->sec_info_type != SEC_INFO_TYPE_JUST_SYMS)
\f
typedef enum bfd_print_symbol
{
@@ -1686,6 +1661,53 @@ struct relax_table {
int size;
};
+static inline const char *
+bfd_section_name (const asection *sec)
+{
+ return sec->name;
+}
+
+static inline bfd_size_type
+bfd_section_size (const asection *sec)
+{
+ return sec->size;
+}
+
+static inline bfd_vma
+bfd_section_vma (const asection *sec)
+{
+ return sec->vma;
+}
+
+static inline bfd_vma
+bfd_section_lma (const asection *sec)
+{
+ return sec->lma;
+}
+
+static inline unsigned int
+bfd_section_alignment (const asection *sec)
+{
+ return sec->alignment_power;
+}
+
+static inline flagword
+bfd_section_flags (const asection *sec)
+{
+ return sec->flags;
+}
+
+static inline void *
+bfd_section_userdata (const asection *sec)
+{
+ return sec->userdata;
+}
+static inline bfd_boolean
+bfd_is_com_section (const asection *sec)
+{
+ return (sec->flags & SEC_IS_COMMON) != 0;
+}
+
/* Note: the following are provided as inline functions rather than macros
because not all callers use the return value. A macro implementation
would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
@@ -1738,105 +1760,39 @@ extern asection _bfd_std_section[4];
/* Pointer to the indirect section. */
#define bfd_ind_section_ptr (&_bfd_std_section[3])
-#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
+static inline bfd_boolean
+bfd_is_und_section (const asection *sec)
+{
+ return sec == bfd_und_section_ptr;
+}
-#define bfd_is_const_section(SEC) \
- ( ((SEC) == bfd_abs_section_ptr) \
- || ((SEC) == bfd_und_section_ptr) \
- || ((SEC) == bfd_com_section_ptr) \
- || ((SEC) == bfd_ind_section_ptr))
+static inline bfd_boolean
+bfd_is_abs_section (const asection *sec)
+{
+ return sec == bfd_abs_section_ptr;
+}
-/* Macros to handle insertion and deletion of a bfd's sections. These
- only handle the list pointers, ie. do not adjust section_count,
- target_index etc. */
-#define bfd_section_list_remove(ABFD, S) \
- do \
- { \
- asection *_s = S; \
- asection *_next = _s->next; \
- asection *_prev = _s->prev; \
- if (_prev) \
- _prev->next = _next; \
- else \
- (ABFD)->sections = _next; \
- if (_next) \
- _next->prev = _prev; \
- else \
- (ABFD)->section_last = _prev; \
- } \
- while (0)
-#define bfd_section_list_append(ABFD, S) \
- do \
- { \
- asection *_s = S; \
- bfd *_abfd = ABFD; \
- _s->next = NULL; \
- if (_abfd->section_last) \
- { \
- _s->prev = _abfd->section_last; \
- _abfd->section_last->next = _s; \
- } \
- else \
- { \
- _s->prev = NULL; \
- _abfd->sections = _s; \
- } \
- _abfd->section_last = _s; \
- } \
- while (0)
-#define bfd_section_list_prepend(ABFD, S) \
- do \
- { \
- asection *_s = S; \
- bfd *_abfd = ABFD; \
- _s->prev = NULL; \
- if (_abfd->sections) \
- { \
- _s->next = _abfd->sections; \
- _abfd->sections->prev = _s; \
- } \
- else \
- { \
- _s->next = NULL; \
- _abfd->section_last = _s; \
- } \
- _abfd->sections = _s; \
- } \
- while (0)
-#define bfd_section_list_insert_after(ABFD, A, S) \
- do \
- { \
- asection *_a = A; \
- asection *_s = S; \
- asection *_next = _a->next; \
- _s->next = _next; \
- _s->prev = _a; \
- _a->next = _s; \
- if (_next) \
- _next->prev = _s; \
- else \
- (ABFD)->section_last = _s; \
- } \
- while (0)
-#define bfd_section_list_insert_before(ABFD, B, S) \
- do \
- { \
- asection *_b = B; \
- asection *_s = S; \
- asection *_prev = _b->prev; \
- _s->prev = _prev; \
- _s->next = _b; \
- _b->prev = _s; \
- if (_prev) \
- _prev->next = _s; \
- else \
- (ABFD)->sections = _s; \
- } \
- while (0)
-#define bfd_section_removed_from_list(ABFD, S) \
- ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
+static inline bfd_boolean
+bfd_is_ind_section (const asection *sec)
+{
+ return sec == bfd_ind_section_ptr;
+}
+
+static inline bfd_boolean
+bfd_is_const_section (const asection *sec)
+{
+ return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
+}
+
+/* Return TRUE if input section SEC has been discarded. */
+static inline bfd_boolean
+discarded_section (const asection *sec)
+{
+ return (!bfd_is_abs_section (sec)
+ && bfd_is_abs_section (sec->output_section)
+ && sec->sec_info_type != SEC_INFO_TYPE_MERGE
+ && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
+}
#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \
/* name, id, index, next, prev, flags, user_set_vma, */ \
@@ -7398,6 +7354,105 @@ bfd_set_asymbol_name (asymbol *sy, const char *name)
sy->name = name;
}
+static inline bfd_size_type
+bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
+{
+ if (abfd->direction != write_direction && sec->rawsize != 0)
+ return sec->rawsize;
+ return sec->size;
+}
+
+/* Find the address one past the end of SEC. */
+static inline bfd_size_type
+bfd_get_section_limit (const bfd *abfd, const asection *sec)
+{
+ return bfd_get_section_limit_octets (abfd, sec) / bfd_octets_per_byte (abfd);
+}
+
+/* Functions to handle insertion and deletion of a bfd's sections. These
+ only handle the list pointers, ie. do not adjust section_count,
+ target_index etc. */
+static inline void
+bfd_section_list_remove (bfd *abfd, asection *s)
+{
+ asection *next = s->next;
+ asection *prev = s->prev;
+ if (prev)
+ prev->next = next;
+ else
+ abfd->sections = next;
+ if (next)
+ next->prev = prev;
+ else
+ abfd->section_last = prev;
+}
+
+static inline void
+bfd_section_list_append (bfd *abfd, asection *s)
+{
+ s->next = 0;
+ if (abfd->section_last)
+ {
+ s->prev = abfd->section_last;
+ abfd->section_last->next = s;
+ }
+ else
+ {
+ s->prev = 0;
+ abfd->sections = s;
+ }
+ abfd->section_last = s;
+}
+
+static inline void
+bfd_section_list_prepend (bfd *abfd, asection *s)
+{
+ s->prev = 0;
+ if (abfd->sections)
+ {
+ s->next = abfd->sections;
+ abfd->sections->prev = s;
+ }
+ else
+ {
+ s->next = 0;
+ abfd->section_last = s;
+ }
+ abfd->sections = s;
+}
+
+static inline void
+bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
+{
+ asection *next = a->next;
+ s->next = next;
+ s->prev = a;
+ a->next = s;
+ if (next)
+ next->prev = s;
+ else
+ abfd->section_last = s;
+}
+
+static inline void
+bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
+{
+ asection *prev = b->prev;
+ s->prev = prev;
+ s->next = b;
+ b->prev = s;
+ if (prev)
+ prev->next = s;
+ else
+ abfd->sections = s;
+}
+
+static inline bfd_boolean
+bfd_section_removed_from_list (const bfd *abfd, const asection *s)
+{
+ return s->next ? s->next->prev != s : abfd->section_last != s;
+}
+
typedef enum bfd_error
{
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 9270e118d3..af2c192260 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -477,6 +477,105 @@ CODE_FRAGMENT
. sy->name = name;
.}
.
+.static inline bfd_size_type
+.bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
+.{
+. if (abfd->direction != write_direction && sec->rawsize != 0)
+. return sec->rawsize;
+. return sec->size;
+.}
+.
+.{* Find the address one past the end of SEC. *}
+.static inline bfd_size_type
+.bfd_get_section_limit (const bfd *abfd, const asection *sec)
+.{
+. return bfd_get_section_limit_octets (abfd, sec) / bfd_octets_per_byte (abfd);
+.}
+.
+.{* Functions to handle insertion and deletion of a bfd's sections. These
+. only handle the list pointers, ie. do not adjust section_count,
+. target_index etc. *}
+.static inline void
+.bfd_section_list_remove (bfd *abfd, asection *s)
+.{
+. asection *next = s->next;
+. asection *prev = s->prev;
+. if (prev)
+. prev->next = next;
+. else
+. abfd->sections = next;
+. if (next)
+. next->prev = prev;
+. else
+. abfd->section_last = prev;
+.}
+.
+.static inline void
+.bfd_section_list_append (bfd *abfd, asection *s)
+.{
+. s->next = 0;
+. if (abfd->section_last)
+. {
+. s->prev = abfd->section_last;
+. abfd->section_last->next = s;
+. }
+. else
+. {
+. s->prev = 0;
+. abfd->sections = s;
+. }
+. abfd->section_last = s;
+.}
+.
+.static inline void
+.bfd_section_list_prepend (bfd *abfd, asection *s)
+.{
+. s->prev = 0;
+. if (abfd->sections)
+. {
+. s->next = abfd->sections;
+. abfd->sections->prev = s;
+. }
+. else
+. {
+. s->next = 0;
+. abfd->section_last = s;
+. }
+. abfd->sections = s;
+.}
+.
+.static inline void
+.bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
+.{
+. asection *next = a->next;
+. s->next = next;
+. s->prev = a;
+. a->next = s;
+. if (next)
+. next->prev = s;
+. else
+. abfd->section_last = s;
+.}
+.
+.static inline void
+.bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
+.{
+. asection *prev = b->prev;
+. s->prev = prev;
+. s->next = b;
+. b->prev = s;
+. if (prev)
+. prev->next = s;
+. else
+. abfd->sections = s;
+.}
+.
+.static inline bfd_boolean
+.bfd_section_removed_from_list (const bfd *abfd, const asection *s)
+.{
+. return s->next ? s->next->prev != s : abfd->section_last != s;
+.}
+.
*/
#include "sysdep.h"
diff --git a/bfd/section.c b/bfd/section.c
index 3a9cb26023..34e08aef57 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -549,6 +549,53 @@ CODE_FRAGMENT
. int size;
.};
.
+.static inline const char *
+.bfd_section_name (const asection *sec)
+.{
+. return sec->name;
+.}
+.
+.static inline bfd_size_type
+.bfd_section_size (const asection *sec)
+.{
+. return sec->size;
+.}
+.
+.static inline bfd_vma
+.bfd_section_vma (const asection *sec)
+.{
+. return sec->vma;
+.}
+.
+.static inline bfd_vma
+.bfd_section_lma (const asection *sec)
+.{
+. return sec->lma;
+.}
+.
+.static inline unsigned int
+.bfd_section_alignment (const asection *sec)
+.{
+. return sec->alignment_power;
+.}
+.
+.static inline flagword
+.bfd_section_flags (const asection *sec)
+.{
+. return sec->flags;
+.}
+.
+.static inline void *
+.bfd_section_userdata (const asection *sec)
+.{
+. return sec->userdata;
+.}
+.static inline bfd_boolean
+.bfd_is_com_section (const asection *sec)
+.{
+. return (sec->flags & SEC_IS_COMMON) != 0;
+.}
+.
.{* Note: the following are provided as inline functions rather than macros
. because not all callers use the return value. A macro implementation
. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
@@ -601,105 +648,39 @@ CODE_FRAGMENT
.{* Pointer to the indirect section. *}
.#define bfd_ind_section_ptr (&_bfd_std_section[3])
.
-.#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-.#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-.#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
-.
-.#define bfd_is_const_section(SEC) \
-. ( ((SEC) == bfd_abs_section_ptr) \
-. || ((SEC) == bfd_und_section_ptr) \
-. || ((SEC) == bfd_com_section_ptr) \
-. || ((SEC) == bfd_ind_section_ptr))
-.
-.{* Macros to handle insertion and deletion of a bfd's sections. These
-. only handle the list pointers, ie. do not adjust section_count,
-. target_index etc. *}
-.#define bfd_section_list_remove(ABFD, S) \
-. do \
-. { \
-. asection *_s = S; \
-. asection *_next = _s->next; \
-. asection *_prev = _s->prev; \
-. if (_prev) \
-. _prev->next = _next; \
-. else \
-. (ABFD)->sections = _next; \
-. if (_next) \
-. _next->prev = _prev; \
-. else \
-. (ABFD)->section_last = _prev; \
-. } \
-. while (0)
-.#define bfd_section_list_append(ABFD, S) \
-. do \
-. { \
-. asection *_s = S; \
-. bfd *_abfd = ABFD; \
-. _s->next = NULL; \
-. if (_abfd->section_last) \
-. { \
-. _s->prev = _abfd->section_last; \
-. _abfd->section_last->next = _s; \
-. } \
-. else \
-. { \
-. _s->prev = NULL; \
-. _abfd->sections = _s; \
-. } \
-. _abfd->section_last = _s; \
-. } \
-. while (0)
-.#define bfd_section_list_prepend(ABFD, S) \
-. do \
-. { \
-. asection *_s = S; \
-. bfd *_abfd = ABFD; \
-. _s->prev = NULL; \
-. if (_abfd->sections) \
-. { \
-. _s->next = _abfd->sections; \
-. _abfd->sections->prev = _s; \
-. } \
-. else \
-. { \
-. _s->next = NULL; \
-. _abfd->section_last = _s; \
-. } \
-. _abfd->sections = _s; \
-. } \
-. while (0)
-.#define bfd_section_list_insert_after(ABFD, A, S) \
-. do \
-. { \
-. asection *_a = A; \
-. asection *_s = S; \
-. asection *_next = _a->next; \
-. _s->next = _next; \
-. _s->prev = _a; \
-. _a->next = _s; \
-. if (_next) \
-. _next->prev = _s; \
-. else \
-. (ABFD)->section_last = _s; \
-. } \
-. while (0)
-.#define bfd_section_list_insert_before(ABFD, B, S) \
-. do \
-. { \
-. asection *_b = B; \
-. asection *_s = S; \
-. asection *_prev = _b->prev; \
-. _s->prev = _prev; \
-. _s->next = _b; \
-. _b->prev = _s; \
-. if (_prev) \
-. _prev->next = _s; \
-. else \
-. (ABFD)->sections = _s; \
-. } \
-. while (0)
-.#define bfd_section_removed_from_list(ABFD, S) \
-. ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
+.static inline bfd_boolean
+.bfd_is_und_section (const asection *sec)
+.{
+. return sec == bfd_und_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_abs_section (const asection *sec)
+.{
+. return sec == bfd_abs_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_ind_section (const asection *sec)
+.{
+. return sec == bfd_ind_section_ptr;
+.}
+.
+.static inline bfd_boolean
+.bfd_is_const_section (const asection *sec)
+.{
+. return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
+.}
+.
+.{* Return TRUE if input section SEC has been discarded. *}
+.static inline bfd_boolean
+.discarded_section (const asection *sec)
+.{
+. return (!bfd_is_abs_section (sec)
+. && bfd_is_abs_section (sec->output_section)
+. && sec->sec_info_type != SEC_INFO_TYPE_MERGE
+. && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
+.}
.
.#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \
. {* name, id, index, next, prev, flags, user_set_vma, *} \
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bcd2f9af35..482ab08c29 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * config/tc-tic6x.c (tc_gen_reloc): Correct common symbol check.
+
2018-09-20 Jan Beulich <jbeulich@suse.com>
PR gas/25012
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
index 0433d9e409..cd12c82dce 100644
--- a/gas/config/tc-tic6x.c
+++ b/gas/config/tc-tic6x.c
@@ -4526,7 +4526,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
if (reloc->howto->pcrel_offset && reloc->howto->partial_inplace)
{
reloc->addend += reloc->address;
- if (!bfd_is_com_section (symbol))
+ if (!bfd_is_com_section (bfd_asymbol_section (symbol)))
reloc->addend -= symbol->value;
}
if (r_type == BFD_RELOC_C6000_PCR_H16
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 705a2b2de8..3f62dad9cc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20 Alan Modra <amodra@gmail.com>
+
+ * emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
+ Use bfd_section_userdata.
+ (xtensa_set_section_deps): Use bfd_set_section_userdata.
+ * ldlang.c (lang_output_section_get): Use bfd_section_userdata.
+ (sort_def_symbol): Likewise, and bfd_set_section_userdata.
+ (init_os): Use bfd_set_section_userdata.
+ (print_all_symbols): Use bfd_section_userdata.
+ * ldlang.h (get_userdata): Delete.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* ldelf.c (ldelf_after_open, ldelf_place_orphan
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index 569df615ce..0b11fdcd69 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -596,8 +596,12 @@ xtensa_get_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
/* We have a separate function for this so that
we could in the future keep a completely independent
structure that maps a section to its dependence edges.
- For now, we place these in the sec->userdata field. */
- reloc_deps_section *sec_deps = sec->userdata;
+ For now, we place these in the sec->userdata field.
+ This doesn't clash with ldlang.c use of userdata for output
+ sections, and during map output for input sections, since the
+ xtensa use is only for input sections and only extant in
+ before_allocation. */
+ reloc_deps_section *sec_deps = bfd_section_userdata (sec);
return sec_deps;
}
@@ -606,7 +610,7 @@ xtensa_set_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
asection *sec,
reloc_deps_section *deps_section)
{
- sec->userdata = deps_section;
+ bfd_set_section_userdata (sec, deps_section);
}
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 0ffcf34473..1a49f69d90 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1414,7 +1414,7 @@ lang_memory_default (asection *section)
lang_output_section_statement_type *
lang_output_section_get (const asection *output_section)
{
- return get_userdata (output_section);
+ return bfd_section_userdata (output_section);
}
/* Find or create an output_section_statement with the given NAME.
@@ -2316,12 +2316,11 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
input_section_userdata_type *ud;
struct map_symbol_def *def;
- ud = ((input_section_userdata_type *)
- get_userdata (hash_entry->u.def.section));
+ ud = bfd_section_userdata (hash_entry->u.def.section);
if (!ud)
{
ud = stat_alloc (sizeof (*ud));
- get_userdata (hash_entry->u.def.section) = ud;
+ bfd_set_section_userdata (hash_entry->u.def.section, ud);
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
ud->map_symbol_def_count = 0;
}
@@ -2361,7 +2360,7 @@ init_os (lang_output_section_statement_type *s, flagword flags)
/* Set the userdata of the output section to the output section
statement to avoid lookup. */
- get_userdata (s->bfd_section) = s;
+ bfd_set_section_userdata (s->bfd_section, s);
/* If there is a base address, make sure that any sections it might
mention are initialized. */
@@ -4390,8 +4389,7 @@ hash_entry_addr_cmp (const void *a, const void *b)
static void
print_all_symbols (asection *sec)
{
- input_section_userdata_type *ud
- = (input_section_userdata_type *) get_userdata (sec);
+ input_section_userdata_type *ud = bfd_section_userdata (sec);
struct map_symbol_def *def;
struct bfd_link_hash_entry **entries;
unsigned int i;
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 9fb10f80a7..5ab62e3279 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -329,8 +329,6 @@ typedef struct input_section_userdata_struct
unsigned long map_symbol_def_count;
} input_section_userdata_type;
-#define get_userdata(x) ((x)->userdata)
-
static inline bfd_boolean
bfd_input_just_syms (const bfd *abfd)
{
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Fix crash in Ada "catch exception"
@ 2019-09-20 19:53 gdb-buildbot
2019-09-20 20:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 19:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d42076962798cd2329090cea213e797f4c69c03c ***
commit d42076962798cd2329090cea213e797f4c69c03c
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Fri Sep 20 11:34:21 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Fri Sep 20 11:34:21 2019 -0600
Fix crash in Ada "catch exception"
PR ada/24919 concerns a crash that Tom de Vries noticed when running
the "catch_ex" Ada test case. He sent a test executable and tracked
this down to commit f21c2bd7b7 ("Fix Fortran regression with variables
in nested functions").
Looking at that patch, you can see the obvious error:
- return 0;
+ return true;
Oops! This patch fixes the bug.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-09-20 Tom Tromey <tromey@adacore.com>
PR ada/24919:
* block.c (contained_in): Fix final return value.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5314b2746b..b1c4db854b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20 Tom Tromey <tromey@adacore.com>
+
+ PR ada/24919:
+ * block.c (contained_in): Fix final return value.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
diff --git a/gdb/block.c b/gdb/block.c
index ca4dc22cf3..5ba44d47ba 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -86,7 +86,7 @@ contained_in (const struct block *a, const struct block *b,
}
while (a != NULL);
- return true;
+ return false;
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 19:53 [binutils-gdb] Fix crash in Ada "catch exception" gdb-buildbot
@ 2019-09-20 20:04 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 20:04 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/103
Author:
Tom Tromey <tromey@adacore.com>
Commit tested:
d42076962798cd2329090cea213e797f4c69c03c
Subject of commit:
Fix crash in Ada "catch exception"
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d42076962798cd2329090cea213e797f4c69c03c/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d42076962798cd2329090cea213e797f4c69c03c//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d42076962798cd2329090cea213e797f4c69c03c//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove tui_clear_source_windows_detail
@ 2019-09-20 20:49 gdb-buildbot
2019-09-20 20:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 20:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 78d5933a43f8a4dd5fd54f5344a7dd9c2d4b8769 ***
commit 78d5933a43f8a4dd5fd54f5344a7dd9c2d4b8769
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Fri Jul 19 12:59:35 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:04 2019 -0600
Remove tui_clear_source_windows_detail
The calls to tui_clear_source_windows_detail in tui_add_win_to_layout
aren't needed, because (after the resize unification) resizing will
update the window contents. Removing these calls lets us remove
several other things as well.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-data.h (tui_clear_source_windows_detail): Don't
declare.
* tui/tui-layout.c (tui_add_win_to_layout): Don't call
tui_clear_source_windows_detail.
* tui/tui-winsource.h (struct tui_source_window_base)
<clear_detail>: Don't declare.
* tui/tui-winsource.c (tui_source_window_base::clear_detail):
Remove.
* tui/tui-data.c (tui_clear_source_windows_detail): Remove.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b1c4db854b..bedc073d9c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-data.h (tui_clear_source_windows_detail): Don't
+ declare.
+ * tui/tui-layout.c (tui_add_win_to_layout): Don't call
+ tui_clear_source_windows_detail.
+ * tui/tui-winsource.h (struct tui_source_window_base)
+ <clear_detail>: Don't declare.
+ * tui/tui-winsource.c (tui_source_window_base::clear_detail):
+ Remove.
+ * tui/tui-data.c (tui_clear_source_windows_detail): Remove.
+
2019-09-20 Tom Tromey <tromey@adacore.com>
PR ada/24919:
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index c11aa43340..833ea49a95 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -87,15 +87,6 @@ tui_set_win_with_focus (struct tui_win_info *win_info)
}
-/* Clear the pertinent detail in the source windows. */
-void
-tui_clear_source_windows_detail ()
-{
- for (tui_source_window_base *win : tui_source_windows ())
- win->clear_detail ();
-}
-
-
/* Accessor for the term_height. */
int
tui_term_height (void)
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 23f769f6ba..be819503cf 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -295,7 +295,6 @@ extern void tui_set_term_height_to (int);
extern int tui_term_width (void);
extern void tui_set_term_width_to (int);
extern struct tui_locator_window *tui_locator_win_info_ptr (void);
-extern void tui_clear_source_windows_detail (void);
extern struct tui_win_info *tui_win_with_focus (void);
extern void tui_set_win_with_focus (struct tui_win_info *);
extern int tui_win_resized (void);
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index df7056ae97..d331a2f25c 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -207,7 +207,6 @@ tui_add_win_to_layout (enum tui_win_type type)
&& cur_layout != SRC_DISASSEM_COMMAND
&& cur_layout != SRC_DATA_COMMAND)
{
- tui_clear_source_windows_detail ();
if (cur_layout == DISASSEM_DATA_COMMAND)
show_layout (SRC_DATA_COMMAND);
else
@@ -219,7 +218,6 @@ tui_add_win_to_layout (enum tui_win_type type)
&& cur_layout != SRC_DISASSEM_COMMAND
&& cur_layout != DISASSEM_DATA_COMMAND)
{
- tui_clear_source_windows_detail ();
if (cur_layout == SRC_DATA_COMMAND)
show_layout (DISASSEM_DATA_COMMAND);
else
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 7a4821dc52..4520a1ac3f 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -253,17 +253,6 @@ tui_source_window_base::show_source_content ()
refresh_window ();
}
-/* See tui-data.h. */
-
-void
-tui_source_window_base::clear_detail ()
-{
- gdbarch = NULL;
- start_line_or_addr.loa = LOA_ADDRESS;
- start_line_or_addr.u.addr = 0;
- horizontal_offset = 0;
-}
-
tui_source_window_base::tui_source_window_base (enum tui_win_type type)
: tui_win_info (type)
{
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 4c98ca3ceb..445cc7c735 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -101,8 +101,6 @@ protected:
public:
- void clear_detail ();
-
/* Refill the source window's source cache and update it. If this
is a disassembly window, then just update it. */
void refill ();
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move "fullname" to tui_source_window
@ 2019-09-20 21:15 gdb-buildbot
2019-09-20 21:16 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2d81b349982daae463bd29a87e962dde6d099392 ***
commit 2d81b349982daae463bd29a87e962dde6d099392
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 15:37:18 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600
Move "fullname" to tui_source_window
The "fullname" field in tui_source_window_base is only used by one
subclass. This patch moves the field to that subclass, and changes it
to be a unique_xmalloc_ptr.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
<~tui_source_window_base>: Don't declare.
<fullname>: Remove.
* tui/tui-winsource.c (~tui_source_window_base): Remove.
* tui/tui-source.h (struct tui_source_window) <fullname>: New
member.
* tui/tui-source.c (tui_source_window::set_contents): Update.
(tui_source_window::location_matches_p)
(tui_source_window::maybe_update): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3d322877df..9f7accd2f6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-winsource.h (struct tui_source_window_base)
+ <~tui_source_window_base>: Don't declare.
+ <fullname>: Remove.
+ * tui/tui-winsource.c (~tui_source_window_base): Remove.
+ * tui/tui-source.h (struct tui_source_window) <fullname>: New
+ member.
+ * tui/tui-source.c (tui_source_window::set_contents): Update.
+ (tui_source_window::location_matches_p)
+ (tui_source_window::maybe_update): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (~tui_source_element): Remove.
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index c379173018..f70e053bdb 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -155,8 +155,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
title = s_filename;
- xfree (fullname);
- fullname = xstrdup (symtab_to_fullname (s));
+ fullname = make_unique_xstrdup (symtab_to_fullname (s));
cur_line = 0;
gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s));
@@ -276,7 +275,7 @@ tui_source_window::location_matches_p (struct bp_location *loc, int line_no)
return (content[line_no].line_or_addr.loa == LOA_LINE
&& content[line_no].line_or_addr.u.line_no == loc->line_number
&& loc->symtab != NULL
- && filename_cmp (fullname,
+ && filename_cmp (fullname.get (),
symtab_to_fullname (loc->symtab)) == 0);
}
@@ -308,7 +307,7 @@ tui_source_window::maybe_update (struct frame_info *fi, symtab_and_line sal,
start_line = 1;
bool source_already_displayed = (sal.symtab != 0
- && showing_source_p (fullname));
+ && showing_source_p (fullname.get ()));
struct tui_line_or_address l;
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
index a7002123c9..30728e4214 100644
--- a/gdb/tui/tui-source.h
+++ b/gdb/tui/tui-source.h
@@ -76,6 +76,9 @@ private:
in the current source window. */
bool line_is_displayed (int line) const;
+ /* It is the resolved form as returned by symtab_to_fullname. */
+ gdb::unique_xmalloc_ptr<char> fullname;
+
/* A token used to register and unregister an observer. */
gdb::observers::token m_observable;
};
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index d5281193c0..8b507ed912 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -261,11 +261,6 @@ tui_source_window_base::tui_source_window_base (enum tui_win_type type)
}
-tui_source_window_base::~tui_source_window_base ()
-{
- xfree (fullname);
-}
-
/* See tui-data.h. */
void
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 64f0739e53..eca0bde4bb 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -78,7 +78,7 @@ struct tui_source_window_base : public tui_win_info
{
protected:
explicit tui_source_window_base (enum tui_win_type type);
- ~tui_source_window_base () override;
+
DISABLE_COPY_AND_ASSIGN (tui_source_window_base);
void do_scroll_horizontal (int num_to_scroll) override;
@@ -137,9 +137,6 @@ public:
int horizontal_offset = 0;
struct tui_line_or_address start_line_or_addr;
- /* It is the resolved form as returned by symtab_to_fullname. */
- char *fullname = nullptr;
-
/* Architecture associated with code at this location. */
struct gdbarch *gdbarch = nullptr;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 21:15 [binutils-gdb] Move "fullname" to tui_source_window gdb-buildbot
@ 2019-09-20 21:16 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:16 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/106
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
2d81b349982daae463bd29a87e962dde6d099392
Subject of commit:
Move "fullname" to tui_source_window
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/2d/2d81b349982daae463bd29a87e962dde6d099392/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.gdb/unittest.exp: maintenance check xml-descriptions ${srcdir}/../features
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: get integer valueof "mypid"
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/2d/2d81b349982daae463bd29a87e962dde6d099392//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/2d/2d81b349982daae463bd29a87e962dde6d099392//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change tui_make_status_line to return std::string
@ 2019-09-20 21:27 gdb-buildbot
2019-09-20 21:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f85321544357a44a824d9d31fd57ed4d3aae1a4a ***
commit f85321544357a44a824d9d31fd57ed4d3aae1a4a
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:36:59 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600
Change tui_make_status_line to return std::string
This changes tui_make_status_line to return std::string. This cleans
it up a bit, and removes some explicit memory management.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_make_status_line): Return std::string.
(tui_locator_window::rerender): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9f7accd2f6..862748efc1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.c (tui_make_status_line): Return std::string.
+ (tui_locator_window::rerender): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 36208d0cac..a2e4a161bb 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -66,14 +66,12 @@ tui_locator_win_info_ptr (void)
/* Create the status line to display as much information as we can on
this single line: target name, process number, current function,
current line, current PC, SingleKey mode. */
-static char *
+static std::string
tui_make_status_line (struct tui_locator_window *loc)
{
- char *string;
char line_buf[50], *pname;
- char *buf;
int status_size;
- int i, proc_width;
+ int proc_width;
const char *pid_name;
int target_width;
int pid_width;
@@ -97,8 +95,6 @@ tui_make_status_line (struct tui_locator_window *loc)
pid_width = MAX_PID_WIDTH;
status_size = tui_term_width ();
- string = (char *) xmalloc (status_size + 1);
- buf = (char*) alloca (status_size + 1);
/* Translate line number and obtain its size. */
if (loc->line_no > 0)
@@ -158,61 +154,47 @@ tui_make_status_line (struct tui_locator_window *loc)
pname = loc->proc_name;
/* Now create the locator line from the string version of the
- elements. We could use sprintf() here but that wouldn't ensure
- that we don't overrun the size of the allocated buffer.
- strcat_to_buf() will. */
- *string = (char) 0;
+ elements. */
+ string_file string;
if (target_width > 0)
- {
- sprintf (buf, "%*.*s ",
- -target_width, target_width, target_shortname);
- strcat_to_buf (string, status_size, buf);
- }
+ string.printf ("%*.*s ", -target_width, target_width, target_shortname);
if (pid_width > 0)
- {
- sprintf (buf, "%*.*s ",
- -pid_width, pid_width, pid_name);
- strcat_to_buf (string, status_size, buf);
- }
-
+ string.printf ("%*.*s ", -pid_width, pid_width, pid_name);
+
/* Show whether we are in SingleKey mode. */
if (tui_current_key_mode == TUI_SINGLE_KEY_MODE)
{
- strcat_to_buf (string, status_size, SINGLE_KEY);
- strcat_to_buf (string, status_size, " ");
+ string.puts (SINGLE_KEY);
+ string.puts (" ");
}
/* Procedure/class name. */
if (proc_width > 0)
{
if (strlen (pname) > proc_width)
- sprintf (buf, "%s%*.*s* ", PROC_PREFIX,
- 1 - proc_width, proc_width - 1, pname);
+ string.printf ("%s%*.*s* ", PROC_PREFIX,
+ 1 - proc_width, proc_width - 1, pname);
else
- sprintf (buf, "%s%*.*s ", PROC_PREFIX,
- -proc_width, proc_width, pname);
- strcat_to_buf (string, status_size, buf);
+ string.printf ("%s%*.*s ", PROC_PREFIX,
+ -proc_width, proc_width, pname);
}
if (line_width > 0)
- {
- sprintf (buf, "%s%*.*s ", LINE_PREFIX,
- -line_width, line_width, line_buf);
- strcat_to_buf (string, status_size, buf);
- }
+ string.printf ("%s%*.*s ", LINE_PREFIX,
+ -line_width, line_width, line_buf);
if (pc_width > 0)
{
- strcat_to_buf (string, status_size, PC_PREFIX);
- strcat_to_buf (string, status_size, pc_buf);
+ string.puts (PC_PREFIX);
+ string.puts (pc_buf);
}
-
-
- for (i = strlen (string); i < status_size; i++)
- string[i] = ' ';
- string[status_size] = (char) 0;
- return string;
+ if (string.size () < status_size)
+ string.puts (n_spaces (status_size - string.size ()));
+ else if (string.size () > status_size)
+ string.string ().erase (status_size, string.size ());
+
+ return std::move (string.string ());
}
/* Get a printable name for the function at the address. The symbol
@@ -252,7 +234,7 @@ tui_locator_window::rerender ()
{
if (handle != NULL)
{
- char *string = tui_make_status_line (this);
+ std::string string = tui_make_status_line (this);
wmove (handle, 0, 0);
/* We ignore the return value from wstandout and wstandend, casting
them to void in order to avoid a compiler warning. The warning
@@ -260,12 +242,11 @@ tui_locator_window::rerender ()
changing these macro to expand to code that causes the compiler
to generate an unused-value warning. */
(void) wstandout (handle);
- waddstr (handle, string);
+ waddstr (handle, string.c_str ());
wclrtoeol (handle);
(void) wstandend (handle);
refresh_window ();
wmove (handle, 0, 0);
- xfree (string);
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change tui_make_status_line to be a method
@ 2019-09-20 21:42 gdb-buildbot
2019-09-20 21:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 71a25ed2e77fd72e01d38aa84f5a0fbe5f081474 ***
commit 71a25ed2e77fd72e01d38aa84f5a0fbe5f081474
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:43:20 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:05 2019 -0600
Change tui_make_status_line to be a method
This changes tui_make_status_line to be a method on
tui_locator_window. This is a minor cleanup.
This also changes the new method to use the locator's width, rather
than the terminal width. This is important if we ever want to allow
windows to be made more narrow.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
Declare.
* tui/tui-stack.c (tui_locator_window::make_status_line): Rename
from tui_make_status_line.
(tui_locator_window::rerender): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 862748efc1..b6a15347b5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
+ Declare.
+ * tui/tui-stack.c (tui_locator_window::make_status_line): Rename
+ from tui_make_status_line.
+ (tui_locator_window::rerender): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_make_status_line): Return std::string.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index a2e4a161bb..163a5ad725 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -63,13 +63,10 @@ tui_locator_win_info_ptr (void)
return &_locator;
}
-/* Create the status line to display as much information as we can on
- this single line: target name, process number, current function,
- current line, current PC, SingleKey mode. */
-static std::string
-tui_make_status_line (struct tui_locator_window *loc)
+std::string
+tui_locator_window::make_status_line () const
{
- char line_buf[50], *pname;
+ char line_buf[50];
int status_size;
int proc_width;
const char *pid_name;
@@ -94,11 +91,11 @@ tui_make_status_line (struct tui_locator_window *loc)
if (pid_width > MAX_PID_WIDTH)
pid_width = MAX_PID_WIDTH;
- status_size = tui_term_width ();
+ status_size = width;
/* Translate line number and obtain its size. */
- if (loc->line_no > 0)
- xsnprintf (line_buf, sizeof (line_buf), "%d", loc->line_no);
+ if (line_no > 0)
+ xsnprintf (line_buf, sizeof (line_buf), "%d", line_no);
else
strcpy (line_buf, "??");
line_width = strlen (line_buf);
@@ -106,8 +103,8 @@ tui_make_status_line (struct tui_locator_window *loc)
line_width = MIN_LINE_WIDTH;
/* Translate PC address. */
- std::string pc_out (loc->gdbarch
- ? paddress (loc->gdbarch, loc->addr)
+ std::string pc_out (gdbarch
+ ? paddress (gdbarch, addr)
: "??");
const char *pc_buf = pc_out.c_str ();
int pc_width = pc_out.size ();
@@ -150,9 +147,6 @@ tui_make_status_line (struct tui_locator_window *loc)
}
}
- /* Now convert elements to string form. */
- pname = loc->proc_name;
-
/* Now create the locator line from the string version of the
elements. */
string_file string;
@@ -172,12 +166,12 @@ tui_make_status_line (struct tui_locator_window *loc)
/* Procedure/class name. */
if (proc_width > 0)
{
- if (strlen (pname) > proc_width)
+ if (strlen (proc_name) > proc_width)
string.printf ("%s%*.*s* ", PROC_PREFIX,
- 1 - proc_width, proc_width - 1, pname);
+ 1 - proc_width, proc_width - 1, proc_name);
else
string.printf ("%s%*.*s ", PROC_PREFIX,
- -proc_width, proc_width, pname);
+ -proc_width, proc_width, proc_name);
}
if (line_width > 0)
@@ -234,7 +228,7 @@ tui_locator_window::rerender ()
{
if (handle != NULL)
{
- std::string string = tui_make_status_line (this);
+ std::string string = make_status_line ();
wmove (handle, 0, 0);
/* We ignore the return value from wstandout and wstandend, casting
them to void in order to avoid a compiler warning. The warning
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index 86239b0d28..b6ffa986a6 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -63,6 +63,14 @@ struct tui_locator_window : public tui_gen_win_info
CORE_ADDR addr = 0;
/* Architecture associated with code at this location. */
struct gdbarch *gdbarch = nullptr;
+
+private:
+
+ /* Create the status line to display as much information as we can
+ on this single line: target name, process number, current
+ function, current line, current PC, SingleKey mode. */
+
+ std::string make_status_line () const;
};
extern void tui_update_locator_fullname (const char *);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove some explicit re-rendering from the TUI
@ 2019-09-20 21:56 gdb-buildbot
2019-09-20 22:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b3b1bde658c97fbccc1e49b79cc45e434591533e ***
commit b3b1bde658c97fbccc1e49b79cc45e434591533e
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:14:37 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:06 2019 -0600
Remove some explicit re-rendering from the TUI
A couple of spots in tui-layout.c still call the show_source_content
method. However, now that re-rendering is done by the resize method,
these calls are no longer needed.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-layout.c (show_source_disasm_command)
(show_source_or_disasm_and_command): Don't call
show_source_content.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6a15347b5..7e4fa87c90 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-layout.c (show_source_disasm_command)
+ (show_source_or_disasm_and_command): Don't call
+ show_source_content.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index d331a2f25c..33d3dd6cb8 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -505,7 +505,6 @@ show_source_disasm_command (void)
struct tui_locator_window *locator = tui_locator_win_info_ptr ();
gdb_assert (locator != nullptr);
- TUI_SRC_WIN->show_source_content ();
if (TUI_DISASM_WIN == NULL)
tui_win_list[DISASSEM_WIN] = new tui_disasm_window ();
TUI_DISASM_WIN->resize (asm_height,
@@ -516,7 +515,6 @@ show_source_disasm_command (void)
tui_term_width (),
0,
(src_height + asm_height) - 1);
- TUI_DISASM_WIN->show_source_content ();
if (TUI_CMD_WIN == NULL)
tui_win_list[CMD_WIN] = new tui_cmd_window ();
@@ -646,8 +644,6 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
0,
0);
- win_info->show_source_content ();
-
if (TUI_CMD_WIN == NULL)
tui_win_list[CMD_WIN] = new tui_cmd_window ();
TUI_CMD_WIN->resize (cmd_height,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 21:56 [binutils-gdb] Remove some explicit re-rendering from the TUI gdb-buildbot
@ 2019-09-20 22:00 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:00 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/109
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
b3b1bde658c97fbccc1e49b79cc45e434591533e
Subject of commit:
Remove some explicit re-rendering from the TUI
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b3/b3b1bde658c97fbccc1e49b79cc45e434591533e/
*** Diff to previous build ***
==============================================
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
PASS -> FAIL: gdb.threads/gcore-stale-thread.exp: save a corefile
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b3/b3b1bde658c97fbccc1e49b79cc45e434591533e//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b3/b3b1bde658c97fbccc1e49b79cc45e434591533e//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify tui_source_window_base::show_source_content
@ 2019-09-20 22:05 gdb-buildbot
2019-09-20 22:10 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2ad52f6fb3daecd928605384fcaa45ad43178b4e ***
commit 2ad52f6fb3daecd928605384fcaa45ad43178b4e
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:16:56 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:06 2019 -0600
Simplify tui_source_window_base::show_source_content
tui_source_window_base::show_source_content is not used outside the
class any more, so this makes it private. Examining the callers shows
that it can't be called without source contents, so it can be
simplified as well.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
<show_source_content>: Now private.
* tui/tui-winsource.c
(tui_source_window_base::show_source_content): Don't handle empty
content case.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7e4fa87c90..b634e52622 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-winsource.h (struct tui_source_window_base)
+ <show_source_content>: Now private.
+ * tui/tui-winsource.c
+ (tui_source_window_base::show_source_content): Don't handle empty
+ content case.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-layout.c (show_source_disasm_command)
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 8b507ed912..683856de81 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -238,15 +238,10 @@ tui_show_source_line (struct tui_source_window_base *win_info, int lineno)
void
tui_source_window_base::show_source_content ()
{
- if (!content.empty ())
- {
- int lineno;
+ gdb_assert (!content.empty ());
- for (lineno = 1; lineno <= content.size (); lineno++)
- tui_show_source_line (this, lineno);
- }
- else
- erase_source_content ();
+ for (int lineno = 1; lineno <= content.size (); lineno++)
+ tui_show_source_line (this, lineno);
check_and_display_highlight_if_needed ();
refresh_window ();
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index eca0bde4bb..a66c63597e 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -76,6 +76,9 @@ struct tui_source_element
struct tui_source_window_base : public tui_win_info
{
+private:
+ void show_source_content ();
+
protected:
explicit tui_source_window_base (enum tui_win_type type);
@@ -106,8 +109,6 @@ public:
virtual bool location_matches_p (struct bp_location *loc, int line_no) = 0;
- void show_source_content ();
-
void update_exec_info ();
/* Update the window to display the given location. Does nothing if
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Simplify TUI disassembly
@ 2019-09-20 22:25 gdb-buildbot
2019-09-20 22:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6b915f7d0caf868c037c387aa4feef0c7085cb48 ***
commit 6b915f7d0caf868c037c387aa4feef0c7085cb48
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 17:37:48 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:07 2019 -0600
Simplify TUI disassembly
This simplifies TUI disassembly somewhat, by removing manual memory
management.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
std::string.
(tui_disassemble): Add "pos" parameter.
(tui_disasm_window::set_contents): Simplify.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b634e52622..00d97c6602 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
+ std::string.
+ (tui_disassemble): Add "pos" parameter.
+ (tui_disasm_window::set_contents): Simplify.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 2a331327e7..53ea061afb 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -44,34 +44,32 @@
struct tui_asm_line
{
CORE_ADDR addr;
- char *addr_string;
- char *insn;
+ std::string addr_string;
+ std::string insn;
};
/* Function to set the disassembly window's content.
Disassemble count lines starting at pc.
Return address of the count'th instruction after pc. */
static CORE_ADDR
-tui_disassemble (struct gdbarch *gdbarch, struct tui_asm_line *asm_lines,
- CORE_ADDR pc, int count)
+tui_disassemble (struct gdbarch *gdbarch,
+ std::vector<tui_asm_line> &asm_lines,
+ CORE_ADDR pc, int pos, int count)
{
string_file gdb_dis_out;
/* Now construct each line. */
- for (; count > 0; count--, asm_lines++)
+ for (int i = 0; i < count; ++i)
{
- xfree (asm_lines->addr_string);
- xfree (asm_lines->insn);
-
print_address (gdbarch, pc, &gdb_dis_out);
- asm_lines->addr = pc;
- asm_lines->addr_string = xstrdup (gdb_dis_out.c_str ());
+ asm_lines[pos + i].addr = pc;
+ asm_lines[pos + i].addr_string = std::move (gdb_dis_out.string ());
gdb_dis_out.clear ();
pc = pc + gdb_print_insn (gdbarch, pc, &gdb_dis_out, NULL);
- asm_lines->insn = xstrdup (gdb_dis_out.c_str ());
+ asm_lines[pos + i].insn = std::move (gdb_dis_out.string ());
/* Reset the buffer to empty. */
gdb_dis_out.clear ();
@@ -87,20 +85,17 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
{
CORE_ADDR new_low;
int max_lines;
- int i;
- struct tui_asm_line *asm_lines;
max_lines = (from > 0) ? from : - from;
if (max_lines <= 1)
- return pc;
+ return pc;
- asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
- memset (asm_lines, 0, sizeof (struct tui_asm_line) * max_lines);
+ std::vector<tui_asm_line> asm_lines (max_lines);
new_low = pc;
if (from > 0)
{
- tui_disassemble (gdbarch, asm_lines, pc, max_lines);
+ tui_disassemble (gdbarch, asm_lines, pc, 0, max_lines);
new_low = asm_lines[max_lines - 1].addr;
}
else
@@ -122,7 +117,7 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
else
new_low += 1 * max_lines;
- tui_disassemble (gdbarch, asm_lines, new_low, max_lines);
+ tui_disassemble (gdbarch, asm_lines, new_low, 0, max_lines);
last_addr = asm_lines[pos].addr;
} while (last_addr > pc && msymbol.minsym);
@@ -139,8 +134,8 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
if (pos >= max_lines)
pos = 0;
- next_addr = tui_disassemble (gdbarch, &asm_lines[pos],
- last_addr, 1);
+ next_addr = tui_disassemble (gdbarch, asm_lines,
+ last_addr, pos, 1);
/* If there are some problems while disassembling exit. */
if (next_addr <= last_addr)
@@ -152,11 +147,6 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
pos = 0;
new_low = asm_lines[pos].addr;
}
- for (i = 0; i < max_lines; i++)
- {
- xfree (asm_lines[i].addr_string);
- xfree (asm_lines[i].insn);
- }
return new_low;
}
@@ -172,10 +162,8 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
CORE_ADDR cur_pc;
struct tui_locator_window *locator = tui_locator_win_info_ptr ();
int tab_len = tui_tab_width;
- struct tui_asm_line *asm_lines;
int insn_pos;
int addr_size, insn_size;
- char *line;
gdb_assert (line_or_addr.loa == LOA_ADDRESS);
CORE_ADDR pc = line_or_addr.u.addr;
@@ -192,22 +180,21 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
line_width = width - TUI_EXECINFO_SIZE - 2;
/* Get temporary table that will hold all strings (addr & insn). */
- asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
- memset (asm_lines, 0, sizeof (struct tui_asm_line) * max_lines);
+ std::vector<tui_asm_line> asm_lines (max_lines);
- tui_disassemble (gdbarch, asm_lines, pc, max_lines);
+ tui_disassemble (gdbarch, asm_lines, pc, 0, max_lines);
/* Determine maximum address- and instruction lengths. */
addr_size = 0;
insn_size = 0;
for (i = 0; i < max_lines; i++)
{
- size_t len = strlen (asm_lines[i].addr_string);
+ size_t len = asm_lines[i].addr_string.size ();
if (len > addr_size)
addr_size = len;
- len = strlen (asm_lines[i].insn);
+ len = asm_lines[i].insn.size ();
if (len > insn_size)
insn_size = len;
}
@@ -215,23 +202,20 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
/* Align instructions to the same column. */
insn_pos = (1 + (addr_size / tab_len)) * tab_len;
- /* Allocate memory to create each line. */
- line = (char*) alloca (insn_pos + insn_size + 1);
-
/* Now construct each line. */
content.resize (max_lines);
for (i = 0; i < max_lines; i++)
{
- int cur_len;
-
tui_source_element *src = &content[i];
- strcpy (line, asm_lines[i].addr_string);
- cur_len = strlen (line);
- memset (line + cur_len, ' ', insn_pos - cur_len);
- strcpy (line + insn_pos, asm_lines[i].insn);
+
+ std::string line
+ = (asm_lines[i].addr_string
+ + n_spaces (insn_pos
+ - asm_lines[i].addr_string.size ())
+ + asm_lines[i].insn);
/* Now copy the line taking the offset into account. */
- if (strlen (line) > offset)
+ if (line.size() > offset)
src->line.reset (xstrndup (&line[offset], line_width));
else
src->line.reset (xstrdup (""));
@@ -239,9 +223,6 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
src->line_or_addr.loa = LOA_ADDRESS;
src->line_or_addr.u.addr = asm_lines[i].addr;
src->is_exec_point = asm_lines[i].addr == cur_pc;
-
- xfree (asm_lines[i].addr_string);
- xfree (asm_lines[i].insn);
}
return TUI_SUCCESS;
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use "bool" in tui_data_window::show_register_group
@ 2019-09-20 22:33 gdb-buildbot
2019-09-20 22:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b5457826744f08208a4c29addbbc26c7c877c485 ***
commit b5457826744f08208a4c29addbbc26c7c877c485
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 15:42:27 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:07 2019 -0600
Use "bool" in tui_data_window::show_register_group
This changes tui_data_window::show_register_group to use "bool" rather
than "int".
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <show_register_group>:
Change type of "refresh_values_only".
* tui/tui-regs.c (tui_data_window::show_register_group): Change
type of "refresh_values_only".
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 00d97c6602..188984ee80 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.h (struct tui_data_window) <show_register_group>:
+ Change type of "refresh_values_only".
+ * tui/tui-regs.c (tui_data_window::show_register_group): Change
+ type of "refresh_values_only".
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-disasm.c (struct tui_asm_line) <addr_string, insn>: Now
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 48e78fc9db..0485d04d25 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -166,12 +166,12 @@ tui_data_window::show_registers (struct reggroup *group)
/* Set the data window to display the registers of the register group
using the given frame. Values are refreshed only when
- refresh_values_only is TRUE. */
+ refresh_values_only is true. */
void
tui_data_window::show_register_group (struct reggroup *group,
struct frame_info *frame,
- int refresh_values_only)
+ bool refresh_values_only)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
int nr_regs;
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index abf44c88b6..73572efdf9 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -108,7 +108,7 @@ private:
void show_register_group (struct reggroup *group,
struct frame_info *frame,
- int refresh_values_only);
+ bool refresh_values_only);
/* Answer the number of the last line in the regs display. If there
are no registers (-1) is returned. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 22:33 [binutils-gdb] Use "bool" in tui_data_window::show_register_group gdb-buildbot
@ 2019-09-20 22:33 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:33 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/112
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
b5457826744f08208a4c29addbbc26c7c877c485
Subject of commit:
Use "bool" in tui_data_window::show_register_group
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b5/b5457826744f08208a4c29addbbc26c7c877c485/
*** Diff to previous build ***
==============================================
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b5/b5457826744f08208a4c29addbbc26c7c877c485//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/b5/b5457826744f08208a4c29addbbc26c7c877c485//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change "win_resized" to bool
@ 2019-09-20 22:45 gdb-buildbot
2019-09-20 22:48 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9abd8a65c1298258c005af3f80bdc4da9726ee05 ***
commit 9abd8a65c1298258c005af3f80bdc4da9726ee05
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 15:43:40 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:08 2019 -0600
Change "win_resized" to bool
This changes the "win_resized" global to be a bool and then updates
the uses.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui.c (tui_enable): Update.
* tui/tui-win.c (tui_sigwinch_handler, tui_async_resize_screen):
Update.
* tui/tui-data.h (tui_win_resized, tui_set_win_resized_to):
Update.
* tui/tui-data.c (win_resized): Now bool.
(tui_win_resized): Return bool.
(tui_set_win_resized_to): Accept a bool.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 188984ee80..e36b54f226 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui.c (tui_enable): Update.
+ * tui/tui-win.c (tui_sigwinch_handler, tui_async_resize_screen):
+ Update.
+ * tui/tui-data.h (tui_win_resized, tui_set_win_resized_to):
+ Update.
+ * tui/tui-data.c (win_resized): Now bool.
+ (tui_win_resized): Return bool.
+ (tui_set_win_resized_to): Accept a bool.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <show_register_group>:
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index 833ea49a95..c14b1711f6 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -38,7 +38,7 @@ struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
static int term_height, term_width;
static struct tui_win_info *win_with_focus = NULL;
-static int win_resized = FALSE;
+static bool win_resized = false;
/*********************************
@@ -56,8 +56,8 @@ tui_win_is_auxiliary (enum tui_win_type win_type)
******************************************/
/* Answer a whether the terminal window has been resized or not. */
-int
-tui_win_resized (void)
+bool
+tui_win_resized ()
{
return win_resized;
}
@@ -65,7 +65,7 @@ tui_win_resized (void)
/* Set a whether the terminal window has been resized or not. */
void
-tui_set_win_resized_to (int resized)
+tui_set_win_resized_to (bool resized)
{
win_resized = resized;
}
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index be819503cf..264652361e 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -297,8 +297,8 @@ extern void tui_set_term_width_to (int);
extern struct tui_locator_window *tui_locator_win_info_ptr (void);
extern struct tui_win_info *tui_win_with_focus (void);
extern void tui_set_win_with_focus (struct tui_win_info *);
-extern int tui_win_resized (void);
-extern void tui_set_win_resized_to (int);
+extern bool tui_win_resized ();
+extern void tui_set_win_resized_to (bool);
extern struct tui_win_info *tui_next_win (struct tui_win_info *);
extern struct tui_win_info *tui_prev_win (struct tui_win_info *);
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index bf84cdac44..d07a777360 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -664,7 +664,7 @@ static void
tui_sigwinch_handler (int signal)
{
mark_async_signal_handler (tui_sigwinch_token);
- tui_set_win_resized_to (TRUE);
+ tui_set_win_resized_to (true);
}
/* Callback for asynchronously resizing TUI following a SIGWINCH signal. */
@@ -685,7 +685,7 @@ tui_async_resize_screen (gdb_client_data arg)
}
else
{
- tui_set_win_resized_to (FALSE);
+ tui_set_win_resized_to (false);
tui_resize_all ();
tui_refresh_all_win ();
tui_update_gdb_sizes ();
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 5d6b9f3203..966304f340 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -504,7 +504,7 @@ tui_enable (void)
window. */
if (tui_win_resized ())
{
- tui_set_win_resized_to (FALSE);
+ tui_set_win_resized_to (false);
tui_resize_all ();
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 22:45 [binutils-gdb] Change "win_resized" to bool gdb-buildbot
@ 2019-09-20 22:48 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:48 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/113
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
9abd8a65c1298258c005af3f80bdc4da9726ee05
Subject of commit:
Change "win_resized" to bool
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/9a/9abd8a65c1298258c005af3f80bdc4da9726ee05/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: connect
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/9a/9abd8a65c1298258c005af3f80bdc4da9726ee05//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/9a/9abd8a65c1298258c005af3f80bdc4da9726ee05//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Set TUI locator height to 1
@ 2019-09-20 22:59 gdb-buildbot
2019-09-20 22:56 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1b935acf7ecc2df4649b7d34b7ac467eac07221b ***
commit 1b935acf7ecc2df4649b7d34b7ac467eac07221b
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 16:37:48 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:08 2019 -0600
Set TUI locator height to 1
The TUI has long had code to resize the locator, using 2 as the
height. However the code has "1" in a comment, like:
locator->resize (2 /* 1 */ ,
This patch fixes the resizing code to set the height to 1. Doing this
revealed what was probably the reason for setting the height to 2 in
the first place: this caused the locator window to scroll. However,
this is easily handled by calling scrollok on the locator window.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
height for locator.
* tui/tui-stack.c (tui_locator_window::rerender): Call scrollok.
* tui/tui-layout.c (show_source_disasm_command, show_data)
(show_source_or_disasm_and_command): Use 1 as height for locator.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e36b54f226..9bc6f263f4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
+ height for locator.
+ * tui/tui-stack.c (tui_locator_window::rerender): Call scrollok.
+ * tui/tui-layout.c (show_source_disasm_command, show_data)
+ (show_source_or_disasm_and_command): Use 1 as height for locator.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui.c (tui_enable): Update.
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 33d3dd6cb8..03115a7baa 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -511,10 +511,8 @@ show_source_disasm_command (void)
tui_term_width (),
0,
src_height - 1);
- locator->resize (2 /* 1 */ ,
- tui_term_width (),
- 0,
- (src_height + asm_height) - 1);
+ locator->resize (1, tui_term_width (),
+ 0, (src_height + asm_height) - 1);
if (TUI_CMD_WIN == NULL)
tui_win_list[CMD_WIN] = new tui_cmd_window ();
@@ -561,10 +559,8 @@ show_data (enum tui_layout_type new_layout)
tui_term_width (),
0,
data_height - 1);
- locator->resize (2 /* 1 */ ,
- tui_term_width (),
- 0,
- total_height - 1);
+ locator->resize (1, tui_term_width (),
+ 0, total_height - 1);
TUI_CMD_WIN->resize (TUI_CMD_WIN->height, tui_term_width (),
0, total_height);
@@ -635,10 +631,8 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
win_info = TUI_DISASM_WIN;
}
- locator->resize (2 /* 1 */ ,
- tui_term_width (),
- 0,
- src_height - 1);
+ locator->resize (1, tui_term_width (),
+ 0, src_height - 1);
win_info->resize (src_height - 1,
tui_term_width (),
0,
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 163a5ad725..6bfbb0e5ea 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -229,6 +229,7 @@ tui_locator_window::rerender ()
if (handle != NULL)
{
std::string string = make_status_line ();
+ scrollok (handle, FALSE);
wmove (handle, 0, 0);
/* We ignore the return value from wstandout and wstandend, casting
them to void in order to avoid a compiler warning. The warning
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index d07a777360..77044738ef 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -580,8 +580,7 @@ tui_resize_all (void)
src_win->resize (new_height, screenwidth, 0, 0);
- locator->resize (2 /* 1 */, screenwidth,
- 0, new_height);
+ locator->resize (1, screenwidth, 0, new_height);
new_height = screenheight - (new_height + 1);
TUI_CMD_WIN->resize (new_height, screenwidth,
@@ -637,7 +636,7 @@ tui_resize_all (void)
second_win->resize (new_height, screenwidth,
0, first_win->height - 1);
- locator->resize (2 /* 1 */, screenwidth,
+ locator->resize (1, screenwidth,
0, second_win->origin.y + new_height);
/* Change the command window's height/width. */
@@ -1119,7 +1118,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
second_win->resize (second_win->height + second_split_diff,
width,
0, first_win->height - 1);
- locator->resize (2 /* 1 */, width,
+ locator->resize (1, width,
0, (second_win->origin.y
+ second_win->height + 1));
@@ -1155,7 +1154,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info,
else
second_win->resize (second_win->height, width,
0, first_win->height - 1);
- locator->resize (2 /* 1 */, width,
+ locator->resize (1, width,
0, (second_win->origin.y
+ second_win->height + 1));
TUI_CMD_WIN->origin.y = locator->origin.y + 1;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 22:59 [binutils-gdb] Set TUI locator height to 1 gdb-buildbot
@ 2019-09-20 22:56 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 22:56 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/114
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
1b935acf7ecc2df4649b7d34b7ac467eac07221b
Subject of commit:
Set TUI locator height to 1
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1b/1b935acf7ecc2df4649b7d34b7ac467eac07221b/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=5: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=8: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1b/1b935acf7ecc2df4649b7d34b7ac467eac07221b//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/1b/1b935acf7ecc2df4649b7d34b7ac467eac07221b//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Don't call refresh in tui_resize_all
@ 2019-09-20 23:08 gdb-buildbot
2019-09-20 23:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0891be0835883fc1159565b780d63954e6b09bd9 ***
commit 0891be0835883fc1159565b780d63954e6b09bd9
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 24 21:05:10 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:09 2019 -0600
Don't call refresh in tui_resize_all
There's no reason to call refresh in tui_resize_all. This call
flushes the curses window contents to the terminal -- but, because
we're about the resize all the windows, we're going to be sending more
data to the terminal momentarily. This patch removes the call.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_resize_all): Don't call refresh.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9bc6f263f4..35584db07f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-win.c (tui_resize_all): Don't call refresh.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_resize_all, tui_adjust_win_heights): Use 1 as
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 77044738ef..8963da2b48 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -561,7 +561,6 @@ tui_resize_all (void)
AIX 5.3 does not define clear. */
erase ();
clearok (curscr, TRUE);
- refresh ();
switch (cur_layout)
{
case SRC_COMMAND:
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove a call to tui_locator_win_info_ptr
@ 2019-09-20 23:22 gdb-buildbot
2019-09-20 23:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b76251abaf279603367ae730b9194fb20861fdb9 ***
commit b76251abaf279603367ae730b9194fb20861fdb9
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 1 08:10:18 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:09 2019 -0600
Remove a call to tui_locator_win_info_ptr
Commit e594a5d1 ("Turn two locator functions into methods") turned
set_locator_fullname into a method on tui_locator_window. I missed it
at the time, but this change allows for the removal of a call to
tui_locator_win_info_ptr.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
Don't call tui_locator_win_info_ptr.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 35584db07f..401c74242e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.c (tui_locator_window::set_locator_fullname):
+ Don't call tui_locator_win_info_ptr.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_resize_all): Don't call refresh.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 6bfbb0e5ea..830187995b 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -250,10 +250,8 @@ tui_locator_window::rerender ()
void
tui_locator_window::set_locator_fullname (const char *fullname)
{
- struct tui_locator_window *locator = tui_locator_win_info_ptr ();
-
- locator->full_name[0] = 0;
- strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+ full_name[0] = 0;
+ strcat_to_buf (full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
rerender ();
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change members of tui_locator_window to std::string
@ 2019-09-20 23:35 gdb-buildbot
2019-09-20 23:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9923f347c4e4b9ed710de3404444cf46b04135a0 ***
commit 9923f347c4e4b9ed710de3404444cf46b04135a0
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Sep 1 08:13:24 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:10 2019 -0600
Change members of tui_locator_window to std::string
This changes two members of tui_locator_window to have type
std::string. This removes a static limit.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
(struct tui_locator_window) <full_name, proc_name>: Now
std::string.
* tui/tui-stack.c (tui_locator_window::make_status_line)
(tui_locator_window::set_locator_fullname)
(tui_locator_window::set_locator_info): Update.
* tui/tui-source.c (tui_source_window::set_contents)
(tui_source_window::showing_source_p): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 401c74242e..8d586e72f0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
+ (struct tui_locator_window) <full_name, proc_name>: Now
+ std::string.
+ * tui/tui-stack.c (tui_locator_window::make_status_line)
+ (tui_locator_window::set_locator_fullname)
+ (tui_locator_window::set_locator_info): Update.
+ * tui/tui-source.c (tui_source_window::set_contents)
+ (tui_source_window::showing_source_p): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index f70e053bdb..e6cc0dbc1a 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -179,7 +179,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
element->line_or_addr.loa = LOA_LINE;
element->line_or_addr.u.line_no = cur_line_no;
element->is_exec_point
- = (filename_cmp (locator->full_name,
+ = (filename_cmp (locator->full_name.c_str (),
symtab_to_fullname (s)) == 0
&& cur_line_no == locator->line_no);
@@ -213,7 +213,7 @@ bool
tui_source_window::showing_source_p (const char *fullname) const
{
return (!content.empty ()
- && (filename_cmp (tui_locator_win_info_ptr ()->full_name,
+ && (filename_cmp (tui_locator_win_info_ptr ()->full_name.c_str (),
fullname) == 0));
}
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 830187995b..d66e3589e4 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -166,12 +166,12 @@ tui_locator_window::make_status_line () const
/* Procedure/class name. */
if (proc_width > 0)
{
- if (strlen (proc_name) > proc_width)
+ if (proc_name.size () > proc_width)
string.printf ("%s%*.*s* ", PROC_PREFIX,
- 1 - proc_width, proc_width - 1, proc_name);
+ 1 - proc_width, proc_width - 1, proc_name.c_str ());
else
string.printf ("%s%*.*s ", PROC_PREFIX,
- -proc_width, proc_width, proc_name);
+ -proc_width, proc_width, proc_name.c_str ());
}
if (line_width > 0)
@@ -250,8 +250,7 @@ tui_locator_window::rerender ()
void
tui_locator_window::set_locator_fullname (const char *fullname)
{
- full_name[0] = 0;
- strcat_to_buf (full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+ full_name = fullname;
rerender ();
}
@@ -272,16 +271,13 @@ tui_locator_window::set_locator_info (struct gdbarch *gdbarch_in,
if (fullname == NULL)
fullname = "";
- locator_changed_p |= strncmp (proc_name, procname,
- MAX_LOCATOR_ELEMENT_LEN) != 0;
+ locator_changed_p |= proc_name != procname;
locator_changed_p |= lineno != line_no;
locator_changed_p |= addr_in != addr;
locator_changed_p |= gdbarch_in != gdbarch;
- locator_changed_p |= strncmp (full_name, fullname,
- MAX_LOCATOR_ELEMENT_LEN) != 0;
+ locator_changed_p |= full_name != fullname;
- proc_name[0] = (char) 0;
- strcat_to_buf (proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
+ proc_name = procname;
line_no = lineno;
addr = addr_in;
gdbarch = gdbarch_in;
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index b6ffa986a6..93a79fbd79 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -26,12 +26,6 @@
struct frame_info;
-#ifdef PATH_MAX
-# define MAX_LOCATOR_ELEMENT_LEN PATH_MAX
-#else
-# define MAX_LOCATOR_ELEMENT_LEN 1024
-#endif
-
/* Locator window class. */
struct tui_locator_window : public tui_gen_win_info
@@ -57,8 +51,8 @@ struct tui_locator_window : public tui_gen_win_info
/* Set the full_name portion of the locator. */
void set_locator_fullname (const char *fullname);
- char full_name[MAX_LOCATOR_ELEMENT_LEN];
- char proc_name[MAX_LOCATOR_ELEMENT_LEN];
+ std::string full_name;
+ std::string proc_name;
int line_no = 0;
CORE_ADDR addr = 0;
/* Architecture associated with code at this location. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 23:35 [binutils-gdb] Change members of tui_locator_window to std::string gdb-buildbot
@ 2019-09-20 23:37 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:37 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/117
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
9923f347c4e4b9ed710de3404444cf46b04135a0
Subject of commit:
Change members of tui_locator_window to std::string
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/99/9923f347c4e4b9ed710de3404444cf46b04135a0/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/99/9923f347c4e4b9ed710de3404444cf46b04135a0//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/99/9923f347c4e4b9ed710de3404444cf46b04135a0//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Rename private data members of tui_data_window
@ 2019-09-20 23:46 gdb-buildbot
2019-09-20 23:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 80df33379eb01e5cf959f3db8d6b1dec9bc6a03b ***
commit 80df33379eb01e5cf959f3db8d6b1dec9bc6a03b
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 08:09:37 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:10 2019 -0600
Rename private data members of tui_data_window
As Pedro suggested, this patch renames the private data members of
tui_data_window to use the "m_" prefix.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <get_current_group>:
Update.
<m_regs_content, m_regs_column_count, m_current_group>: Add "m_"
prefix.
* tui/tui-regs.c (tui_data_window::last_regs_line_no)
(tui_data_window::line_from_reg_element_no)
(tui_data_window::first_reg_element_no_inline)
(tui_data_window::show_registers)
(tui_data_window::show_register_group)
(tui_data_window::display_registers_from)
(tui_data_window::display_registers_from_line)
(tui_data_window::first_data_item_displayed)
(tui_data_window::delete_data_content_windows)
(tui_data_window::erase_data_content)
(tui_data_window::do_scroll_vertical)
(tui_data_window::refresh_window)
(tui_data_window::check_register_values): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8d586e72f0..96bf00595d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,23 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.h (struct tui_data_window) <get_current_group>:
+ Update.
+ <m_regs_content, m_regs_column_count, m_current_group>: Add "m_"
+ prefix.
+ * tui/tui-regs.c (tui_data_window::last_regs_line_no)
+ (tui_data_window::line_from_reg_element_no)
+ (tui_data_window::first_reg_element_no_inline)
+ (tui_data_window::show_registers)
+ (tui_data_window::show_register_group)
+ (tui_data_window::display_registers_from)
+ (tui_data_window::display_registers_from_line)
+ (tui_data_window::first_data_item_displayed)
+ (tui_data_window::delete_data_content_windows)
+ (tui_data_window::erase_data_content)
+ (tui_data_window::do_scroll_vertical)
+ (tui_data_window::refresh_window)
+ (tui_data_window::check_register_values): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (MAX_LOCATOR_ELEMENT_LEN): Remove define.
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 0485d04d25..c4769cbcb4 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -96,8 +96,8 @@ tui_get_register (struct frame_info *frame,
int
tui_data_window::last_regs_line_no () const
{
- int num_lines = regs_content.size () / regs_column_count;
- if (regs_content.size () % regs_column_count)
+ int num_lines = m_regs_content.size () / m_regs_column_count;
+ if (m_regs_content.size () % m_regs_column_count)
num_lines++;
return num_lines;
}
@@ -107,14 +107,14 @@ tui_data_window::last_regs_line_no () const
int
tui_data_window::line_from_reg_element_no (int element_no) const
{
- if (element_no < regs_content.size ())
+ if (element_no < m_regs_content.size ())
{
int i, line = (-1);
i = 1;
while (line == (-1))
{
- if (element_no < regs_column_count * i)
+ if (element_no < m_regs_column_count * i)
line = i - 1;
else
i++;
@@ -131,8 +131,8 @@ tui_data_window::line_from_reg_element_no (int element_no) const
int
tui_data_window::first_reg_element_no_inline (int line_no) const
{
- if (line_no * regs_column_count <= regs_content.size ())
- return ((line_no + 1) * regs_column_count) - regs_column_count;
+ if (line_no * m_regs_column_count <= m_regs_content.size ())
+ return ((line_no + 1) * m_regs_column_count) - m_regs_column_count;
else
return (-1);
}
@@ -148,17 +148,17 @@ tui_data_window::show_registers (struct reggroup *group)
if (target_has_registers && target_has_stack && target_has_memory)
{
show_register_group (group, get_selected_frame (NULL),
- group == current_group);
+ group == m_current_group);
/* Clear all notation of changed values. */
- for (auto &&data_item_win : regs_content)
+ for (auto &&data_item_win : m_regs_content)
data_item_win.highlight = false;
- current_group = group;
+ m_current_group = group;
rerender ();
}
else
{
- current_group = 0;
+ m_current_group = 0;
erase_data_content (_("[ Register Values Unavailable ]"));
}
}
@@ -199,7 +199,7 @@ tui_data_window::show_register_group (struct reggroup *group,
nr_regs++;
}
- regs_content.resize (nr_regs);
+ m_regs_content.resize (nr_regs);
/* Now set the register names and values. */
pos = 0;
@@ -218,7 +218,7 @@ tui_data_window::show_register_group (struct reggroup *group,
if (name == 0 || *name == '\0')
continue;
- data_item_win = ®s_content[pos];
+ data_item_win = &m_regs_content[pos];
if (data_item_win)
{
if (!refresh_values_only)
@@ -241,7 +241,7 @@ tui_data_window::display_registers_from (int start_element_no)
int j, item_win_width, cur_y;
int max_len = 0;
- for (auto &&data_item_win : regs_content)
+ for (auto &&data_item_win : m_regs_content)
{
const char *p;
int len;
@@ -257,24 +257,24 @@ tui_data_window::display_registers_from (int start_element_no)
item_win_width = max_len + 1;
int i = start_element_no;
- regs_column_count = (width - 2) / item_win_width;
- if (regs_column_count == 0)
- regs_column_count = 1;
- item_win_width = (width - 2) / regs_column_count;
+ m_regs_column_count = (width - 2) / item_win_width;
+ if (m_regs_column_count == 0)
+ m_regs_column_count = 1;
+ item_win_width = (width - 2) / m_regs_column_count;
/* Now create each data "sub" window, and write the display into
it. */
cur_y = 1;
- while (i < regs_content.size ()
+ while (i < m_regs_content.size ()
&& cur_y <= viewport_height)
{
for (j = 0;
- j < regs_column_count && i < regs_content.size ();
+ j < m_regs_column_count && i < m_regs_content.size ();
j++)
{
/* Create the window if necessary. */
- regs_content[i].resize (1, item_win_width,
- (item_win_width * j) + 1, cur_y);
+ m_regs_content[i].resize (1, item_win_width,
+ (item_win_width * j) + 1, cur_y);
i++; /* Next register. */
}
cur_y++; /* Next row. */
@@ -322,14 +322,14 @@ tui_data_window::display_registers_from_line (int line_no)
registers. */
if (line_no >= last_regs_line_no ())
{
- line_no = line_from_reg_element_no (regs_content.size () - 1);
+ line_no = line_from_reg_element_no (m_regs_content.size () - 1);
if (line_no < 0)
line_no = 0;
}
}
element_no = first_reg_element_no_inline (line_no);
- if (element_no < regs_content.size ())
+ if (element_no < m_regs_content.size ())
display_reg_element_at_line (element_no, line_no);
else
line_no = (-1);
@@ -343,11 +343,11 @@ tui_data_window::display_registers_from_line (int line_no)
int
tui_data_window::first_data_item_displayed ()
{
- for (int i = 0; i < regs_content.size (); i++)
+ for (int i = 0; i < m_regs_content.size (); i++)
{
struct tui_gen_win_info *data_item_win;
- data_item_win = ®s_content[i];
+ data_item_win = &m_regs_content[i];
if (data_item_win->is_visible ())
return i;
}
@@ -360,7 +360,7 @@ tui_data_window::first_data_item_displayed ()
void
tui_data_window::delete_data_content_windows ()
{
- for (auto &&win : regs_content)
+ for (auto &&win : m_regs_content)
{
tui_delete_win (win.handle);
win.handle = NULL;
@@ -392,7 +392,7 @@ tui_data_window::erase_data_content (const char *prompt)
void
tui_data_window::rerender ()
{
- if (regs_content.empty ())
+ if (m_regs_content.empty ())
erase_data_content (_("[ Register Values Unavailable ]"));
else
{
@@ -411,7 +411,7 @@ tui_data_window::do_scroll_vertical (int num_to_scroll)
int first_line = (-1);
first_element_no = first_data_item_displayed ();
- if (first_element_no < regs_content.size ())
+ if (first_element_no < m_regs_content.size ())
first_line = line_from_reg_element_no (first_element_no);
else
{ /* Calculate the first line from the element number which is in
@@ -433,7 +433,7 @@ void
tui_data_window::refresh_window ()
{
tui_gen_win_info::refresh_window ();
- for (auto &&win : regs_content)
+ for (auto &&win : m_regs_content)
win.refresh_window ();
}
@@ -443,11 +443,11 @@ tui_data_window::refresh_window ()
void
tui_data_window::check_register_values (struct frame_info *frame)
{
- if (regs_content.empty ())
- show_registers (current_group);
+ if (m_regs_content.empty ())
+ show_registers (m_current_group);
else
{
- for (auto &&data_item_win : regs_content)
+ for (auto &&data_item_win : m_regs_content)
{
int was_hilighted;
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 73572efdf9..e45a68f8f4 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -71,7 +71,7 @@ struct tui_data_window : public tui_win_info
struct reggroup *get_current_group () const
{
- return current_group;
+ return m_current_group;
}
protected:
@@ -130,9 +130,9 @@ private:
void erase_data_content (const char *prompt);
/* Windows that are used to display registers. */
- std::vector<tui_data_item_window> regs_content;
- int regs_column_count = 0;
- struct reggroup *current_group = nullptr;
+ std::vector<tui_data_item_window> m_regs_content;
+ int m_regs_column_count = 0;
+ struct reggroup *m_current_group = nullptr;
};
#endif /* TUI_TUI_REGS_H */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 23:46 [binutils-gdb] Rename private data members of tui_data_window gdb-buildbot
@ 2019-09-20 23:45 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:45 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/118
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
80df33379eb01e5cf959f3db8d6b1dec9bc6a03b
Subject of commit:
Rename private data members of tui_data_window
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/80df33379eb01e5cf959f3db8d6b1dec9bc6a03b/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: connect
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: get integer valueof "mypid"
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/80df33379eb01e5cf959f3db8d6b1dec9bc6a03b//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/80/80df33379eb01e5cf959f3db8d6b1dec9bc6a03b//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Rename a private data member in tui_source_window
@ 2019-09-20 23:58 gdb-buildbot
2019-09-20 23:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7226433c44e3792aeea6ad19c54cd3056ea4308e ***
commit 7226433c44e3792aeea6ad19c54cd3056ea4308e
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 08:10:44 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600
Rename a private data member in tui_source_window
This renames tui_source_window::fullname to add the "m_" prefix, as it
is a private data member.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
from "fullname".
* tui/tui-source.c (tui_source_window::set_contents)
(tui_source_window::location_matches_p)
(tui_source_window::maybe_update): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 96bf00595d..3b2fdd2056 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
+ from "fullname".
+ * tui/tui-source.c (tui_source_window::set_contents)
+ (tui_source_window::location_matches_p)
+ (tui_source_window::maybe_update): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <get_current_group>:
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index e6cc0dbc1a..fa6ed7893f 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -155,7 +155,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
title = s_filename;
- fullname = make_unique_xstrdup (symtab_to_fullname (s));
+ m_fullname = make_unique_xstrdup (symtab_to_fullname (s));
cur_line = 0;
gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s));
@@ -275,7 +275,7 @@ tui_source_window::location_matches_p (struct bp_location *loc, int line_no)
return (content[line_no].line_or_addr.loa == LOA_LINE
&& content[line_no].line_or_addr.u.line_no == loc->line_number
&& loc->symtab != NULL
- && filename_cmp (fullname.get (),
+ && filename_cmp (m_fullname.get (),
symtab_to_fullname (loc->symtab)) == 0);
}
@@ -307,7 +307,7 @@ tui_source_window::maybe_update (struct frame_info *fi, symtab_and_line sal,
start_line = 1;
bool source_already_displayed = (sal.symtab != 0
- && showing_source_p (fullname.get ()));
+ && showing_source_p (m_fullname.get ()));
struct tui_line_or_address l;
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
index 30728e4214..3ef737c56e 100644
--- a/gdb/tui/tui-source.h
+++ b/gdb/tui/tui-source.h
@@ -77,7 +77,7 @@ private:
bool line_is_displayed (int line) const;
/* It is the resolved form as returned by symtab_to_fullname. */
- gdb::unique_xmalloc_ptr<char> fullname;
+ gdb::unique_xmalloc_ptr<char> m_fullname;
/* A token used to register and unregister an observer. */
gdb::observers::token m_observable;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-20 23:58 [binutils-gdb] Rename a private data member in tui_source_window gdb-buildbot
@ 2019-09-20 23:59 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-20 23:59 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/119
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
7226433c44e3792aeea6ad19c54cd3056ea4308e
Subject of commit:
Rename a private data member in tui_source_window
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/72/7226433c44e3792aeea6ad19c54cd3056ea4308e/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
new FAIL: gdb.server/reconnect-ctrl-c.exp: second: continue for ctrl-c
new FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/72/7226433c44e3792aeea6ad19c54cd3056ea4308e//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/72/7226433c44e3792aeea6ad19c54cd3056ea4308e//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove strcat_to_buf
@ 2019-09-21 0:13 gdb-buildbot
2019-09-21 0:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 43df9b2fccc347e95f882519332592a826d72d11 ***
commit 43df9b2fccc347e95f882519332592a826d72d11
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Mon Sep 2 09:07:02 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600
Remove strcat_to_buf
An earlier patch in the series removed the last call to strcat_to_buf,
so this patch removes the function entirely.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui.h (strcat_to_buf): Don't declare.
* tui/tui.c (strcat_to_buf): Remove.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3b2fdd2056..ba434dd300 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui.h (strcat_to_buf): Don't declare.
+ * tui/tui.c (strcat_to_buf): Remove.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-source.h (struct tui_source_window) <m_fullname>: Rename
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 966304f340..30bf548879 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -570,19 +570,6 @@ tui_disable_command (const char *args, int from_tty)
tui_disable ();
}
-void
-strcat_to_buf (char *buf, int buflen,
- const char *item_to_add)
-{
- if (item_to_add != NULL && buf != NULL)
- {
- if ((strlen (buf) + strlen (item_to_add)) <= buflen)
- strcat (buf, item_to_add);
- else
- strncat (buf, item_to_add, (buflen - strlen (buf)));
- }
-}
-
#if 0
/* Solaris <sys/termios.h> defines CTRL. */
#ifndef CTRL
diff --git a/gdb/tui/tui.h b/gdb/tui/tui.h
index 25ae0c5e47..baf4a813b6 100644
--- a/gdb/tui/tui.h
+++ b/gdb/tui/tui.h
@@ -24,8 +24,6 @@
struct ui_file;
-extern void strcat_to_buf (char *, int, const char *);
-
/* Types of error returns. */
enum tui_status
{
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove separator comments from TUI
@ 2019-09-21 0:26 gdb-buildbot
2019-09-21 0:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 63c4bf1922d5553edb213606270b0e2782bbe4c8 ***
commit 63c4bf1922d5553edb213606270b0e2782bbe4c8
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 12:41:29 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:11 2019 -0600
Remove separator comments from TUI
This removes various separator comments from the TUI. These aren't
used elsewhere in gdb, and they were incorrect in some cases as well.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-data.c: Remove separator comments.
* tui/tui-layout.c: Remove separator comments.
* tui/tui-win.c: Remove separator comments.
* tui/tui-wingeneral.c: Remove separator comments.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ba434dd300..8f69dc59ec 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-data.c: Remove separator comments.
+ * tui/tui-layout.c: Remove separator comments.
+ * tui/tui-win.c: Remove separator comments.
+ * tui/tui-wingeneral.c: Remove separator comments.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui.h (strcat_to_buf): Don't declare.
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index c14b1711f6..748d897821 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -27,34 +27,19 @@
#include "tui/tui-winsource.h"
#include "gdb_curses.h"
-/****************************
-** GLOBAL DECLARATIONS
-****************************/
struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
-/***************************
-** Private data
-****************************/
static int term_height, term_width;
static struct tui_win_info *win_with_focus = NULL;
static bool win_resized = false;
-
-/*********************************
-** PUBLIC FUNCTIONS
-**********************************/
-
int
tui_win_is_auxiliary (enum tui_win_type win_type)
{
return (win_type > MAX_MAJOR_WINDOWS);
}
-/******************************************
-** ACCESSORS & MUTATORS FOR PRIVATE DATA
-******************************************/
-
/* Answer a whether the terminal window has been resized or not. */
bool
tui_win_resized ()
@@ -119,11 +104,6 @@ tui_set_term_width_to (int w)
}
-/*****************************
-** OTHER PUBLIC FUNCTIONS
-*****************************/
-
-
/* Answer the next window in the list, cycling back to the top if
necessary. */
struct tui_win_info *
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 03115a7baa..0f3e8d945e 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -40,9 +40,6 @@
#include "tui/tui-source.h"
#include "gdb_curses.h"
-/*******************************
-** Static Local Decls
-********************************/
static void show_layout (enum tui_layout_type);
static void show_source_or_disasm_and_command (enum tui_layout_type);
static void show_source_command (void);
@@ -64,9 +61,6 @@ tui_current_layout (void)
return current_layout;
}
-/***************************************
-** DEFINITIONS
-***************************************/
/* Show the screen layout defined. */
static void
@@ -338,11 +332,6 @@ Layout names are:\n\
}
-/*************************
-** STATIC LOCAL FUNCTIONS
-**************************/
-
-
/* Function to set the layout to SRC, ASM, SPLIT, NEXT, PREV, DATA, or
REGS. */
static void
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 8963da2b48..aecb7791f0 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -53,9 +53,6 @@
#include <signal.h>
-/*******************************
-** Static Local Decls
-********************************/
static enum tui_status tui_adjust_win_heights (struct tui_win_info *,
int);
static int new_height_ok (struct tui_win_info *, int);
@@ -71,16 +68,9 @@ static void parse_scrolling_args (const char *,
int *);
-/***************************************
-** DEFINITIONS
-***************************************/
#define WIN_HEIGHT_USAGE "Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n"
#define FOCUS_USAGE "Usage: focus [WINDOW-NAME | next | prev]\n"
-/***************************************
-** PUBLIC FUNCTIONS
-***************************************/
-
#ifndef ACS_LRCORNER
# define ACS_LRCORNER '+'
#endif
@@ -720,11 +710,6 @@ tui_initialize_win (void)
}
-/*************************
-** STATIC LOCAL FUNCTIONS
-**************************/
-
-
static void
tui_scroll_forward_command (const char *arg, int from_tty)
{
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 235c17c5fa..713059d663 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -28,10 +28,6 @@
#include "gdb_curses.h"
-/***********************
-** PUBLIC FUNCTIONS
-***********************/
-
/* See tui-data.h. */
void
@@ -191,8 +187,3 @@ tui_refresh_all ()
if (locator->is_visible ())
locator->refresh_window ();
}
-
-
-/*********************************
-** Local Static Functions
-*********************************/
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-21 0:26 [binutils-gdb] Remove separator comments from TUI gdb-buildbot
@ 2019-09-21 0:28 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:28 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/121
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
63c4bf1922d5553edb213606270b0e2782bbe4c8
Subject of commit:
Remove separator comments from TUI
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/63/63c4bf1922d5553edb213606270b0e2782bbe4c8/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=8: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/63/63c4bf1922d5553edb213606270b0e2782bbe4c8//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/63/63c4bf1922d5553edb213606270b0e2782bbe4c8//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Use make_unique_xstrdup in TUI
@ 2019-09-21 0:43 gdb-buildbot
2019-09-21 0:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f074b67ec812612637342a1647da9158a1e77de0 ***
commit f074b67ec812612637342a1647da9158a1e77de0
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 10 12:56:09 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:12 2019 -0600
Use make_unique_xstrdup in TUI
This changes a couple of spots in the TUI to use make_unique_xstrdup.
This simplifies the code slightly.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-source.c (tui_source_window::set_contents): Use
make_unique_xstrdup.
* tui/tui-disasm.c (tui_disasm_window::set_contents): Use
make_unique_xstrdup.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8f69dc59ec..402b57ab6e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-source.c (tui_source_window::set_contents): Use
+ make_unique_xstrdup.
+ * tui/tui-disasm.c (tui_disasm_window::set_contents): Use
+ make_unique_xstrdup.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-data.c: Remove separator comments.
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 53ea061afb..51616bcf87 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -218,7 +218,7 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
if (line.size() > offset)
src->line.reset (xstrndup (&line[offset], line_width));
else
- src->line.reset (xstrdup (""));
+ src->line = make_unique_xstrdup ("");
src->line_or_addr.loa = LOA_ADDRESS;
src->line_or_addr.u.addr = asm_lines[i].addr;
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index fa6ed7893f..bb1013bb86 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -183,7 +183,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
symtab_to_fullname (s)) == 0
&& cur_line_no == locator->line_no);
- content[cur_line].line.reset (xstrdup (text.c_str ()));
+ content[cur_line].line = make_unique_xstrdup (text.c_str ());
cur_line++;
cur_line_no++;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-21 0:43 [binutils-gdb] Use make_unique_xstrdup in TUI gdb-buildbot
@ 2019-09-21 0:45 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:45 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/122
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
f074b67ec812612637342a1647da9158a1e77de0
Subject of commit:
Use make_unique_xstrdup in TUI
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f0/f074b67ec812612637342a1647da9158a1e77de0/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f0/f074b67ec812612637342a1647da9158a1e77de0//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f0/f074b67ec812612637342a1647da9158a1e77de0//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Change TUI window commands to be case-sensitive
@ 2019-09-21 0:53 gdb-buildbot
2019-09-21 0:53 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 0:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a ***
commit 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 16:01:03 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:12 2019 -0600
Change TUI window commands to be case-sensitive
The TUI window-related commands like "focus" are case insensitive.
This is not the norm in gdb, and I don't see a good reason to have it
here. This patch changes the TUI to be case sensitive, like the rest
of gdb.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* NEWS: Mention case-sensitivity of TUI commands.
* tui/tui-win.c (tui_set_focus_command): Now case-sensitive.
(tui_set_win_height_command, parse_scrolling_args): Likewise.
* tui/tui-layout.c (tui_layout_command): Now case-sensitive.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 402b57ab6e..adaa123822 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * NEWS: Mention case-sensitivity of TUI commands.
+ * tui/tui-win.c (tui_set_focus_command): Now case-sensitive.
+ (tui_set_win_height_command, parse_scrolling_args): Likewise.
+ * tui/tui-layout.c (tui_layout_command): Now case-sensitive.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-source.c (tui_source_window::set_contents): Use
diff --git a/gdb/NEWS b/gdb/NEWS
index 1fefd81409..201701bac3 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -186,6 +186,9 @@ maint show test-options-completion-result
Commands used by the testsuite to validate the command options
framework.
+focus, winheight, +, -, >, <
+ These commands are now case-sensitive.
+
* New command options, command completion
GDB now has a standard infrastructure to support dash-style command
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 0f3e8d945e..7aa670ec69 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -337,29 +337,23 @@ Layout names are:\n\
static void
tui_layout_command (const char *layout_name, int from_tty)
{
- int i;
enum tui_layout_type new_layout = UNDEFINED_LAYOUT;
enum tui_layout_type cur_layout = tui_current_layout ();
- if (layout_name == NULL)
+ if (layout_name == NULL || *layout_name == '\0')
error (_("Usage: layout prev | next | LAYOUT-NAME"));
- std::string copy = layout_name;
- for (i = 0; i < copy.size (); i++)
- copy[i] = toupper (copy[i]);
- const char *buf_ptr = copy.c_str ();
-
/* First check for ambiguous input. */
- if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S')
+ if (strcmp (layout_name, "s") == 0)
error (_("Ambiguous command input."));
- if (subset_compare (buf_ptr, "SRC"))
+ if (subset_compare (layout_name, "src"))
new_layout = SRC_COMMAND;
- else if (subset_compare (buf_ptr, "ASM"))
+ else if (subset_compare (layout_name, "asm"))
new_layout = DISASSEM_COMMAND;
- else if (subset_compare (buf_ptr, "SPLIT"))
+ else if (subset_compare (layout_name, "split"))
new_layout = SRC_DISASSEM_COMMAND;
- else if (subset_compare (buf_ptr, "REGS"))
+ else if (subset_compare (layout_name, "regs"))
{
if (cur_layout == SRC_COMMAND
|| cur_layout == SRC_DATA_COMMAND)
@@ -367,9 +361,9 @@ tui_layout_command (const char *layout_name, int from_tty)
else
new_layout = DISASSEM_DATA_COMMAND;
}
- else if (subset_compare (buf_ptr, "NEXT"))
+ else if (subset_compare (layout_name, "next"))
new_layout = next_layout ();
- else if (subset_compare (buf_ptr, "PREV"))
+ else if (subset_compare (layout_name, "prev"))
new_layout = prev_layout ();
else
error (_("Unrecognized layout: %s"), layout_name);
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index aecb7791f0..37e22c550f 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -776,35 +776,27 @@ tui_set_focus_command (const char *arg, int from_tty)
if (arg != NULL)
{
- char *buf_ptr = xstrdup (arg);
- int i;
struct tui_win_info *win_info = NULL;
- for (i = 0; (i < strlen (buf_ptr)); i++)
- buf_ptr[i] = tolower (arg[i]);
-
- if (subset_compare (buf_ptr, "next"))
+ if (subset_compare (arg, "next"))
win_info = tui_next_win (tui_win_with_focus ());
- else if (subset_compare (buf_ptr, "prev"))
+ else if (subset_compare (arg, "prev"))
win_info = tui_prev_win (tui_win_with_focus ());
else
- win_info = tui_partial_win_by_name (buf_ptr);
+ win_info = tui_partial_win_by_name (arg);
- if (win_info == NULL || !win_info->is_visible ())
- warning (_("Invalid window specified. \n\
-The window name specified must be valid and visible.\n"));
- else
- {
- tui_set_win_focus_to (win_info);
- keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
- }
+ if (win_info == NULL)
+ error (_("Unrecognized window name \"%s\""), arg);
+ if (!win_info->is_visible ())
+ error (_("Window \"%s\" is not visible"), arg);
- xfree (buf_ptr);
+ tui_set_win_focus_to (win_info);
+ keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
printf_filtered (_("Focus set to %s window.\n"),
tui_win_with_focus ()->name ());
}
else
- warning (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE);
+ error (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE);
}
static void
@@ -927,65 +919,61 @@ tui_set_win_height_command (const char *arg, int from_tty)
char *buf = ©[0];
char *buf_ptr = buf;
char *wname = NULL;
- int new_height, i;
+ int new_height;
struct tui_win_info *win_info;
wname = buf_ptr;
buf_ptr = strchr (buf_ptr, ' ');
if (buf_ptr != NULL)
{
- *buf_ptr = (char) 0;
+ *buf_ptr = '\0';
/* Validate the window name. */
- for (i = 0; i < strlen (wname); i++)
- wname[i] = tolower (wname[i]);
win_info = tui_partial_win_by_name (wname);
- if (win_info == NULL || !win_info->is_visible ())
- warning (_("Invalid window specified. \n\
-The window name specified must be valid and visible.\n"));
- else
+ if (win_info == NULL)
+ error (_("Unrecognized window name \"%s\""), arg);
+ if (!win_info->is_visible ())
+ error (_("Window \"%s\" is not visible"), arg);
+
+ /* Process the size. */
+ buf_ptr = skip_spaces (buf_ptr);
+
+ if (*buf_ptr != '\0')
{
- /* Process the size. */
- while (*(++buf_ptr) == ' ')
- ;
+ bool negate = false;
+ bool fixed_size = true;
+ int input_no;;
- if (*buf_ptr != (char) 0)
+ if (*buf_ptr == '+' || *buf_ptr == '-')
{
- int negate = FALSE;
- int fixed_size = TRUE;
- int input_no;;
-
- if (*buf_ptr == '+' || *buf_ptr == '-')
- {
- if (*buf_ptr == '-')
- negate = TRUE;
- fixed_size = FALSE;
- buf_ptr++;
- }
- input_no = atoi (buf_ptr);
- if (input_no > 0)
- {
- if (negate)
- input_no *= (-1);
- if (fixed_size)
- new_height = input_no;
- else
- new_height = win_info->height + input_no;
-
- /* Now change the window's height, and adjust
- all other windows around it. */
- if (tui_adjust_win_heights (win_info,
- new_height) == TUI_FAILURE)
- warning (_("Invalid window height specified.\n%s"),
- WIN_HEIGHT_USAGE);
- else
- tui_update_gdb_sizes ();
- }
+ if (*buf_ptr == '-')
+ negate = true;
+ fixed_size = false;
+ buf_ptr++;
+ }
+ input_no = atoi (buf_ptr);
+ if (input_no > 0)
+ {
+ if (negate)
+ input_no *= (-1);
+ if (fixed_size)
+ new_height = input_no;
else
+ new_height = win_info->height + input_no;
+
+ /* Now change the window's height, and adjust
+ all other windows around it. */
+ if (tui_adjust_win_heights (win_info,
+ new_height) == TUI_FAILURE)
warning (_("Invalid window height specified.\n%s"),
WIN_HEIGHT_USAGE);
+ else
+ tui_update_gdb_sizes ();
}
+ else
+ warning (_("Invalid window height specified.\n%s"),
+ WIN_HEIGHT_USAGE);
}
}
else
@@ -1299,7 +1287,7 @@ parse_scrolling_args (const char *arg,
buf_ptr = strchr (buf_ptr, ' ');
if (buf_ptr != NULL)
{
- *buf_ptr = (char) 0;
+ *buf_ptr = '\0';
if (num_to_scroll)
*num_to_scroll = atoi (num_str);
buf_ptr++;
@@ -1313,29 +1301,19 @@ parse_scrolling_args (const char *arg,
{
const char *wname;
- if (*buf_ptr == ' ')
- while (*(++buf_ptr) == ' ')
- ;
+ wname = skip_spaces (buf_ptr);
- if (*buf_ptr != (char) 0)
+ if (*wname != '\0')
{
- /* Validate the window name. */
- for (char *p = buf_ptr; *p != '\0'; p++)
- *p = tolower (*p);
-
- wname = buf_ptr;
+ *win_to_scroll = tui_partial_win_by_name (wname);
+
+ if (*win_to_scroll == NULL)
+ error (_("Unrecognized window `%s'"), wname);
+ if (!(*win_to_scroll)->is_visible ())
+ error (_("Window is not visible"));
+ else if (*win_to_scroll == TUI_CMD_WIN)
+ *win_to_scroll = *(tui_source_windows ().begin ());
}
- else
- wname = "?";
-
- *win_to_scroll = tui_partial_win_by_name (wname);
-
- if (*win_to_scroll == NULL)
- error (_("Unrecognized window `%s'"), wname);
- if (!(*win_to_scroll)->is_visible ())
- error (_("Window is not visible"));
- else if (*win_to_scroll == TUI_CMD_WIN)
- *win_to_scroll = *(tui_source_windows ().begin ());
}
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove Cell Broadband Engine debugging support
@ 2019-09-21 1:04 gdb-buildbot
2019-09-21 1:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 1:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT abf516c6931af1683d1e51203de1ca01467f9f85 ***
commit abf516c6931af1683d1e51203de1ca01467f9f85
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
AuthorDate: Fri Sep 20 23:06:57 2019 +0200
Commit: Ulrich Weigand <ulrich.weigand@de.ibm.com>
CommitDate: Fri Sep 20 23:06:57 2019 +0200
Remove Cell Broadband Engine debugging support
This patch implements removal of Cell/B.E. support, including
- Support for the spu-*-* target
- Support for native stand-alone SPU debugging
- Support for integrated debugging of combined PPU/SPU applications
- Remote debugging (gdbserver) support for all the above.
The patch also removes the TARGET_OBJECT_SPU target object type,
as this is available only on Cell/B.E. targets, including
- Native Linux support
- Core file support (including core file generation)
- Remote target support, including removal of the qXfer:spu:read
and qXfer:spu:write remote protocal packets and associated
support in gdbserver.
gdb/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* NEWS: Mention that Cell/B.E. debugging support was removed.
* MAINTAINERS: Remove spu target.
* config/djgpp/fnchange.lst: Remove entries for removed files.
* Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o,
spu-multiarch.o, and spu-tdep.o.
(HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h.
(ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c,
spu-multiarch.c, and spu-tdep.c.
* spu-linux-nat.c: Remove file.
* spu-multiarch.c: Remove file.
* spu-tdep.c: Remove file.
* spu-tdep.h: Remove file.
* solib-spu.c: Remove file.
* solib-spu.h: Remove file.
* configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support.
* configure.nat (spu-linux): Remove.
* configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and
solib-multiarch.o from gdb_target_obs.
(spu*-*-*): Remove.
* arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell"
feature flag.
(ppc_linux_no_features): Update.
* arch/ppc-linux-common.c (ppc_linux_match_description): Remove
Cell/B.E. support.
* arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration.
(tdesc_powerpc_cell64l): Likewise.
* nat/ppc-linux.h (PPC_FEATURE_CELL): Remove.
* ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove
Cell/B.E. support.
* ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h".
Do not include "features/rs6000/powerpc-cell32l.c" or
"features/rs6000/powerpc-cell64l.c".
(ppc_linux_spu_section): Remove.
(ppc_linux_core_read_description): Remove Cell/B.E. support.
(spe_context_objfile, spe_context_lm_addr, spe_context_offset,
spe_context_cache_ptid, spe_context_cache_ptid): Remove.
(ppc_linux_spe_context_lookup): Remove.
(ppc_linux_spe_context_inferior_created): Remove.
(ppc_linux_spe_context_solib_loaded): Remove.
(ppc_linux_spe_context_solib_unloaded): Remove.
(ppc_linux_spe_context): Remove.
(struct ppu2spu_cache): Remove.
(ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove.
(struct ppu2spu_data): Remove.
(ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache,
ppu2spu_unwind): Remove.
(ppc_linux_init_abi): Remove Cell/B.E. support.
* rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support.
* features/Makefile (rs6000/powerpc-cell32l-expedite): Remove.
(rs6000/powerpc-cell64l-expedite): Likewise
(WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
(XMLTOC): Remove rs6000/powerpc-cell32l.xml and
rs6000/powerpc-cell64l.xml.
* features/rs6000/powerpc-cell32l.xml: Remove.
* features/rs6000/powerpc-cell64l.xml: Likewise.
* features/rs6000/powerpc-cell32l.c: Remove generated file.
* features/rs6000/powerpc-cell64l.c: Likewise.
* regformats/rs6000/powerpc-cell32l.dat: Remove generated file.
* regformats/rs6000/powerpc-cell64l.dat: Likewise.
* regformats/reg-spu.dat: Remove.
* target.h (enum target_object): Remove TARGET_OBJECT_SPU.
* corelow.c (struct spuid_list): Remove.
(add_to_spuid_list): Remove.
(core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove.
(remote_protocol_features): Remove associated entries.
(_initialize_remote): No longer initialize them.
(remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* linux-nat.c (SPUFS_MAGIC): Remove.
(linux_proc_xfer_spu): Remove.
(spu_enumerate_spu_ids): Remove.
(linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
* linux-tdep.c (-linux_spu_make_corefile_notes): Remove.
(linux_make_corefile_notes): No longer call it.
* regcache.c (cooked_read_test): Remove bfd_arch_spu special case.
(cooked_write_test): Likewise.
gdb/doc/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* doc/gdb.texinfo (Remote Configuration): Remove documentation for
qXfer:spu:read and qXfer:spu:write.
(General Query Packets): Likewise.
(Cell Broadband Engine SPU architecture): Remove subsection.
gdb/gdbserver/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
and powerpc-cell64l-ipa.o.
(powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o
from srv_regobj. Remove rs6000/powerpc-cell32l.xml and
rs6000/powerpc-cell64l.xml from srv_xmlfiles.
(spu*-*-*): Remove.
* spu-low.c: Remove file.
* linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove.
(parse_spufs_run): Remove.
(ppc_get_pc): Remove Cell/B.E. support.
(ppc_set_pc): Likewise.
(ppc_breakpoint_at): Likewise.
(ppc_arch_setup): Likewise.
(ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or
tdesc_powerpc_cell32l.
(initialize_low_arch): Do not call init_registers_powerpc_cell64l
or init_registers_powerpc_cell32l.
* linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL.
(initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l
or init_registers_powerpc_cell32l.
* linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused.
(init_registers_powerpc_cell32l): Remove prototype.
(init_registers_powerpc_cell64l): Likewise.
* target.h (struct target_ops): Remove qxfer_spu member.
* server.c (handle_qxfer_spu): Remove.
(qxfer_packets): Remove entry for "spu".
(handle_query): No longer support qXfer:spu:read or qXfer:spu:write.
* linux-low.c (SPUFS_MAGIC): Remove.
(spu_enumerate_spu_ids): Remove.
(linux_qxfer_spu): Remove.
(linux_target_ops): Remove qxfer_spu member.
* lynx-low.c (lynx_target_ops): Remove qxfer_spu member.
* nto-low.c (nto_target_ops): Remove qxfer_spu member.
* win32-low.c (win32_target_ops): Remove qxfer_spu member.
gdb/testsuite/ChangeLog
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.arch/spu-info.exp: Remove file.
* gdb.arch/spu-info.c: Remove file.
* gdb.arch/spu-ls.exp: Remove file.
* gdb.arch/spu-ls.c: Remove file.
* gdb.asm/asm-source.exp: Remove support for spu*-*-*.
* gdb.asm/spu.inc: Remove file.
* gdb.base/dump.exp: Remove support for spu*-*-*.
* gdb.base/stack-checking.exp: Likewise.
* gdb.base/overlays.exp: Likewise.
* gdb.base/ovlymgr.c: Likewise.
* gdb.base/spu.ld: Remove file.
* gdb.cp/bs15503.exp: Remove support for spu*-*-*.
* gdb.cp/cpexprs.exp: Likewise.
* gdb.cp/exception.exp: Likewise.
* gdb.cp/gdb2495.exp: Likewise.
* gdb.cp/mb-templates.exp: Likewise.
* gdb.cp/pr9167.exp: Likewise.
* gdb.cp/userdef.exp: Likewise.
* gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*.
* gdb.cell: Remove directory.
* lib/cell.exp: Remove file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index adaa123822..9c8cebaf6f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,89 @@
+2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * NEWS: Mention that Cell/B.E. debugging support was removed.
+ * MAINTAINERS: Remove spu target.
+
+ * config/djgpp/fnchange.lst: Remove entries for removed files.
+
+ * Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o,
+ spu-multiarch.o, and spu-tdep.o.
+ (HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h.
+ (ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c,
+ spu-multiarch.c, and spu-tdep.c.
+ * spu-linux-nat.c: Remove file.
+ * spu-multiarch.c: Remove file.
+ * spu-tdep.c: Remove file.
+ * spu-tdep.h: Remove file.
+ * solib-spu.c: Remove file.
+ * solib-spu.h: Remove file.
+
+ * configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support.
+ * configure.nat (spu-linux): Remove.
+ * configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and
+ solib-multiarch.o from gdb_target_obs.
+ (spu*-*-*): Remove.
+
+ * arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell"
+ feature flag.
+ (ppc_linux_no_features): Update.
+ * arch/ppc-linux-common.c (ppc_linux_match_description): Remove
+ Cell/B.E. support.
+ * arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration.
+ (tdesc_powerpc_cell64l): Likewise.
+ * nat/ppc-linux.h (PPC_FEATURE_CELL): Remove.
+ * ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove
+ Cell/B.E. support.
+ * ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h".
+ Do not include "features/rs6000/powerpc-cell32l.c" or
+ "features/rs6000/powerpc-cell64l.c".
+ (ppc_linux_spu_section): Remove.
+ (ppc_linux_core_read_description): Remove Cell/B.E. support.
+ (spe_context_objfile, spe_context_lm_addr, spe_context_offset,
+ spe_context_cache_ptid, spe_context_cache_ptid): Remove.
+ (ppc_linux_spe_context_lookup): Remove.
+ (ppc_linux_spe_context_inferior_created): Remove.
+ (ppc_linux_spe_context_solib_loaded): Remove.
+ (ppc_linux_spe_context_solib_unloaded): Remove.
+ (ppc_linux_spe_context): Remove.
+ (struct ppu2spu_cache): Remove.
+ (ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove.
+ (struct ppu2spu_data): Remove.
+ (ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache,
+ ppu2spu_unwind): Remove.
+ (ppc_linux_init_abi): Remove Cell/B.E. support.
+ * rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support.
+
+ * features/Makefile (rs6000/powerpc-cell32l-expedite): Remove.
+ (rs6000/powerpc-cell64l-expedite): Likewise
+ (WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
+ (XMLTOC): Remove rs6000/powerpc-cell32l.xml and
+ rs6000/powerpc-cell64l.xml.
+ * features/rs6000/powerpc-cell32l.xml: Remove.
+ * features/rs6000/powerpc-cell64l.xml: Likewise.
+ * features/rs6000/powerpc-cell32l.c: Remove generated file.
+ * features/rs6000/powerpc-cell64l.c: Likewise.
+ * regformats/rs6000/powerpc-cell32l.dat: Remove generated file.
+ * regformats/rs6000/powerpc-cell64l.dat: Likewise.
+ * regformats/reg-spu.dat: Remove.
+
+ * target.h (enum target_object): Remove TARGET_OBJECT_SPU.
+ * corelow.c (struct spuid_list): Remove.
+ (add_to_spuid_list): Remove.
+ (core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+ * remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove.
+ (remote_protocol_features): Remove associated entries.
+ (_initialize_remote): No longer initialize them.
+ (remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+ * linux-nat.c (SPUFS_MAGIC): Remove.
+ (linux_proc_xfer_spu): Remove.
+ (spu_enumerate_spu_ids): Remove.
+ (linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU.
+ * linux-tdep.c (-linux_spu_make_corefile_notes): Remove.
+ (linux_make_corefile_notes): No longer call it.
+
+ * regcache.c (cooked_read_test): Remove bfd_arch_spu special case.
+ (cooked_write_test): Likewise.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* NEWS: Mention case-sensitivity of TUI commands.
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index fd24cb79bc..3efcb71470 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -319,9 +319,6 @@ the native maintainer when resolving ABI issues.
sparc --target=sparc64-solaris2.10 ,-Werror
(--target=sparc-elf broken)
- spu --target=spu-elf ,-Werror
- Ulrich Weigand uweigand@de.ibm.com
-
tic6x --target=tic6x-elf ,-Werror
Yao Qi qiyao@sourceware.org
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index e7e26a44a0..877a9ccd6b 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -776,7 +776,6 @@ ALL_TARGET_OBS = \
solib-darwin.o \
solib-dsbt.o \
solib-frv.o \
- solib-spu.o \
solib-svr4.o \
sparc-linux-tdep.o \
sparc-nbsd-tdep.o \
@@ -784,8 +783,6 @@ ALL_TARGET_OBS = \
sparc-ravenscar-thread.o \
sparc-sol2-tdep.o \
sparc-tdep.o \
- spu-multiarch.o \
- spu-tdep.o \
symfile-mem.o \
tic6x-linux-tdep.o \
tic6x-tdep.o \
@@ -1382,7 +1379,6 @@ HFILES_NO_SRCDIR = \
solib.h \
solib-aix.h \
solib-darwin.h \
- solib-spu.h \
solib-svr4.h \
solib-target.h \
solist.h \
@@ -1392,7 +1388,6 @@ HFILES_NO_SRCDIR = \
sparc-ravenscar-thread.h \
sparc-tdep.h \
sparc64-tdep.h \
- spu-tdep.h \
stabsread.h \
stack.h \
stap-probe.h \
@@ -2304,7 +2299,6 @@ ALLDEPFILES = \
sh-tdep.c \
sol2-tdep.c \
solib-aix.c \
- solib-spu.c \
solib-svr4.c \
sparc-linux-nat.c \
sparc-linux-tdep.c \
@@ -2327,9 +2321,6 @@ ALLDEPFILES = \
sparc64-obsd-tdep.c \
sparc64-sol2-tdep.c \
sparc64-tdep.c \
- spu-linux-nat.c \
- spu-multiarch.c \
- spu-tdep.c \
tilegx-linux-nat.c \
tilegx-linux-tdep.c \
tilegx-tdep.c \
diff --git a/gdb/NEWS b/gdb/NEWS
index 201701bac3..35b48d9cb3 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -330,6 +330,12 @@ focus, winheight, +, -, >, <
from .inputrc to bind keys in this keymap. This feature is only
available when gdb is built against GNU readline 8.0 or later.
+* Removed targets and native configurations
+
+ GDB no longer supports debugging the Cell Broadband Engine. This includes
+ both debugging standalone Cell/B.E. SPU applications and integrated debugging
+ of Cell/B.E. applications that use both the PPU and SPU architectures.
+
*** Changes in GDB 8.3
* GDB and GDBserver now support access to additional registers on
diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c
index 8af30e3cd4..20b3580746 100644
--- a/gdb/arch/ppc-linux-common.c
+++ b/gdb/arch/ppc-linux-common.c
@@ -50,9 +50,7 @@ ppc_linux_match_description (struct ppc_linux_features features)
if (features.wordsize == 8)
{
- if (features.cell)
- tdesc = tdesc_powerpc_cell64l;
- else if (features.vsx)
+ if (features.vsx)
tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx64l
: features.isa207? tdesc_powerpc_isa207_vsx64l
: features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx64l
@@ -69,9 +67,7 @@ ppc_linux_match_description (struct ppc_linux_features features)
{
gdb_assert (features.wordsize == 4);
- if (features.cell)
- tdesc = tdesc_powerpc_cell32l;
- else if (features.vsx)
+ if (features.vsx)
tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx32l
: features.isa207? tdesc_powerpc_isa207_vsx32l
: features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx32l
diff --git a/gdb/arch/ppc-linux-common.h b/gdb/arch/ppc-linux-common.h
index fe332accdc..1f91ff0576 100644
--- a/gdb/arch/ppc-linux-common.h
+++ b/gdb/arch/ppc-linux-common.h
@@ -58,7 +58,6 @@ struct ppc_linux_features
bool ppr_dscr;
bool isa207;
bool htm;
- bool cell;
};
/* Base value for ppc_linux_features variables. */
@@ -70,7 +69,6 @@ const struct ppc_linux_features ppc_linux_no_features = {
false,
false,
false,
- false,
};
/* Return a target description that matches FEATURES. */
diff --git a/gdb/arch/ppc-linux-tdesc.h b/gdb/arch/ppc-linux-tdesc.h
index 5c9242f7dc..5014131b6e 100644
--- a/gdb/arch/ppc-linux-tdesc.h
+++ b/gdb/arch/ppc-linux-tdesc.h
@@ -24,7 +24,6 @@ struct target_desc;
extern struct target_desc *tdesc_powerpc_32l;
extern struct target_desc *tdesc_powerpc_altivec32l;
-extern struct target_desc *tdesc_powerpc_cell32l;
extern struct target_desc *tdesc_powerpc_vsx32l;
extern struct target_desc *tdesc_powerpc_isa205_32l;
extern struct target_desc *tdesc_powerpc_isa205_altivec32l;
@@ -36,7 +35,6 @@ extern struct target_desc *tdesc_powerpc_e500l;
extern struct target_desc *tdesc_powerpc_64l;
extern struct target_desc *tdesc_powerpc_altivec64l;
-extern struct target_desc *tdesc_powerpc_cell64l;
extern struct target_desc *tdesc_powerpc_vsx64l;
extern struct target_desc *tdesc_powerpc_isa205_64l;
extern struct target_desc *tdesc_powerpc_isa205_altivec64l;
diff --git a/gdb/config/djgpp/fnchange.lst b/gdb/config/djgpp/fnchange.lst
index 12fb082b66..7608218dbc 100644
--- a/gdb/config/djgpp/fnchange.lst
+++ b/gdb/config/djgpp/fnchange.lst
@@ -199,8 +199,6 @@
@V@/gdb/features/rs6000/powerpc-vsx32l.c @V@/gdb/features/rs6000/ppc-v32l.c
@V@/gdb/features/rs6000/powerpc-vsx64.c @V@/gdb/features/rs6000/ppc-v64.c
@V@/gdb/features/rs6000/powerpc-vsx64l.c @V@/gdb/features/rs6000/ppc-v64l.c
-@V@/gdb/features/rs6000/powerpc-cell32l.c @V@/gdb/features/rs6000/ppc-c32l.c
-@V@/gdb/features/rs6000/powerpc-cell64l.c @V@/gdb/features/rs6000/ppc-c64l.c
@V@/gdb/features/rs6000/powerpc-32.xml @V@/gdb/features/rs6000/ppc-32.xml
@V@/gdb/features/rs6000/powerpc-32l.xml @V@/gdb/features/rs6000/ppc-32l.xml
@V@/gdb/features/rs6000/powerpc-403.xml @V@/gdb/features/rs6000/ppc-403.xml
@@ -231,8 +229,6 @@
@V@/gdb/features/rs6000/powerpc-vsx32l.xml @V@/gdb/features/rs6000/ppc-v32l.xml
@V@/gdb/features/rs6000/powerpc-vsx64.xml @V@/gdb/features/rs6000/ppc-v64.xml
@V@/gdb/features/rs6000/powerpc-vsx64l.xml @V@/gdb/features/rs6000/ppc-v64l.xml
-@V@/gdb/features/rs6000/powerpc-cell32l.xml @V@/gdb/features/rs6000/ppc-c32l.xml
-@V@/gdb/features/rs6000/powerpc-cell64l.xml @V@/gdb/features/rs6000/ppc-c64l.xml
@V@/gdb/features/i386/amd64-avx-linux.c @V@/gdb/features/i386/a64-al.c
@V@/gdb/features/i386/amd64-avx.c @V@/gdb/features/i386/a64-a.c
@V@/gdb/features/i386/amd64-avx-linux.xml @V@/gdb/features/i386/a64-al.xml
@@ -356,8 +352,6 @@
@V@/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat @V@/gdb/regformats/rs6000/ppciv64l.dat
@V@/gdb/regformats/rs6000/powerpc-vsx32l.dat @V@/gdb/regformats/rs6000/ppc-v32l.dat
@V@/gdb/regformats/rs6000/powerpc-vsx64l.dat @V@/gdb/regformats/rs6000/ppc-v64l.dat
-@V@/gdb/regformats/rs6000/powerpc-cell32l.dat @V@/gdb/regformats/rs6000/ppc-c32l.dat
-@V@/gdb/regformats/rs6000/powerpc-cell64l.dat @V@/gdb/regformats/rs6000/ppc-c64l.dat
@V@/gdb/regformats/tic6x-c62x.dat @V@/gdb/regformats/c6x-62x.dat
@V@/gdb/regformats/tic6x-c64x.dat @V@/gdb/regformats/c6x-64x.dat
@V@/gdb/regformats/tic6x-c64xp.dat @V@/gdb/regformats/c6xc64xp.dat
@@ -452,9 +446,6 @@
@V@/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp @V@/gdb/testsuite/gdb.base/wpcondg.exp
@V@/gdb/testsuite/gdb.base/watchpoint-cond-gone.c @V@/gdb/testsuite/gdb.base/wpcondg.c
@V@/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c @V@/gdb/testsuite/gdb.base/wpcondgs.c
-@V@/gdb/testsuite/gdb.cell/coremaker-spu.c @V@/gdb/testsuite/gdb.cell/core-spu.c
-@V@/gdb/testsuite/gdb.cell/ea-cache-spu.c @V@/gdb/testsuite/gdb.cell/ea-spu.c
-@V@/gdb/testsuite/gdb.cell/mem-access-spu.c @V@/gdb/testsuite/gdb.cell/mem-spu.c
@V@/gdb/testsuite/gdb.cp/m-static1.cc @V@/gdb/testsuite/gdb.cp/m-stat1.cc
@V@/gdb/testsuite/gdb.cp/namespace1.cc @V@/gdb/testsuite/gdb.cp/namesp1.cc
@V@/gdb/testsuite/gdb.cp/namespace-nested-import.cc @V@/gdb/testsuite/gdb.cp/nnested.cc
diff --git a/gdb/configure.host b/gdb/configure.host
index c87f997abc..f382cad1a8 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
@@ -140,13 +140,7 @@ powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
gdb_host=nbsd ;;
powerpc-*-openbsd*) gdb_host=obsd ;;
-powerpc64*-*-linux*) gdb_host=ppc64-linux
- # Support 'pseudo-native' debugging on the Cell BE
- if test "${target_cpu}" = "spu"; then
- gdb_host=spu-linux
- gdb_native=yes
- fi
- ;;
+powerpc64*-*-linux*) gdb_host=ppc64-linux ;;
powerpc*-*-linux*) gdb_host=linux ;;
riscv*-*-freebsd*) gdb_host=fbsd ;;
diff --git a/gdb/configure.nat b/gdb/configure.nat
index 64ee101d83..77a2ee8083 100644
--- a/gdb/configure.nat
+++ b/gdb/configure.nat
@@ -484,21 +484,4 @@ case ${gdb_host} in
;;
esac
;;
- spu-linux)
- case ${gdb_host_cpu} in
- powerpc)
- # Target: Cell BE (PowerPC64 + SPU)
- # This implements a 'pseudo-native' GDB running on the
- # PPU side of the Cell BE and debugging the SPU side.
- NAT_FILE=
- NAT_CDEPS=
- LOADLIBES=
- NATDEPFILES='spu-linux-nat.o \
- inf-ptrace.o fork-child.o nat/fork-inferior.o \
- nat/linux-procfs.o nat/linux-ptrace.o \
- nat/linux-waitpid.o \
- nat/linux-personality.o nat/linux-namespaces.o'
- ;;
- esac
- ;;
esac
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 7c0215e89a..2edfe3bfb5 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -514,8 +514,7 @@ powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
powerpc*-*-linux*)
# Target: PowerPC running Linux
gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
- ppc64-tdep.o solib-svr4.o solib-spu.o \
- spu-multiarch.o \
+ ppc64-tdep.o solib-svr4.o \
glibc-tdep.o symfile-mem.o linux-tdep.o \
ravenscar-thread.o ppc-ravenscar-thread.o \
linux-record.o \
@@ -668,12 +667,6 @@ sparc64-*-*)
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
-spu*-*-*)
- # Target: Cell BE SPU
- gdb_target_obs="spu-tdep.o"
- build_gdbserver=yes
- ;;
-
s12z-*-*)
# Target: Freescale S12z
gdb_target_obs="s12z-tdep.o"
diff --git a/gdb/corelow.c b/gdb/corelow.c
index b30b91b522..cea9210a52 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -709,36 +709,6 @@ core_target::files_info ()
print_section_info (&m_core_section_table, core_bfd);
}
\f
-struct spuid_list
-{
- gdb_byte *buf;
- ULONGEST offset;
- LONGEST len;
- ULONGEST pos;
- ULONGEST written;
-};
-
-static void
-add_to_spuid_list (bfd *abfd, asection *asect, void *list_p)
-{
- struct spuid_list *list = (struct spuid_list *) list_p;
- enum bfd_endian byte_order
- = bfd_big_endian (abfd) ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
- int fd, pos = 0;
-
- sscanf (bfd_section_name (asect), "SPU/%d/regs%n", &fd, &pos);
- if (pos == 0)
- return;
-
- if (list->pos >= list->offset && list->pos + 4 <= list->offset + list->len)
- {
- store_unsigned_integer (list->buf + list->pos - list->offset,
- 4, byte_order, fd);
- list->written += 4;
- }
- list->pos += 4;
-}
-
enum target_xfer_status
core_target::xfer_partial (enum target_object object, const char *annex,
gdb_byte *readbuf, const gdb_byte *writebuf,
@@ -865,64 +835,6 @@ core_target::xfer_partial (enum target_object object, const char *annex,
}
/* FALL THROUGH */
- case TARGET_OBJECT_SPU:
- if (readbuf && annex)
- {
- /* When the SPU contexts are stored in a core file, BFD
- represents this with a fake section called
- "SPU/<annex>". */
-
- struct bfd_section *section;
- bfd_size_type size;
- char sectionstr[100];
-
- xsnprintf (sectionstr, sizeof sectionstr, "SPU/%s", annex);
-
- section = bfd_get_section_by_name (core_bfd, sectionstr);
- if (section == NULL)
- return TARGET_XFER_E_IO;
-
- size = bfd_section_size (section);
- if (offset >= size)
- return TARGET_XFER_EOF;
- size -= offset;
- if (size > len)
- size = len;
-
- if (size == 0)
- return TARGET_XFER_EOF;
- if (!bfd_get_section_contents (core_bfd, section, readbuf,
- (file_ptr) offset, size))
- {
- warning (_("Couldn't read SPU section in core file."));
- return TARGET_XFER_E_IO;
- }
-
- *xfered_len = (ULONGEST) size;
- return TARGET_XFER_OK;
- }
- else if (readbuf)
- {
- /* NULL annex requests list of all present spuids. */
- struct spuid_list list;
-
- list.buf = readbuf;
- list.offset = offset;
- list.len = len;
- list.pos = 0;
- list.written = 0;
- bfd_map_over_sections (core_bfd, add_to_spuid_list, &list);
-
- if (list.written == 0)
- return TARGET_XFER_EOF;
- else
- {
- *xfered_len = (ULONGEST) list.written;
- return TARGET_XFER_OK;
- }
- }
- return TARGET_XFER_E_IO;
-
case TARGET_OBJECT_SIGNAL_INFO:
if (readbuf)
{
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 8eaaab3ae1..0a10fa3fad 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * doc/gdb.texinfo (Remote Configuration): Remove documentation for
+ qXfer:spu:read and qXfer:spu:write.
+ (General Query Packets): Likewise.
+ (Cell Broadband Engine SPU architecture): Remove subsection.
+
2019-09-18 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Editing): Document readline application name.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index a129ea0aa1..f2713c0396 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22563,14 +22563,6 @@ are:
@tab @code{qXfer:sdata:read}
@tab @code{print $_sdata}
-@item @code{read-spu-object}
-@tab @code{qXfer:spu:read}
-@tab @code{info spu}
-
-@item @code{write-spu-object}
-@tab @code{qXfer:spu:write}
-@tab @code{info spu}
-
@item @code{read-siginfo-object}
@tab @code{qXfer:siginfo:read}
@tab @code{print $_siginfo}
@@ -24438,7 +24430,6 @@ all uses of @value{GDBN} with the architecture, both native and cross.
* Alpha::
* MIPS::
* HPPA:: HP PA architecture
-* SPU:: Cell Broadband Engine SPU architecture
* PowerPC::
* Nios II::
* Sparc64::
@@ -24753,69 +24744,6 @@ given @var{address}.
@end table
-@node SPU
-@subsection Cell Broadband Engine SPU architecture
-@cindex Cell Broadband Engine
-@cindex SPU
-
-When @value{GDBN} is debugging the Cell Broadband Engine SPU architecture,
-it provides the following special commands:
-
-@table @code
-@item info spu event
-@kindex info spu
-Display SPU event facility status. Shows current event mask
-and pending event status.
-
-@item info spu signal
-Display SPU signal notification facility status. Shows pending
-signal-control word and signal notification mode of both signal
-notification channels.
-
-@item info spu mailbox
-Display SPU mailbox facility status. Shows all pending entries,
-in order of processing, in each of the SPU Write Outbound,
-SPU Write Outbound Interrupt, and SPU Read Inbound mailboxes.
-
-@item info spu dma
-Display MFC DMA status. Shows all pending commands in the MFC
-DMA queue. For each entry, opcode, tag, class IDs, effective
-and local store addresses and transfer size are shown.
-
-@item info spu proxydma
-Display MFC Proxy-DMA status. Shows all pending commands in the MFC
-Proxy-DMA queue. For each entry, opcode, tag, class IDs, effective
-and local store addresses and transfer size are shown.
-
-@end table
-
-When @value{GDBN} is debugging a combined PowerPC/SPU application
-on the Cell Broadband Engine, it provides in addition the following
-special commands:
-
-@table @code
-@item set spu stop-on-load @var{arg}
-@kindex set spu
-Set whether to stop for new SPE threads. When set to @code{on}, @value{GDBN}
-will give control to the user when a new SPE thread enters its @code{main}
-function. The default is @code{off}.
-
-@item show spu stop-on-load
-@kindex show spu
-Show whether to stop for new SPE threads.
-
-@item set spu auto-flush-cache @var{arg}
-Set whether to automatically flush the software-managed cache. When set to
-@code{on}, @value{GDBN} will automatically cause the SPE software-managed
-cache to be flushed whenever SPE execution stops. This provides a consistent
-view of PowerPC memory that is accessed via the cache. If an application
-does not use the software-managed cache, this option has no effect.
-
-@item show spu auto-flush-cache
-Show whether to automatically flush the software-managed cache.
-
-@end table
-
@node PowerPC
@subsection PowerPC
@cindex PowerPC architecture
@@ -40110,16 +40038,6 @@ These are the currently defined stub features and their properties:
@tab @samp{-}
@tab Yes
-@item @samp{qXfer:spu:read}
-@tab No
-@tab @samp{-}
-@tab Yes
-
-@item @samp{qXfer:spu:write}
-@tab No
-@tab @samp{-}
-@tab Yes
-
@item @samp{qXfer:siginfo:read}
@tab No
@tab @samp{-}
@@ -40352,14 +40270,6 @@ The remote stub understands the @samp{qXfer:memory-map:read} packet
The remote stub understands the @samp{qXfer:sdata:read} packet
(@pxref{qXfer sdata read}).
-@item qXfer:spu:read
-The remote stub understands the @samp{qXfer:spu:read} packet
-(@pxref{qXfer spu read}).
-
-@item qXfer:spu:write
-The remote stub understands the @samp{qXfer:spu:write} packet
-(@pxref{qXfer spu write}).
-
@item qXfer:siginfo:read
The remote stub understands the @samp{qXfer:siginfo:read} packet
(@pxref{qXfer siginfo read}).
@@ -40805,18 +40715,6 @@ This packet is not probed by default; the remote stub must request it,
by supplying an appropriate @samp{qSupported} response
(@pxref{qSupported}).
-@item qXfer:spu:read:@var{annex}:@var{offset},@var{length}
-@anchor{qXfer spu read}
-Read contents of an @code{spufs} file on the target system. The
-annex specifies which file to read; it must be of the form
-@file{@var{id}/@var{name}}, where @var{id} specifies an SPU context ID
-in the target process, and @var{name} identifes the @code{spufs} file
-in that context to be accessed.
-
-This packet is not probed by default; the remote stub must request it,
-by supplying an appropriate @samp{qSupported} response
-(@pxref{qSupported}).
-
@item qXfer:threads:read::@var{offset},@var{length}
@anchor{qXfer threads read}
Access the list of threads on target. @xref{Thread List Format}. The
@@ -40902,17 +40800,6 @@ empty (@pxref{qXfer write}).
This packet is not probed by default; the remote stub must request it,
by supplying an appropriate @samp{qSupported} response
(@pxref{qSupported}).
-
-@item qXfer:spu:write:@var{annex}:@var{offset}:@var{data}@dots{}
-@anchor{qXfer spu write}
-Write @var{data} to an @code{spufs} file on the target system. The
-annex specifies which file to write; it must be of the form
-@file{@var{id}/@var{name}}, where @var{id} specifies an SPU context ID
-in the target process, and @var{name} identifes the @code{spufs} file
-in that context to be accessed.
-
-This packet is not probed by default; the remote stub must request it,
-by supplying an appropriate @samp{qSupported} response (@pxref{qSupported}).
@end table
@item qXfer:@var{object}:@var{operation}:@dots{}
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 2b65d46df0..52318d4c06 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -53,7 +53,7 @@ WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \
rs6000/powerpc-32 \
rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
rs6000/powerpc-64l rs6000/powerpc-altivec64l rs6000/powerpc-vsx32l \
- rs6000/powerpc-vsx64l rs6000/powerpc-cell32l rs6000/powerpc-cell64l \
+ rs6000/powerpc-vsx64l \
rs6000/powerpc-isa205-32l rs6000/powerpc-isa205-64l \
rs6000/powerpc-isa205-altivec32l rs6000/powerpc-isa205-altivec64l \
rs6000/powerpc-isa205-vsx32l rs6000/powerpc-isa205-vsx64l \
@@ -84,8 +84,6 @@ microblaze-expedite = r1,rpc
nios2-linux-expedite = sp,pc
or1k-expedite = r1,npc
powerpc-expedite = r1,pc
-rs6000/powerpc-cell32l-expedite = r1,pc,r0,orig_r3,r4
-rs6000/powerpc-cell64l-expedite = r1,pc,r0,orig_r3,r4
s390-linux32-expedite = r14,r15,pswa
s390-linux32v1-expedite = r14,r15,pswa
s390-linux32v2-expedite = r14,r15,pswa
@@ -140,8 +138,6 @@ XMLTOC = \
rs6000/powerpc-altivec32l.xml \
rs6000/powerpc-altivec64.xml \
rs6000/powerpc-altivec64l.xml \
- rs6000/powerpc-cell32l.xml \
- rs6000/powerpc-cell64l.xml \
rs6000/powerpc-e500.xml \
rs6000/powerpc-e500l.xml \
rs6000/powerpc-isa205-32l.xml \
diff --git a/gdb/features/rs6000/powerpc-cell32l.c b/gdb/features/rs6000/powerpc-cell32l.c
deleted file mode 100644
index 74c42f94bc..0000000000
--- a/gdb/features/rs6000/powerpc-cell32l.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
- Original: powerpc-cell32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_cell32l;
-static void
-initialize_tdesc_powerpc_cell32l (void)
-{
- struct target_desc *result = allocate_target_description ();
- set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
- tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
-
- struct tdesc_feature *feature;
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
- tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
- tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
- tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
- tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
- tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
- tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
- tdesc_type *element_type;
- element_type = tdesc_named_type (feature, "ieee_single");
- tdesc_create_vector (feature, "v4f", element_type, 4);
-
- element_type = tdesc_named_type (feature, "int32");
- tdesc_create_vector (feature, "v4i32", element_type, 4);
-
- element_type = tdesc_named_type (feature, "int16");
- tdesc_create_vector (feature, "v8i16", element_type, 8);
-
- element_type = tdesc_named_type (feature, "int8");
- tdesc_create_vector (feature, "v16i8", element_type, 16);
-
- tdesc_type_with_fields *type_with_fields;
- type_with_fields = tdesc_create_union (feature, "vec128");
- tdesc_type *field_type;
- field_type = tdesc_named_type (feature, "uint128");
- tdesc_add_field (type_with_fields, "uint128", field_type);
- field_type = tdesc_named_type (feature, "v4f");
- tdesc_add_field (type_with_fields, "v4_float", field_type);
- field_type = tdesc_named_type (feature, "v4i32");
- tdesc_add_field (type_with_fields, "v4_int32", field_type);
- field_type = tdesc_named_type (feature, "v8i16");
- tdesc_add_field (type_with_fields, "v8_int16", field_type);
- field_type = tdesc_named_type (feature, "v16i8");
- tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
- tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
- tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
- tdesc_powerpc_cell32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-cell32l.xml b/gdb/features/rs6000/powerpc-cell32l.xml
deleted file mode 100644
index 57b4806947..0000000000
--- a/gdb/features/rs6000/powerpc-cell32l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved. -->
-
-<!-- Cell/B.E. architecture. Identical to the PowerPC 32-bit Linux UISA,
- but adds support for the SPU as compatible architecture. -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
- <architecture>powerpc:common</architecture>
- <compatible>spu</compatible>
- <xi:include href="power-core.xml"/>
- <xi:include href="power-fpu.xml"/>
- <xi:include href="power-linux.xml"/>
- <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-cell64l.c b/gdb/features/rs6000/powerpc-cell64l.c
deleted file mode 100644
index cbfda4c50a..0000000000
--- a/gdb/features/rs6000/powerpc-cell64l.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
- Original: powerpc-cell64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_cell64l;
-static void
-initialize_tdesc_powerpc_cell64l (void)
-{
- struct target_desc *result = allocate_target_description ();
- set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
- tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
-
- struct tdesc_feature *feature;
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
- tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
- tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
- tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
- tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
- tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
- tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
- tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
- tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
- tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
- feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
- tdesc_type *element_type;
- element_type = tdesc_named_type (feature, "ieee_single");
- tdesc_create_vector (feature, "v4f", element_type, 4);
-
- element_type = tdesc_named_type (feature, "int32");
- tdesc_create_vector (feature, "v4i32", element_type, 4);
-
- element_type = tdesc_named_type (feature, "int16");
- tdesc_create_vector (feature, "v8i16", element_type, 8);
-
- element_type = tdesc_named_type (feature, "int8");
- tdesc_create_vector (feature, "v16i8", element_type, 16);
-
- tdesc_type_with_fields *type_with_fields;
- type_with_fields = tdesc_create_union (feature, "vec128");
- tdesc_type *field_type;
- field_type = tdesc_named_type (feature, "uint128");
- tdesc_add_field (type_with_fields, "uint128", field_type);
- field_type = tdesc_named_type (feature, "v4f");
- tdesc_add_field (type_with_fields, "v4_float", field_type);
- field_type = tdesc_named_type (feature, "v4i32");
- tdesc_add_field (type_with_fields, "v4_int32", field_type);
- field_type = tdesc_named_type (feature, "v8i16");
- tdesc_add_field (type_with_fields, "v8_int16", field_type);
- field_type = tdesc_named_type (feature, "v16i8");
- tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
- tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
- tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
- tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
- tdesc_powerpc_cell64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-cell64l.xml b/gdb/features/rs6000/powerpc-cell64l.xml
deleted file mode 100644
index c2add44b45..0000000000
--- a/gdb/features/rs6000/powerpc-cell64l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved. -->
-
-<!-- Cell/B.E. architecture. Identical to the PowerPC 64-bit Linux UISA,
- but adds support for the SPU as compatible architecture. -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
- <architecture>powerpc:common64</architecture>
- <compatible>spu</compatible>
- <xi:include href="power64-core.xml"/>
- <xi:include href="power-fpu.xml"/>
- <xi:include href="power64-linux.xml"/>
- <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index faafdfd967..5c76167014 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,43 @@
+2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
+ and powerpc-cell64l-ipa.o.
+ (powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o
+ from srv_regobj. Remove rs6000/powerpc-cell32l.xml and
+ rs6000/powerpc-cell64l.xml from srv_xmlfiles.
+ (spu*-*-*): Remove.
+
+ * spu-low.c: Remove file.
+
+ * linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove.
+ (parse_spufs_run): Remove.
+ (ppc_get_pc): Remove Cell/B.E. support.
+ (ppc_set_pc): Likewise.
+ (ppc_breakpoint_at): Likewise.
+ (ppc_arch_setup): Likewise.
+ (ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or
+ tdesc_powerpc_cell32l.
+ (initialize_low_arch): Do not call init_registers_powerpc_cell64l
+ or init_registers_powerpc_cell32l.
+ * linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL.
+ (initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l
+ or init_registers_powerpc_cell32l.
+ * linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused.
+ (init_registers_powerpc_cell32l): Remove prototype.
+ (init_registers_powerpc_cell64l): Likewise.
+
+ * target.h (struct target_ops): Remove qxfer_spu member.
+ * server.c (handle_qxfer_spu): Remove.
+ (qxfer_packets): Remove entry for "spu".
+ (handle_query): No longer support qXfer:spu:read or qXfer:spu:write.
+ * linux-low.c (SPUFS_MAGIC): Remove.
+ (spu_enumerate_spu_ids): Remove.
+ (linux_qxfer_spu): Remove.
+ (linux_target_ops): Remove qxfer_spu member.
+ * lynx-low.c (lynx_target_ops): Remove qxfer_spu member.
+ * nto-low.c (nto_target_ops): Remove qxfer_spu member.
+ * win32-low.c (win32_target_ops): Remove qxfer_spu member.
+
2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index 66d3d426ac..1a4ab8e336 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -24,7 +24,7 @@
# Default hostio_last_error implementation
srv_hostio_err_objs="hostio-errno.o"
-ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
+ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
# Linux object files. This is so we don't have to repeat
# these files over and over again.
@@ -186,7 +186,6 @@ case "${target}" in
;;
powerpc*-*-linux*) srv_regobj="powerpc-32l.o"
srv_regobj="${srv_regobj} powerpc-altivec32l.o"
- srv_regobj="${srv_regobj} powerpc-cell32l.o"
srv_regobj="${srv_regobj} powerpc-vsx32l.o"
srv_regobj="${srv_regobj} powerpc-isa205-32l.o"
srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o"
@@ -197,7 +196,6 @@ case "${target}" in
srv_regobj="${srv_regobj} powerpc-e500l.o"
srv_regobj="${srv_regobj} powerpc-64l.o"
srv_regobj="${srv_regobj} powerpc-altivec64l.o"
- srv_regobj="${srv_regobj} powerpc-cell64l.o"
srv_regobj="${srv_regobj} powerpc-vsx64l.o"
srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
@@ -209,7 +207,6 @@ case "${target}" in
srv_tgtobj="${srv_tgtobj} arch/ppc-linux-common.o"
srv_xmlfiles="rs6000/powerpc-32l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
- srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml"
@@ -240,7 +237,6 @@ case "${target}" in
srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml"
- srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell64l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml"
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml"
@@ -340,9 +336,6 @@ case "${target}" in
srv_linux_regsets=yes
srv_linux_thread_db=yes
;;
- spu*-*-*) srv_regobj=reg-spu.o
- srv_tgtobj="spu-low.o fork-child.o fork-inferior.o"
- ;;
tic6x-*-uclinux) if $development; then
srv_regobj="tic6x-c64xp-linux.o"
srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 3113017ae6..d64c3641ff 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -60,10 +60,6 @@
#endif
#include "nat/linux-namespaces.h"
-#ifndef SPUFS_MAGIC
-#define SPUFS_MAGIC 0x23c9b64e
-#endif
-
#ifdef HAVE_PERSONALITY
# include <sys/personality.h>
# if !HAVE_DECL_ADDR_NO_RANDOMIZE
@@ -6358,99 +6354,6 @@ linux_supports_range_stepping (void)
return (*the_low_target.supports_range_stepping) ();
}
-/* Enumerate spufs IDs for process PID. */
-static int
-spu_enumerate_spu_ids (long pid, unsigned char *buf, CORE_ADDR offset, int len)
-{
- int pos = 0;
- int written = 0;
- char path[128];
- DIR *dir;
- struct dirent *entry;
-
- sprintf (path, "/proc/%ld/fd", pid);
- dir = opendir (path);
- if (!dir)
- return -1;
-
- rewinddir (dir);
- while ((entry = readdir (dir)) != NULL)
- {
- struct stat st;
- struct statfs stfs;
- int fd;
-
- fd = atoi (entry->d_name);
- if (!fd)
- continue;
-
- sprintf (path, "/proc/%ld/fd/%d", pid, fd);
- if (stat (path, &st) != 0)
- continue;
- if (!S_ISDIR (st.st_mode))
- continue;
-
- if (statfs (path, &stfs) != 0)
- continue;
- if (stfs.f_type != SPUFS_MAGIC)
- continue;
-
- if (pos >= offset && pos + 4 <= offset + len)
- {
- *(unsigned int *)(buf + pos - offset) = fd;
- written += 4;
- }
- pos += 4;
- }
-
- closedir (dir);
- return written;
-}
-
-/* Implements the to_xfer_partial interface for the TARGET_OBJECT_SPU
- object type, using the /proc file system. */
-static int
-linux_qxfer_spu (const char *annex, unsigned char *readbuf,
- unsigned const char *writebuf,
- CORE_ADDR offset, int len)
-{
- long pid = lwpid_of (current_thread);
- char buf[128];
- int fd = 0;
- int ret = 0;
-
- if (!writebuf && !readbuf)
- return -1;
-
- if (!*annex)
- {
- if (!readbuf)
- return -1;
- else
- return spu_enumerate_spu_ids (pid, readbuf, offset, len);
- }
-
- sprintf (buf, "/proc/%ld/fd/%s", pid, annex);
- fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
- if (fd <= 0)
- return -1;
-
- if (offset != 0
- && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
- {
- close (fd);
- return 0;
- }
-
- if (writebuf)
- ret = write (fd, writebuf, (size_t) len);
- else
- ret = read (fd, readbuf, (size_t) len);
-
- close (fd);
- return ret;
-}
-
#if defined PT_GETDSBT || defined PTRACE_GETFDPIC
struct target_loadseg
{
@@ -7496,7 +7399,6 @@ static struct target_ops linux_target_ops = {
#else
NULL,
#endif
- linux_qxfer_spu,
hostio_last_error_from_errno,
linux_qxfer_osdata,
linux_xfer_siginfo,
diff --git a/gdb/gdbserver/linux-ppc-ipa.c b/gdb/gdbserver/linux-ppc-ipa.c
index 08adc52ce4..f9df02236a 100644
--- a/gdb/gdbserver/linux-ppc-ipa.c
+++ b/gdb/gdbserver/linux-ppc-ipa.c
@@ -181,8 +181,6 @@ get_ipa_tdesc (int idx)
return tdesc_powerpc_64l;
case PPC_TDESC_ALTIVEC:
return tdesc_powerpc_altivec64l;
- case PPC_TDESC_CELL:
- return tdesc_powerpc_cell64l;
case PPC_TDESC_VSX:
return tdesc_powerpc_vsx64l;
case PPC_TDESC_ISA205:
@@ -202,8 +200,6 @@ get_ipa_tdesc (int idx)
return tdesc_powerpc_32l;
case PPC_TDESC_ALTIVEC:
return tdesc_powerpc_altivec32l;
- case PPC_TDESC_CELL:
- return tdesc_powerpc_cell32l;
case PPC_TDESC_VSX:
return tdesc_powerpc_vsx32l;
case PPC_TDESC_ISA205:
@@ -241,7 +237,6 @@ initialize_low_tracepoint (void)
#ifdef __powerpc64__
init_registers_powerpc_64l ();
init_registers_powerpc_altivec64l ();
- init_registers_powerpc_cell64l ();
init_registers_powerpc_vsx64l ();
init_registers_powerpc_isa205_64l ();
init_registers_powerpc_isa205_altivec64l ();
@@ -252,7 +247,6 @@ initialize_low_tracepoint (void)
#else
init_registers_powerpc_32l ();
init_registers_powerpc_altivec32l ();
- init_registers_powerpc_cell32l ();
init_registers_powerpc_vsx32l ();
init_registers_powerpc_isa205_32l ();
init_registers_powerpc_isa205_altivec32l ();
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
index 8a0965bd20..c0622825ad 100644
--- a/gdb/gdbserver/linux-ppc-low.c
+++ b/gdb/gdbserver/linux-ppc-low.c
@@ -220,73 +220,10 @@ ppc_supply_ptrace_register (struct regcache *regcache,
perror_with_name ("Unexpected byte order");
}
-
-#define INSTR_SC 0x44000002
-#define NR_spu_run 0x0116
-
-/* If the PPU thread is currently stopped on a spu_run system call,
- return to FD and ADDR the file handle and NPC parameter address
- used with the system call. Return non-zero if successful. */
-static int
-parse_spufs_run (struct regcache *regcache, int *fd, CORE_ADDR *addr)
-{
- CORE_ADDR curr_pc;
- int curr_insn;
- int curr_r0;
-
- if (register_size (regcache->tdesc, 0) == 4)
- {
- unsigned int pc, r0, r3, r4;
- collect_register_by_name (regcache, "pc", &pc);
- collect_register_by_name (regcache, "r0", &r0);
- collect_register_by_name (regcache, "orig_r3", &r3);
- collect_register_by_name (regcache, "r4", &r4);
- curr_pc = (CORE_ADDR) pc;
- curr_r0 = (int) r0;
- *fd = (int) r3;
- *addr = (CORE_ADDR) r4;
- }
- else
- {
- unsigned long pc, r0, r3, r4;
- collect_register_by_name (regcache, "pc", &pc);
- collect_register_by_name (regcache, "r0", &r0);
- collect_register_by_name (regcache, "orig_r3", &r3);
- collect_register_by_name (regcache, "r4", &r4);
- curr_pc = (CORE_ADDR) pc;
- curr_r0 = (int) r0;
- *fd = (int) r3;
- *addr = (CORE_ADDR) r4;
- }
-
- /* Fetch instruction preceding current NIP. */
- if ((*the_target->read_memory) (curr_pc - 4,
- (unsigned char *) &curr_insn, 4) != 0)
- return 0;
- /* It should be a "sc" instruction. */
- if (curr_insn != INSTR_SC)
- return 0;
- /* System call number should be NR_spu_run. */
- if (curr_r0 != NR_spu_run)
- return 0;
-
- return 1;
-}
-
static CORE_ADDR
ppc_get_pc (struct regcache *regcache)
{
- CORE_ADDR addr;
- int fd;
-
- if (parse_spufs_run (regcache, &fd, &addr))
- {
- unsigned int pc;
- (*the_target->read_memory) (addr, (unsigned char *) &pc, 4);
- return ((CORE_ADDR)1 << 63)
- | ((CORE_ADDR)fd << 32) | (CORE_ADDR) (pc - 4);
- }
- else if (register_size (regcache->tdesc, 0) == 4)
+ if (register_size (regcache->tdesc, 0) == 4)
{
unsigned int pc;
collect_register_by_name (regcache, "pc", &pc);
@@ -303,15 +240,7 @@ ppc_get_pc (struct regcache *regcache)
static void
ppc_set_pc (struct regcache *regcache, CORE_ADDR pc)
{
- CORE_ADDR addr;
- int fd;
-
- if (parse_spufs_run (regcache, &fd, &addr))
- {
- unsigned int newpc = pc;
- (*the_target->write_memory) (addr, (unsigned char *) &newpc, 4);
- }
- else if (register_size (regcache->tdesc, 0) == 4)
+ if (register_size (regcache->tdesc, 0) == 4)
{
unsigned int newpc = pc;
supply_register_by_name (regcache, "pc", &newpc);
@@ -348,23 +277,11 @@ ppc_breakpoint_at (CORE_ADDR where)
{
unsigned int insn;
- if (where & ((CORE_ADDR)1 << 63))
- {
- char mem_annex[32];
- sprintf (mem_annex, "%d/mem", (int)((where >> 32) & 0x7fffffff));
- (*the_target->qxfer_spu) (mem_annex, (unsigned char *) &insn,
- NULL, where & 0xffffffff, 4);
- if (insn == 0x3fff)
- return 1;
- }
- else
- {
- (*the_target->read_memory) (where, (unsigned char *) &insn, 4);
- if (insn == ppc_breakpoint)
- return 1;
- /* If necessary, recognize more trap instructions here. GDB only uses
- the one. */
- }
+ (*the_target->read_memory) (where, (unsigned char *) &insn, 4);
+ if (insn == ppc_breakpoint)
+ return 1;
+ /* If necessary, recognize more trap instructions here. GDB only uses
+ the one. */
return 0;
}
@@ -941,9 +858,6 @@ ppc_arch_setup (void)
}
}
- if (ppc_hwcap & PPC_FEATURE_CELL)
- features.cell = true;
-
tdesc = ppc_linux_match_description (features);
/* On 32-bit machines, check for SPE registers.
@@ -3416,8 +3330,6 @@ ppc_get_ipa_tdesc_idx (void)
return PPC_TDESC_BASE;
if (tdesc == tdesc_powerpc_altivec64l)
return PPC_TDESC_ALTIVEC;
- if (tdesc == tdesc_powerpc_cell64l)
- return PPC_TDESC_CELL;
if (tdesc == tdesc_powerpc_vsx64l)
return PPC_TDESC_VSX;
if (tdesc == tdesc_powerpc_isa205_64l)
@@ -3438,8 +3350,6 @@ ppc_get_ipa_tdesc_idx (void)
return PPC_TDESC_BASE;
if (tdesc == tdesc_powerpc_altivec32l)
return PPC_TDESC_ALTIVEC;
- if (tdesc == tdesc_powerpc_cell32l)
- return PPC_TDESC_CELL;
if (tdesc == tdesc_powerpc_vsx32l)
return PPC_TDESC_VSX;
if (tdesc == tdesc_powerpc_isa205_32l)
@@ -3507,7 +3417,6 @@ initialize_low_arch (void)
init_registers_powerpc_32l ();
init_registers_powerpc_altivec32l ();
- init_registers_powerpc_cell32l ();
init_registers_powerpc_vsx32l ();
init_registers_powerpc_isa205_32l ();
init_registers_powerpc_isa205_altivec32l ();
@@ -3519,7 +3428,6 @@ initialize_low_arch (void)
#if __powerpc64__
init_registers_powerpc_64l ();
init_registers_powerpc_altivec64l ();
- init_registers_powerpc_cell64l ();
init_registers_powerpc_vsx64l ();
init_registers_powerpc_isa205_64l ();
init_registers_powerpc_isa205_altivec64l ();
diff --git a/gdb/gdbserver/linux-ppc-tdesc-init.h b/gdb/gdbserver/linux-ppc-tdesc-init.h
index 4f9a7c5009..299b3ce363 100644
--- a/gdb/gdbserver/linux-ppc-tdesc-init.h
+++ b/gdb/gdbserver/linux-ppc-tdesc-init.h
@@ -27,7 +27,7 @@
enum ppc_linux_tdesc {
PPC_TDESC_BASE,
PPC_TDESC_ALTIVEC,
- PPC_TDESC_CELL,
+ PPC_TDESC_CELL, /* No longer used, but kept to avoid ABI changes. */
PPC_TDESC_VSX,
PPC_TDESC_ISA205,
PPC_TDESC_ISA205_ALTIVEC,
@@ -46,9 +46,6 @@ void init_registers_powerpc_32l (void);
/* Defined in auto-generated file powerpc-altivec32l.c. */
void init_registers_powerpc_altivec32l (void);
-/* Defined in auto-generated file powerpc-cell32l.c. */
-void init_registers_powerpc_cell32l (void);
-
/* Defined in auto-generated file powerpc-vsx32l.c. */
void init_registers_powerpc_vsx32l (void);
@@ -83,9 +80,6 @@ void init_registers_powerpc_64l (void);
/* Defined in auto-generated file powerpc-altivec64l.c. */
void init_registers_powerpc_altivec64l (void);
-/* Defined in auto-generated file powerpc-cell64l.c. */
-void init_registers_powerpc_cell64l (void);
-
/* Defined in auto-generated file powerpc-vsx64l.c. */
void init_registers_powerpc_vsx64l (void);
diff --git a/gdb/gdbserver/lynx-low.c b/gdb/gdbserver/lynx-low.c
index 0a8b258e87..2bd24e7cee 100644
--- a/gdb/gdbserver/lynx-low.c
+++ b/gdb/gdbserver/lynx-low.c
@@ -753,7 +753,6 @@ static struct target_ops lynx_target_ops = {
NULL, /* stopped_data_address */
NULL, /* read_offsets */
NULL, /* get_tls_address */
- NULL, /* qxfer_spu */
NULL, /* hostio_last_error */
NULL, /* qxfer_osdata */
NULL, /* qxfer_siginfo */
diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c
index 011701aa8c..3c1130680f 100644
--- a/gdb/gdbserver/nto-low.c
+++ b/gdb/gdbserver/nto-low.c
@@ -963,7 +963,6 @@ static struct target_ops nto_target_ops = {
nto_stopped_data_address,
NULL, /* nto_read_offsets */
NULL, /* thread_db_set_tls_address */
- NULL,
hostio_last_error_from_errno,
NULL, /* nto_qxfer_osdata */
NULL, /* xfer_siginfo */
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 127cd3840b..67e8e3e54d 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1613,22 +1613,6 @@ handle_qxfer_siginfo (const char *annex,
return (*the_target->qxfer_siginfo) (annex, readbuf, writebuf, offset, len);
}
-/* Handle qXfer:spu:read and qXfer:spu:write. */
-
-static int
-handle_qxfer_spu (const char *annex,
- gdb_byte *readbuf, const gdb_byte *writebuf,
- ULONGEST offset, LONGEST len)
-{
- if (the_target->qxfer_spu == NULL)
- return -2;
-
- if (current_thread == NULL)
- return -1;
-
- return (*the_target->qxfer_spu) (annex, readbuf, writebuf, offset, len);
-}
-
/* Handle qXfer:statictrace:read. */
static int
@@ -1985,7 +1969,6 @@ static const struct qxfer qxfer_packets[] =
{ "libraries-svr4", handle_qxfer_libraries_svr4 },
{ "osdata", handle_qxfer_osdata },
{ "siginfo", handle_qxfer_siginfo },
- { "spu", handle_qxfer_spu },
{ "statictrace", handle_qxfer_statictrace },
{ "threads", handle_qxfer_threads },
{ "traceframe-info", handle_qxfer_traceframe_info },
@@ -2397,9 +2380,6 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
if (the_target->read_auxv != NULL)
strcat (own_buf, ";qXfer:auxv:read+");
- if (the_target->qxfer_spu != NULL)
- strcat (own_buf, ";qXfer:spu:read+;qXfer:spu:write+");
-
if (the_target->qxfer_siginfo != NULL)
strcat (own_buf, ";qXfer:siginfo:read+;qXfer:siginfo:write+");
diff --git a/gdb/gdbserver/spu-low.c b/gdb/gdbserver/spu-low.c
deleted file mode 100644
index 4930c59d73..0000000000
--- a/gdb/gdbserver/spu-low.c
+++ /dev/null
@@ -1,732 +0,0 @@
-/* Low level interface to SPUs, for the remote server for GDB.
- Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "server.h"
-
-#include "gdbsupport/gdb_wait.h"
-#include <sys/ptrace.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-#include "gdbsupport/filestuff.h"
-#include "hostio.h"
-#include "nat/fork-inferior.h"
-
-/* Some older glibc versions do not define this. */
-#ifndef __WNOTHREAD
-#define __WNOTHREAD 0x20000000 /* Don't wait on children of other
- threads in this group */
-#endif
-
-#define PTRACE_TYPE_RET long
-#define PTRACE_TYPE_ARG3 long
-
-/* Number of registers. */
-#define SPU_NUM_REGS 130
-#define SPU_NUM_CORE_REGS 128
-
-/* Special registers. */
-#define SPU_ID_REGNUM 128
-#define SPU_PC_REGNUM 129
-
-/* PPU side system calls. */
-#define INSTR_SC 0x44000002
-#define NR_spu_run 0x0116
-
-/* These are used in remote-utils.c. */
-int using_threads = 0;
-
-/* Defined in auto-generated file reg-spu.c. */
-void init_registers_spu (void);
-extern const struct target_desc *tdesc_spu;
-
-/* Software breakpoint instruction. */
-static const gdb_byte breakpoint[] = { 0x00, 0x00, 0x3f, 0xff };
-
-/* Fetch PPU register REGNO. */
-static CORE_ADDR
-fetch_ppc_register (int regno)
-{
- PTRACE_TYPE_RET res;
-
- int tid = current_ptid.lwp ();
-
-#ifndef __powerpc64__
- /* If running as a 32-bit process on a 64-bit system, we attempt
- to get the full 64-bit register content of the target process.
- If the PPC special ptrace call fails, we're on a 32-bit system;
- just fall through to the regular ptrace call in that case. */
- {
- char buf[8];
-
- errno = 0;
- ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKUSR_3264, tid,
- (PTRACE_TYPE_ARG3) (regno * 8), buf);
- if (errno == 0)
- ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKUSR_3264, tid,
- (PTRACE_TYPE_ARG3) (regno * 8 + 4), buf + 4);
- if (errno == 0)
- return (CORE_ADDR) *(unsigned long long *)buf;
- }
-#endif
-
- errno = 0;
- res = ptrace (PT_READ_U, tid,
- (PTRACE_TYPE_ARG3) (regno * sizeof (PTRACE_TYPE_RET)), 0);
- if (errno != 0)
- {
- char mess[128];
- sprintf (mess, "reading PPC register #%d", regno);
- perror_with_name (mess);
- }
-
- return (CORE_ADDR) (unsigned long) res;
-}
-
-/* Fetch WORD from PPU memory at (aligned) MEMADDR in thread TID. */
-static int
-fetch_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET *word)
-{
- errno = 0;
-
-#ifndef __powerpc64__
- if (memaddr >> 32)
- {
- unsigned long long addr_8 = (unsigned long long) memaddr;
- ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_PEEKTEXT_3264, tid,
- (PTRACE_TYPE_ARG3) &addr_8, word);
- }
- else
-#endif
- *word = ptrace (PT_READ_I, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, 0);
-
- return errno;
-}
-
-/* Store WORD into PPU memory at (aligned) MEMADDR in thread TID. */
-static int
-store_ppc_memory_1 (int tid, CORE_ADDR memaddr, PTRACE_TYPE_RET word)
-{
- errno = 0;
-
-#ifndef __powerpc64__
- if (memaddr >> 32)
- {
- unsigned long long addr_8 = (unsigned long long) memaddr;
- ptrace ((PTRACE_TYPE_ARG1) PPC_PTRACE_POKEDATA_3264, tid,
- (PTRACE_TYPE_ARG3) &addr_8, word);
- }
- else
-#endif
- ptrace (PT_WRITE_D, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, word);
-
- return errno;
-}
-
-/* Fetch LEN bytes of PPU memory at MEMADDR to MYADDR. */
-static int
-fetch_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
-{
- int i, ret;
-
- CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
- int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
- / sizeof (PTRACE_TYPE_RET));
- PTRACE_TYPE_RET *buffer;
-
- int tid = current_ptid.lwp ();
-
- buffer = XALLOCAVEC (PTRACE_TYPE_RET, count);
- for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
- if ((ret = fetch_ppc_memory_1 (tid, addr, &buffer[i])) != 0)
- return ret;
-
- memcpy (myaddr,
- (char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
- len);
-
- return 0;
-}
-
-/* Store LEN bytes from MYADDR to PPU memory at MEMADDR. */
-static int
-store_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len)
-{
- int i, ret;
-
- CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
- int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
- / sizeof (PTRACE_TYPE_RET));
- PTRACE_TYPE_RET *buffer;
-
- int tid = current_ptid.lwp ();
-
- buffer = XALLOCAVEC (PTRACE_TYPE_RET, count);
-
- if (addr != memaddr || len < (int) sizeof (PTRACE_TYPE_RET))
- if ((ret = fetch_ppc_memory_1 (tid, addr, &buffer[0])) != 0)
- return ret;
-
- if (count > 1)
- if ((ret = fetch_ppc_memory_1 (tid, addr + (count - 1)
- * sizeof (PTRACE_TYPE_RET),
- &buffer[count - 1])) != 0)
- return ret;
-
- memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
- myaddr, len);
-
- for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
- if ((ret = store_ppc_memory_1 (tid, addr, buffer[i])) != 0)
- return ret;
-
- return 0;
-}
-
-
-/* If the PPU thread is currently stopped on a spu_run system call,
- return to FD and ADDR the file handle and NPC parameter address
- used with the system call. Return non-zero if successful. */
-static int
-parse_spufs_run (int *fd, CORE_ADDR *addr)
-{
- unsigned int insn;
- CORE_ADDR pc = fetch_ppc_register (32); /* nip */
-
- /* Fetch instruction preceding current NIP. */
- if (fetch_ppc_memory (pc-4, (char *) &insn, 4) != 0)
- return 0;
- /* It should be a "sc" instruction. */
- if (insn != INSTR_SC)
- return 0;
- /* System call number should be NR_spu_run. */
- if (fetch_ppc_register (0) != NR_spu_run)
- return 0;
-
- /* Register 3 contains fd, register 4 the NPC param pointer. */
- *fd = fetch_ppc_register (34); /* orig_gpr3 */
- *addr = fetch_ppc_register (4);
- return 1;
-}
-
-
-/* Copy LEN bytes at OFFSET in spufs file ANNEX into/from READBUF or WRITEBUF,
- using the /proc file system. */
-static int
-spu_proc_xfer_spu (const char *annex, unsigned char *readbuf,
- const unsigned char *writebuf,
- CORE_ADDR offset, int len)
-{
- char buf[128];
- int fd = 0;
- int ret = -1;
-
- if (!annex)
- return 0;
-
- sprintf (buf, "/proc/%ld/fd/%s", current_ptid.lwp (), annex);
- fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
- if (fd <= 0)
- return -1;
-
- if (offset != 0
- && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
- {
- close (fd);
- return 0;
- }
-
- if (writebuf)
- ret = write (fd, writebuf, (size_t) len);
- else if (readbuf)
- ret = read (fd, readbuf, (size_t) len);
-
- close (fd);
- return ret;
-}
-
-/* Callback to be used when calling fork_inferior, responsible for
- actually initiating the tracing of the inferior. */
-
-static void
-spu_ptrace_fun ()
-{
- if (ptrace (PTRACE_TRACEME, 0, 0, 0) < 0)
- trace_start_error_with_name ("ptrace");
- if (setpgid (0, 0) < 0)
- trace_start_error_with_name ("setpgid");
-}
-
-/* Start an inferior process and returns its pid.
- PROGRAM is the name of the program to be started, and PROGRAM_ARGS
- are its arguments. */
-
-static int
-spu_create_inferior (const char *program,
- const std::vector<char *> &program_args)
-{
- int pid;
- ptid_t ptid;
- struct process_info *proc;
- std::string str_program_args = stringify_argv (program_args);
-
- pid = fork_inferior (program,
- str_program_args.c_str (),
- get_environ ()->envp (), spu_ptrace_fun,
- NULL, NULL, NULL, NULL);
-
- post_fork_inferior (pid, program);
-
- proc = add_process (pid, 0);
- proc->tdesc = tdesc_spu;
-
- ptid = ptid_t (pid, pid, 0);
- add_thread (ptid, NULL);
- return pid;
-}
-
-/* Attach to an inferior process. */
-int
-spu_attach (unsigned long pid)
-{
- ptid_t ptid;
- struct process_info *proc;
-
- if (ptrace (PTRACE_ATTACH, pid, 0, 0) != 0)
- {
- fprintf (stderr, "Cannot attach to process %ld: %s (%d)\n", pid,
- strerror (errno), errno);
- fflush (stderr);
- _exit (0177);
- }
-
- proc = add_process (pid, 1);
- proc->tdesc = tdesc_spu;
- ptid = ptid_t (pid, pid, 0);
- add_thread (ptid, NULL);
- return 0;
-}
-
-/* Kill the inferior process. */
-static int
-spu_kill (process_info *process)
-{
- int status, ret;
- int pid = process->pid;
-
- ptrace (PTRACE_KILL, pid, 0, 0);
-
- do {
- ret = waitpid (pid, &status, 0);
- if (WIFEXITED (status) || WIFSIGNALED (status))
- break;
- } while (ret != -1 || errno != ECHILD);
-
- clear_inferiors ();
- remove_process (process);
- return 0;
-}
-
-/* Detach from inferior process. */
-static int
-spu_detach (process_info *process)
-{
- ptrace (PTRACE_DETACH, process->pid, 0, 0);
-
- clear_inferiors ();
- remove_process (process);
- return 0;
-}
-
-static void
-spu_mourn (struct process_info *process)
-{
- remove_process (process);
-}
-
-static void
-spu_join (int pid)
-{
- int status, ret;
-
- do {
- ret = waitpid (pid, &status, 0);
- if (WIFEXITED (status) || WIFSIGNALED (status))
- break;
- } while (ret != -1 || errno != ECHILD);
-}
-
-/* Return nonzero if the given thread is still alive. */
-static int
-spu_thread_alive (ptid_t ptid)
-{
- return ptid == current_ptid;
-}
-
-/* Resume process. */
-static void
-spu_resume (struct thread_resume *resume_info, size_t n)
-{
- struct thread_info *thr = get_first_thread ();
- size_t i;
-
- for (i = 0; i < n; i++)
- if (resume_info[i].thread == minus_one_ptid
- || resume_info[i].thread == ptid_of (thr))
- break;
-
- if (i == n)
- return;
-
- /* We don't support hardware single-stepping right now, assume
- GDB knows to use software single-stepping. */
- if (resume_info[i].kind == resume_step)
- fprintf (stderr, "Hardware single-step not supported.\n");
-
- regcache_invalidate ();
-
- errno = 0;
- ptrace (PTRACE_CONT, ptid_of (thr).lwp (), 0, resume_info[i].sig);
- if (errno)
- perror_with_name ("ptrace");
-}
-
-/* Wait for process, returns status. */
-static ptid_t
-spu_wait (ptid_t ptid, struct target_waitstatus *ourstatus, int options)
-{
- int pid = ptid.pid ();
- int w;
- int ret;
-
- while (1)
- {
- ret = waitpid (pid, &w, WNOHANG | __WALL | __WNOTHREAD);
-
- if (ret == -1)
- {
- if (errno != ECHILD)
- perror_with_name ("waitpid");
- }
- else if (ret > 0)
- break;
-
- usleep (1000);
- }
-
- /* On the first wait, continue running the inferior until we are
- blocked inside an spu_run system call. */
- if (!server_waiting)
- {
- int fd;
- CORE_ADDR addr;
-
- while (!parse_spufs_run (&fd, &addr))
- {
- ptrace (PT_SYSCALL, pid, (PTRACE_TYPE_ARG3) 0, 0);
- waitpid (pid, NULL, __WALL | __WNOTHREAD);
- }
- }
-
- if (WIFEXITED (w))
- {
- fprintf (stderr, "\nChild exited with retcode = %x \n", WEXITSTATUS (w));
- ourstatus->kind = TARGET_WAITKIND_EXITED;
- ourstatus->value.integer = WEXITSTATUS (w);
- clear_inferiors ();
- return ptid_t (ret);
- }
- else if (!WIFSTOPPED (w))
- {
- fprintf (stderr, "\nChild terminated with signal = %x \n", WTERMSIG (w));
- ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
- ourstatus->value.sig = gdb_signal_from_host (WTERMSIG (w));
- clear_inferiors ();
- return ptid_t (ret);
- }
-
- /* After attach, we may have received a SIGSTOP. Do not return this
- as signal to GDB, or else it will try to continue with SIGSTOP ... */
- if (!server_waiting)
- {
- ourstatus->kind = TARGET_WAITKIND_STOPPED;
- ourstatus->value.sig = GDB_SIGNAL_0;
- return ptid_t (ret, ret, 0);
- }
-
- ourstatus->kind = TARGET_WAITKIND_STOPPED;
- ourstatus->value.sig = gdb_signal_from_host (WSTOPSIG (w));
- return ptid_t (ret, ret, 0);
-}
-
-/* Fetch inferior registers. */
-static void
-spu_fetch_registers (struct regcache *regcache, int regno)
-{
- int fd;
- CORE_ADDR addr;
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return;
-
- /* The ID register holds the spufs file handle. */
- if (regno == -1 || regno == SPU_ID_REGNUM)
- supply_register (regcache, SPU_ID_REGNUM, (char *)&fd);
-
- /* The NPC register is found at ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- char buf[4];
- if (fetch_ppc_memory (addr, buf, 4) == 0)
- supply_register (regcache, SPU_PC_REGNUM, buf);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_CORE_REGS))
- {
- unsigned char buf[16*SPU_NUM_CORE_REGS];
- char annex[32];
- int i;
-
- sprintf (annex, "%d/regs", fd);
- if (spu_proc_xfer_spu (annex, buf, NULL, 0, sizeof buf) == sizeof buf)
- for (i = 0; i < SPU_NUM_CORE_REGS; i++)
- supply_register (regcache, i, buf + i*16);
- }
-}
-
-/* Store inferior registers. */
-static void
-spu_store_registers (struct regcache *regcache, int regno)
-{
- int fd;
- CORE_ADDR addr;
-
- /* ??? Some callers use 0 to mean all registers. */
- if (regno == 0)
- regno = -1;
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return;
-
- /* The NPC register is found at ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- char buf[4];
- collect_register (regcache, SPU_PC_REGNUM, buf);
- store_ppc_memory (addr, buf, 4);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_CORE_REGS))
- {
- unsigned char buf[16*SPU_NUM_CORE_REGS];
- char annex[32];
- int i;
-
- for (i = 0; i < SPU_NUM_CORE_REGS; i++)
- collect_register (regcache, i, buf + i*16);
-
- sprintf (annex, "%d/regs", fd);
- spu_proc_xfer_spu (annex, NULL, buf, 0, sizeof buf);
- }
-}
-
-/* Copy LEN bytes from inferior's memory starting at MEMADDR
- to debugger memory starting at MYADDR. */
-static int
-spu_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
-{
- int fd, ret;
- CORE_ADDR addr;
- char annex[32], lslr_annex[32], buf[32];
- CORE_ADDR lslr;
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return 0;
-
- /* Use the "mem" spufs file to access SPU local store. */
- sprintf (annex, "%d/mem", fd);
- ret = spu_proc_xfer_spu (annex, myaddr, NULL, memaddr, len);
- if (ret > 0)
- return ret == len ? 0 : EIO;
-
- /* SPU local store access wraps the address around at the
- local store limit. We emulate this here. To avoid needing
- an extra access to retrieve the LSLR, we only do that after
- trying the original address first, and getting end-of-file. */
- sprintf (lslr_annex, "%d/lslr", fd);
- memset (buf, 0, sizeof buf);
- if (spu_proc_xfer_spu (lslr_annex, (unsigned char *)buf, NULL,
- 0, sizeof buf) <= 0)
- return ret;
-
- lslr = strtoul (buf, NULL, 16);
- ret = spu_proc_xfer_spu (annex, myaddr, NULL, memaddr & lslr, len);
-
- return ret == len ? 0 : EIO;
-}
-
-/* Copy LEN bytes of data from debugger memory at MYADDR
- to inferior's memory at MEMADDR.
- On failure (cannot write the inferior)
- returns the value of errno. */
-static int
-spu_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
-{
- int fd, ret;
- CORE_ADDR addr;
- char annex[32], lslr_annex[32], buf[32];
- CORE_ADDR lslr;
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return 0;
-
- /* Use the "mem" spufs file to access SPU local store. */
- sprintf (annex, "%d/mem", fd);
- ret = spu_proc_xfer_spu (annex, NULL, myaddr, memaddr, len);
- if (ret > 0)
- return ret == len ? 0 : EIO;
-
- /* SPU local store access wraps the address around at the
- local store limit. We emulate this here. To avoid needing
- an extra access to retrieve the LSLR, we only do that after
- trying the original address first, and getting end-of-file. */
- sprintf (lslr_annex, "%d/lslr", fd);
- memset (buf, 0, sizeof buf);
- if (spu_proc_xfer_spu (lslr_annex, (unsigned char *)buf, NULL,
- 0, sizeof buf) <= 0)
- return ret;
-
- lslr = strtoul (buf, NULL, 16);
- ret = spu_proc_xfer_spu (annex, NULL, myaddr, memaddr & lslr, len);
-
- return ret == len ? 0 : EIO;
-}
-
-/* Look up special symbols -- unneded here. */
-static void
-spu_look_up_symbols (void)
-{
-}
-
-/* Send signal to inferior. */
-static void
-spu_request_interrupt (void)
-{
- struct thread_info *thr = get_first_thread ();
-
- syscall (SYS_tkill, lwpid_of (thr), SIGINT);
-}
-
-/* Implementation of the target_ops method "sw_breakpoint_from_kind". */
-
-static const gdb_byte *
-spu_sw_breakpoint_from_kind (int kind, int *size)
-{
- *size = sizeof breakpoint;
- return breakpoint;
-}
-
-static struct target_ops spu_target_ops = {
- spu_create_inferior,
- NULL, /* post_create_inferior */
- spu_attach,
- spu_kill,
- spu_detach,
- spu_mourn,
- spu_join,
- spu_thread_alive,
- spu_resume,
- spu_wait,
- spu_fetch_registers,
- spu_store_registers,
- NULL, /* prepare_to_access_memory */
- NULL, /* done_accessing_memory */
- spu_read_memory,
- spu_write_memory,
- spu_look_up_symbols,
- spu_request_interrupt,
- NULL,
- NULL, /* supports_z_point_type */
- NULL,
- NULL,
- NULL, /* stopped_by_sw_breakpoint */
- NULL, /* supports_stopped_by_sw_breakpoint */
- NULL, /* stopped_by_hw_breakpoint */
- NULL, /* supports_stopped_by_hw_breakpoint */
- NULL, /* supports_hardware_single_step */
- NULL,
- NULL,
- NULL,
- NULL,
- spu_proc_xfer_spu,
- hostio_last_error_from_errno,
- NULL, /* qxfer_osdata */
- NULL, /* qxfer_siginfo */
- NULL, /* supports_non_stop */
- NULL, /* async */
- NULL, /* start_non_stop */
- NULL, /* supports_multi_process */
- NULL, /* supports_fork_events */
- NULL, /* supports_vfork_events */
- NULL, /* supports_exec_events */
- NULL, /* handle_new_gdb_connection */
- NULL, /* handle_monitor_command */
- NULL, /* core_of_thread */
- NULL, /* read_loadmap */
- NULL, /* process_qsupported */
- NULL, /* supports_tracepoints */
- NULL, /* read_pc */
- NULL, /* write_pc */
- NULL, /* thread_stopped */
- NULL, /* get_tib_address */
- NULL, /* pause_all */
- NULL, /* unpause_all */
- NULL, /* stabilize_threads */
- NULL, /* install_fast_tracepoint_jump_pad */
- NULL, /* emit_ops */
- NULL, /* supports_disable_randomization */
- NULL, /* get_min_fast_tracepoint_insn_len */
- NULL, /* qxfer_libraries_svr4 */
- NULL, /* support_agent */
- NULL, /* enable_btrace */
- NULL, /* disable_btrace */
- NULL, /* read_btrace */
- NULL, /* read_btrace_conf */
- NULL, /* supports_range_stepping */
- NULL, /* pid_to_exec_file */
- NULL, /* multifs_open */
- NULL, /* multifs_unlink */
- NULL, /* multifs_readlink */
- NULL, /* breakpoint_kind_from_pc */
- spu_sw_breakpoint_from_kind,
-};
-
-void
-initialize_low (void)
-{
- set_target_ops (&spu_target_ops);
- init_registers_spu ();
-}
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
index 67167cca2d..2df135a769 100644
--- a/gdb/gdbserver/target.h
+++ b/gdb/gdbserver/target.h
@@ -256,10 +256,6 @@ struct target_ops
int (*get_tls_address) (struct thread_info *thread, CORE_ADDR offset,
CORE_ADDR load_module, CORE_ADDR *address);
- /* Read/Write from/to spufs using qXfer packets. */
- int (*qxfer_spu) (const char *annex, unsigned char *readbuf,
- unsigned const char *writebuf, CORE_ADDR offset, int len);
-
/* Fill BUF with an hostio error packet representing the last hostio
error. */
void (*hostio_last_error) (char *buf);
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index 49c6cf1b7c..7088ba4dd1 100644
--- a/gdb/gdbserver/win32-low.c
+++ b/gdb/gdbserver/win32-low.c
@@ -1809,7 +1809,6 @@ static struct target_ops win32_target_ops = {
win32_stopped_data_address,
NULL, /* read_offsets */
NULL, /* get_tls_address */
- NULL, /* qxfer_spu */
#ifdef _WIN32_WCE
wince_hostio_last_error,
#else
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 945c19f666..cd5cf1830d 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -68,10 +68,6 @@
#include "gdbsupport/fileio.h"
#include "gdbsupport/scope-exit.h"
-#ifndef SPUFS_MAGIC
-#define SPUFS_MAGIC 0x23c9b64e
-#endif
-
/* This comment documents high-level logic of this file.
Waiting for events in sync mode
@@ -3841,12 +3837,6 @@ linux_nat_xfer_osdata (enum target_object object,
const gdb_byte *writebuf, ULONGEST offset, ULONGEST len,
ULONGEST *xfered_len);
-static enum target_xfer_status
-linux_proc_xfer_spu (enum target_object object,
- const char *annex, gdb_byte *readbuf,
- const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len, ULONGEST *xfered_len);
-
static enum target_xfer_status
linux_proc_xfer_partial (enum target_object object,
const char *annex, gdb_byte *readbuf,
@@ -3879,10 +3869,6 @@ linux_nat_target::xfer_partial (enum target_object object,
return linux_nat_xfer_osdata (object, annex, readbuf, writebuf,
offset, len, xfered_len);
- if (object == TARGET_OBJECT_SPU)
- return linux_proc_xfer_spu (object, annex, readbuf, writebuf,
- offset, len, xfered_len);
-
/* GDB calculates all addresses in the largest possible address
width.
The address width must be masked before its final use - either by
@@ -4020,121 +4006,6 @@ linux_proc_xfer_partial (enum target_object object,
}
-/* Enumerate spufs IDs for process PID. */
-static LONGEST
-spu_enumerate_spu_ids (int pid, gdb_byte *buf, ULONGEST offset, ULONGEST len)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- LONGEST pos = 0;
- LONGEST written = 0;
- char path[128];
- DIR *dir;
- struct dirent *entry;
-
- xsnprintf (path, sizeof path, "/proc/%d/fd", pid);
- dir = opendir (path);
- if (!dir)
- return -1;
-
- rewinddir (dir);
- while ((entry = readdir (dir)) != NULL)
- {
- struct stat st;
- struct statfs stfs;
- int fd;
-
- fd = atoi (entry->d_name);
- if (!fd)
- continue;
-
- xsnprintf (path, sizeof path, "/proc/%d/fd/%d", pid, fd);
- if (stat (path, &st) != 0)
- continue;
- if (!S_ISDIR (st.st_mode))
- continue;
-
- if (statfs (path, &stfs) != 0)
- continue;
- if (stfs.f_type != SPUFS_MAGIC)
- continue;
-
- if (pos >= offset && pos + 4 <= offset + len)
- {
- store_unsigned_integer (buf + pos - offset, 4, byte_order, fd);
- written += 4;
- }
- pos += 4;
- }
-
- closedir (dir);
- return written;
-}
-
-/* Implement the to_xfer_partial interface for the TARGET_OBJECT_SPU
- object type, using the /proc file system. */
-
-static enum target_xfer_status
-linux_proc_xfer_spu (enum target_object object,
- const char *annex, gdb_byte *readbuf,
- const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
-{
- char buf[128];
- int fd = 0;
- int ret = -1;
- int pid = inferior_ptid.lwp ();
-
- if (!annex)
- {
- if (!readbuf)
- return TARGET_XFER_E_IO;
- else
- {
- LONGEST l = spu_enumerate_spu_ids (pid, readbuf, offset, len);
-
- if (l < 0)
- return TARGET_XFER_E_IO;
- else if (l == 0)
- return TARGET_XFER_EOF;
- else
- {
- *xfered_len = (ULONGEST) l;
- return TARGET_XFER_OK;
- }
- }
- }
-
- xsnprintf (buf, sizeof buf, "/proc/%d/fd/%s", pid, annex);
- fd = gdb_open_cloexec (buf, writebuf? O_WRONLY : O_RDONLY, 0);
- if (fd <= 0)
- return TARGET_XFER_E_IO;
-
- if (offset != 0
- && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
- {
- close (fd);
- return TARGET_XFER_EOF;
- }
-
- if (writebuf)
- ret = write (fd, writebuf, (size_t) len);
- else if (readbuf)
- ret = read (fd, readbuf, (size_t) len);
-
- close (fd);
-
- if (ret < 0)
- return TARGET_XFER_E_IO;
- else if (ret == 0)
- return TARGET_XFER_EOF;
- else
- {
- *xfered_len = (ULONGEST) ret;
- return TARGET_XFER_OK;
- }
-}
-
-
/* Parse LINE as a signal set and add its set bits to SIGS. */
static void
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 63a9bd32df..567b01c5d1 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1413,73 +1413,6 @@ find_signalled_thread (struct thread_info *info, void *data)
return 0;
}
-/* Generate corefile notes for SPU contexts. */
-
-static char *
-linux_spu_make_corefile_notes (bfd *obfd, char *note_data, int *note_size)
-{
- static const char *spu_files[] =
- {
- "object-id",
- "mem",
- "regs",
- "fpcr",
- "lslr",
- "decr",
- "decr_status",
- "signal1",
- "signal1_type",
- "signal2",
- "signal2_type",
- "event_mask",
- "event_status",
- "mbox_info",
- "ibox_info",
- "wbox_info",
- "dma_info",
- "proxydma_info",
- };
-
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-
- /* Determine list of SPU ids. */
- gdb::optional<gdb::byte_vector>
- spu_ids = target_read_alloc (current_top_target (),
- TARGET_OBJECT_SPU, NULL);
-
- if (!spu_ids)
- return note_data;
-
- /* Generate corefile notes for each SPU file. */
- for (size_t i = 0; i < spu_ids->size (); i += 4)
- {
- int fd = extract_unsigned_integer (spu_ids->data () + i, 4, byte_order);
-
- for (size_t j = 0; j < sizeof (spu_files) / sizeof (spu_files[0]); j++)
- {
- char annex[32], note_name[32];
-
- xsnprintf (annex, sizeof annex, "%d/%s", fd, spu_files[j]);
- gdb::optional<gdb::byte_vector> spu_data
- = target_read_alloc (current_top_target (), TARGET_OBJECT_SPU, annex);
-
- if (spu_data && !spu_data->empty ())
- {
- xsnprintf (note_name, sizeof note_name, "SPU/%s", annex);
- note_data = elfcore_write_note (obfd, note_data, note_size,
- note_name, NT_SPU,
- spu_data->data (),
- spu_data->size ());
-
- if (!note_data)
- return nullptr;
- }
- }
- }
-
- return note_data;
-}
-
/* This is used to pass information from
linux_make_mappings_corefile_notes through
linux_find_memory_regions_full. */
@@ -2008,11 +1941,6 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
return NULL;
}
- /* SPU information. */
- note_data = linux_spu_make_corefile_notes (obfd, note_data, note_size);
- if (!note_data)
- return NULL;
-
/* File mappings. */
note_data = linux_make_mappings_corefile_notes (gdbarch, obfd,
note_data, note_size);
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
index f1561b3b35..508395cdb2 100644
--- a/gdb/nat/ppc-linux.h
+++ b/gdb/nat/ppc-linux.h
@@ -33,9 +33,6 @@
If they aren't, we can provide them ourselves (their values are fixed
because they are part of the kernel ABI). They are used in the AT_HWCAP
entry of the AUXV. */
-#ifndef PPC_FEATURE_CELL
-#define PPC_FEATURE_CELL 0x00010000
-#endif
#ifndef PPC_FEATURE_BOOKE
#define PPC_FEATURE_BOOKE 0x00008000
#endif
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index deb31d4989..53406f61c8 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -2646,9 +2646,6 @@ ppc_linux_nat_target::read_description ()
perror_with_name (_("Unable to fetch AltiVec registers"));
}
- if (hwcap & PPC_FEATURE_CELL)
- features.cell = true;
-
features.isa205 = ppc_linux_has_isa205 (hwcap);
if ((hwcap2 & PPC_FEATURE2_DSCR)
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index c6181c9dd4..ce3c727371 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -31,7 +31,6 @@
#include "osabi.h"
#include "regset.h"
#include "solib-svr4.h"
-#include "solib-spu.h"
#include "solib.h"
#include "solist.h"
#include "ppc-tdep.h"
@@ -48,7 +47,6 @@
#include "elf/common.h"
#include "elf/ppc64.h"
#include "arch-utils.h"
-#include "spu-tdep.h"
#include "xml-syscall.h"
#include "linux-tdep.h"
#include "linux-record.h"
@@ -66,7 +64,6 @@
#include "features/rs6000/powerpc-32l.c"
#include "features/rs6000/powerpc-altivec32l.c"
-#include "features/rs6000/powerpc-cell32l.c"
#include "features/rs6000/powerpc-vsx32l.c"
#include "features/rs6000/powerpc-isa205-32l.c"
#include "features/rs6000/powerpc-isa205-altivec32l.c"
@@ -76,7 +73,6 @@
#include "features/rs6000/powerpc-isa207-htm-vsx32l.c"
#include "features/rs6000/powerpc-64l.c"
#include "features/rs6000/powerpc-altivec64l.c"
-#include "features/rs6000/powerpc-cell64l.c"
#include "features/rs6000/powerpc-vsx64l.c"
#include "features/rs6000/powerpc-isa205-64l.c"
#include "features/rs6000/powerpc-isa205-altivec64l.c"
@@ -1555,19 +1551,12 @@ ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
regcache_cooked_write_unsigned (regcache, PPC_TRAP_REGNUM, -1);
}
-static int
-ppc_linux_spu_section (bfd *abfd, asection *asect, void *user_data)
-{
- return startswith (bfd_section_name (asect), "SPU/");
-}
-
static const struct target_desc *
ppc_linux_core_read_description (struct gdbarch *gdbarch,
struct target_ops *target,
bfd *abfd)
{
struct ppc_linux_features features = ppc_linux_no_features;
- asection *cell = bfd_sections_find_if (abfd, ppc_linux_spu_section, NULL);
asection *altivec = bfd_get_section_by_name (abfd, ".reg-ppc-vmx");
asection *vsx = bfd_get_section_by_name (abfd, ".reg-ppc-vsx");
asection *section = bfd_get_section_by_name (abfd, ".reg");
@@ -1592,9 +1581,6 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
return NULL;
}
- if (cell)
- features.cell = true;
-
if (altivec)
features.altivec = true;
@@ -1743,287 +1729,6 @@ ppc_stap_parse_special_token (struct gdbarch *gdbarch,
return 1;
}
-/* Cell/B.E. active SPE context tracking support. */
-
-static struct objfile *spe_context_objfile = NULL;
-static CORE_ADDR spe_context_lm_addr = 0;
-static CORE_ADDR spe_context_offset = 0;
-
-static ptid_t spe_context_cache_ptid;
-static CORE_ADDR spe_context_cache_address;
-
-/* Hook into inferior_created, solib_loaded, and solib_unloaded observers
- to track whether we've loaded a version of libspe2 (as static or dynamic
- library) that provides the __spe_current_active_context variable. */
-static void
-ppc_linux_spe_context_lookup (struct objfile *objfile)
-{
- struct bound_minimal_symbol sym;
-
- if (!objfile)
- {
- spe_context_objfile = NULL;
- spe_context_lm_addr = 0;
- spe_context_offset = 0;
- spe_context_cache_ptid = minus_one_ptid;
- spe_context_cache_address = 0;
- return;
- }
-
- sym = lookup_minimal_symbol ("__spe_current_active_context", NULL, objfile);
- if (sym.minsym)
- {
- spe_context_objfile = objfile;
- spe_context_lm_addr = svr4_fetch_objfile_link_map (objfile);
- spe_context_offset = MSYMBOL_VALUE_RAW_ADDRESS (sym.minsym);
- spe_context_cache_ptid = minus_one_ptid;
- spe_context_cache_address = 0;
- return;
- }
-}
-
-static void
-ppc_linux_spe_context_inferior_created (struct target_ops *t, int from_tty)
-{
- ppc_linux_spe_context_lookup (NULL);
- for (objfile *objfile : current_program_space->objfiles ())
- ppc_linux_spe_context_lookup (objfile);
-}
-
-static void
-ppc_linux_spe_context_solib_loaded (struct so_list *so)
-{
- if (strstr (so->so_original_name, "/libspe") != NULL)
- {
- solib_read_symbols (so, 0);
- ppc_linux_spe_context_lookup (so->objfile);
- }
-}
-
-static void
-ppc_linux_spe_context_solib_unloaded (struct so_list *so)
-{
- if (so->objfile == spe_context_objfile)
- ppc_linux_spe_context_lookup (NULL);
-}
-
-/* Retrieve contents of the N'th element in the current thread's
- linked SPE context list into ID and NPC. Return the address of
- said context element, or 0 if not found. */
-static CORE_ADDR
-ppc_linux_spe_context (int wordsize, enum bfd_endian byte_order,
- int n, int *id, unsigned int *npc)
-{
- CORE_ADDR spe_context = 0;
- gdb_byte buf[16];
- int i;
-
- /* Quick exit if we have not found __spe_current_active_context. */
- if (!spe_context_objfile)
- return 0;
-
- /* Look up cached address of thread-local variable. */
- if (spe_context_cache_ptid != inferior_ptid)
- {
- struct target_ops *target = current_top_target ();
-
- try
- {
- /* We do not call target_translate_tls_address here, because
- svr4_fetch_objfile_link_map may invalidate the frame chain,
- which must not do while inside a frame sniffer.
-
- Instead, we have cached the lm_addr value, and use that to
- directly call the target's to_get_thread_local_address. */
- spe_context_cache_address
- = target->get_thread_local_address (inferior_ptid,
- spe_context_lm_addr,
- spe_context_offset);
- spe_context_cache_ptid = inferior_ptid;
- }
-
- catch (const gdb_exception_error &ex)
- {
- return 0;
- }
- }
-
- /* Read variable value. */
- if (target_read_memory (spe_context_cache_address, buf, wordsize) == 0)
- spe_context = extract_unsigned_integer (buf, wordsize, byte_order);
-
- /* Cyle through to N'th linked list element. */
- for (i = 0; i < n && spe_context; i++)
- if (target_read_memory (spe_context + align_up (12, wordsize),
- buf, wordsize) == 0)
- spe_context = extract_unsigned_integer (buf, wordsize, byte_order);
- else
- spe_context = 0;
-
- /* Read current context. */
- if (spe_context
- && target_read_memory (spe_context, buf, 12) != 0)
- spe_context = 0;
-
- /* Extract data elements. */
- if (spe_context)
- {
- if (id)
- *id = extract_signed_integer (buf, 4, byte_order);
- if (npc)
- *npc = extract_unsigned_integer (buf + 4, 4, byte_order);
- }
-
- return spe_context;
-}
-
-
-/* Cell/B.E. cross-architecture unwinder support. */
-
-struct ppu2spu_cache
-{
- struct frame_id frame_id;
- readonly_detached_regcache *regcache;
-};
-
-static struct gdbarch *
-ppu2spu_prev_arch (struct frame_info *this_frame, void **this_cache)
-{
- struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
- return cache->regcache->arch ();
-}
-
-static void
-ppu2spu_this_id (struct frame_info *this_frame,
- void **this_cache, struct frame_id *this_id)
-{
- struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
- *this_id = cache->frame_id;
-}
-
-static struct value *
-ppu2spu_prev_register (struct frame_info *this_frame,
- void **this_cache, int regnum)
-{
- struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
- struct gdbarch *gdbarch = cache->regcache->arch ();
- gdb_byte *buf;
-
- buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
-
- cache->regcache->cooked_read (regnum, buf);
- return frame_unwind_got_bytes (this_frame, regnum, buf);
-}
-
-struct ppu2spu_data
-{
- struct gdbarch *gdbarch;
- int id;
- unsigned int npc;
- gdb_byte gprs[128*16];
-};
-
-static enum register_status
-ppu2spu_unwind_register (ppu2spu_data *data, int regnum, gdb_byte *buf)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (data->gdbarch);
-
- if (regnum >= 0 && regnum < SPU_NUM_GPRS)
- memcpy (buf, data->gprs + 16*regnum, 16);
- else if (regnum == SPU_ID_REGNUM)
- store_unsigned_integer (buf, 4, byte_order, data->id);
- else if (regnum == SPU_PC_REGNUM)
- store_unsigned_integer (buf, 4, byte_order, data->npc);
- else
- return REG_UNAVAILABLE;
-
- return REG_VALID;
-}
-
-static int
-ppu2spu_sniffer (const struct frame_unwind *self,
- struct frame_info *this_frame, void **this_prologue_cache)
-{
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- struct ppu2spu_data data;
- struct frame_info *fi;
- CORE_ADDR base, func, backchain, spe_context;
- gdb_byte buf[8];
- int n = 0;
-
- /* Count the number of SPU contexts already in the frame chain. */
- for (fi = get_next_frame (this_frame); fi; fi = get_next_frame (fi))
- if (get_frame_type (fi) == ARCH_FRAME
- && gdbarch_bfd_arch_info (get_frame_arch (fi))->arch == bfd_arch_spu)
- n++;
-
- base = get_frame_sp (this_frame);
- func = get_frame_pc (this_frame);
- if (target_read_memory (base, buf, tdep->wordsize))
- return 0;
- backchain = extract_unsigned_integer (buf, tdep->wordsize, byte_order);
-
- spe_context = ppc_linux_spe_context (tdep->wordsize, byte_order,
- n, &data.id, &data.npc);
- if (spe_context && base <= spe_context && spe_context < backchain)
- {
- char annex[32];
-
- /* Find gdbarch for SPU. */
- struct gdbarch_info info;
- gdbarch_info_init (&info);
- info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
- info.byte_order = BFD_ENDIAN_BIG;
- info.osabi = GDB_OSABI_LINUX;
- info.id = &data.id;
- data.gdbarch = gdbarch_find_by_info (info);
- if (!data.gdbarch)
- return 0;
-
- xsnprintf (annex, sizeof annex, "%d/regs", data.id);
- if (target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- data.gprs, 0, sizeof data.gprs)
- == sizeof data.gprs)
- {
- auto cooked_read = [&data] (int regnum, gdb_byte *out_buf)
- {
- return ppu2spu_unwind_register (&data, regnum, out_buf);
- };
- struct ppu2spu_cache *cache
- = FRAME_OBSTACK_CALLOC (1, struct ppu2spu_cache);
- std::unique_ptr<readonly_detached_regcache> regcache
- (new readonly_detached_regcache (data.gdbarch, cooked_read));
-
- cache->frame_id = frame_id_build (base, func);
- cache->regcache = regcache.release ();
- *this_prologue_cache = cache;
- return 1;
- }
- }
-
- return 0;
-}
-
-static void
-ppu2spu_dealloc_cache (struct frame_info *self, void *this_cache)
-{
- struct ppu2spu_cache *cache = (struct ppu2spu_cache *) this_cache;
- delete cache->regcache;
-}
-
-static const struct frame_unwind ppu2spu_unwind = {
- ARCH_FRAME,
- default_frame_unwind_stop_reason,
- ppu2spu_this_id,
- ppu2spu_prev_register,
- NULL,
- ppu2spu_sniffer,
- ppu2spu_dealloc_cache,
- ppu2spu_prev_arch,
-};
-
/* Initialize linux_record_tdep if not initialized yet.
WORDSIZE is 4 or 8 for 32- or 64-bit PowerPC Linux respectively.
Sizes of data structures are initialized accordingly. */
@@ -2439,21 +2144,6 @@ ppc_linux_init_abi (struct gdbarch_info info,
}
}
- /* Enable Cell/B.E. if supported by the target. */
- if (tdesc_compatible_p (info.target_desc,
- bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu)))
- {
- /* Cell/B.E. multi-architecture support. */
- set_spu_solib_ops (gdbarch);
-
- /* Cell/B.E. cross-architecture unwinder support. */
- frame_unwind_prepend_unwinder (gdbarch, &ppu2spu_unwind);
-
- /* We need to support more than "addr_bit" significant address bits
- in order to support SPUADDR_ADDR encoded values. */
- set_gdbarch_significant_addr_bit (gdbarch, 64);
- }
-
set_gdbarch_displaced_step_location (gdbarch,
linux_displaced_step_location);
@@ -2478,15 +2168,9 @@ _initialize_ppc_linux_tdep (void)
gdbarch_register_osabi (bfd_arch_rs6000, bfd_mach_rs6k, GDB_OSABI_LINUX,
ppc_linux_init_abi);
- /* Attach to observers to track __spe_current_active_context. */
- gdb::observers::inferior_created.attach (ppc_linux_spe_context_inferior_created);
- gdb::observers::solib_loaded.attach (ppc_linux_spe_context_solib_loaded);
- gdb::observers::solib_unloaded.attach (ppc_linux_spe_context_solib_unloaded);
-
/* Initialize the Linux target descriptions. */
initialize_tdesc_powerpc_32l ();
initialize_tdesc_powerpc_altivec32l ();
- initialize_tdesc_powerpc_cell32l ();
initialize_tdesc_powerpc_vsx32l ();
initialize_tdesc_powerpc_isa205_32l ();
initialize_tdesc_powerpc_isa205_altivec32l ();
@@ -2496,7 +2180,6 @@ _initialize_ppc_linux_tdep (void)
initialize_tdesc_powerpc_isa207_htm_vsx32l ();
initialize_tdesc_powerpc_64l ();
initialize_tdesc_powerpc_altivec64l ();
- initialize_tdesc_powerpc_cell64l ();
initialize_tdesc_powerpc_vsx64l ();
initialize_tdesc_powerpc_isa205_64l ();
initialize_tdesc_powerpc_isa205_altivec64l ();
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 7184c74842..2e8b52ee75 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1605,10 +1605,7 @@ cooked_read_test (struct gdbarch *gdbarch)
SELF_CHECK (mock_target.fetch_registers_called == 0);
SELF_CHECK (mock_target.store_registers_called == 0);
-
- /* Some SPU pseudo registers are got via TARGET_OBJECT_SPU. */
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- SELF_CHECK (mock_target.xfer_partial_called == 0);
+ SELF_CHECK (mock_target.xfer_partial_called == 0);
mock_target.reset ();
}
@@ -1724,16 +1721,12 @@ cooked_write_test (struct gdbarch *gdbarch)
auto bfd_arch = gdbarch_bfd_arch_info (gdbarch)->arch;
- if ((bfd_arch == bfd_arch_sparc
- /* SPARC64_CWP_REGNUM, SPARC64_PSTATE_REGNUM,
- SPARC64_ASI_REGNUM and SPARC64_CCR_REGNUM are hard to test. */
- && gdbarch_ptr_bit (gdbarch) == 64
- && (regnum >= gdbarch_num_regs (gdbarch)
- && regnum <= gdbarch_num_regs (gdbarch) + 4))
- || (bfd_arch == bfd_arch_spu
- /* SPU pseudo registers except SPU_SP_REGNUM are got by
- TARGET_OBJECT_SPU. */
- && regnum >= gdbarch_num_regs (gdbarch) && regnum != 130))
+ if (bfd_arch == bfd_arch_sparc
+ /* SPARC64_CWP_REGNUM, SPARC64_PSTATE_REGNUM,
+ SPARC64_ASI_REGNUM and SPARC64_CCR_REGNUM are hard to test. */
+ && gdbarch_ptr_bit (gdbarch) == 64
+ && (regnum >= gdbarch_num_regs (gdbarch)
+ && regnum <= gdbarch_num_regs (gdbarch) + 4))
continue;
std::vector<gdb_byte> expected (register_size (gdbarch, regnum), 0);
diff --git a/gdb/regformats/reg-spu.dat b/gdb/regformats/reg-spu.dat
deleted file mode 100644
index fb69119cc6..0000000000
--- a/gdb/regformats/reg-spu.dat
+++ /dev/null
@@ -1,133 +0,0 @@
-name:spu
-xmlarch:spu
-expedite:r0,r1,npc
-128:r0
-128:r1
-128:r2
-128:r3
-128:r4
-128:r5
-128:r6
-128:r7
-128:r8
-128:r9
-128:r10
-128:r11
-128:r12
-128:r13
-128:r14
-128:r15
-128:r16
-128:r17
-128:r18
-128:r19
-128:r20
-128:r21
-128:r22
-128:r23
-128:r24
-128:r25
-128:r26
-128:r27
-128:r28
-128:r29
-128:r30
-128:r31
-128:r32
-128:r33
-128:r34
-128:r35
-128:r36
-128:r37
-128:r38
-128:r39
-128:r40
-128:r41
-128:r42
-128:r43
-128:r44
-128:r45
-128:r46
-128:r47
-128:r48
-128:r49
-128:r50
-128:r51
-128:r52
-128:r53
-128:r54
-128:r55
-128:r56
-128:r57
-128:r58
-128:r59
-128:r60
-128:r61
-128:r62
-128:r63
-128:r64
-128:r65
-128:r66
-128:r67
-128:r68
-128:r69
-128:r70
-128:r71
-128:r72
-128:r73
-128:r74
-128:r75
-128:r76
-128:r77
-128:r78
-128:r79
-128:r80
-128:r81
-128:r82
-128:r83
-128:r84
-128:r85
-128:r86
-128:r87
-128:r88
-128:r89
-128:r90
-128:r91
-128:r92
-128:r93
-128:r94
-128:r95
-128:r96
-128:r97
-128:r98
-128:r99
-128:r100
-128:r101
-128:r102
-128:r103
-128:r104
-128:r105
-128:r106
-128:r107
-128:r108
-128:r109
-128:r110
-128:r111
-128:r112
-128:r113
-128:r114
-128:r115
-128:r116
-128:r117
-128:r118
-128:r119
-128:r120
-128:r121
-128:r122
-128:r123
-128:r124
-128:r125
-128:r126
-128:r127
-32:id
-32:npc
diff --git a/gdb/regformats/rs6000/powerpc-cell32l.dat b/gdb/regformats/rs6000/powerpc-cell32l.dat
deleted file mode 100644
index bd28505495..0000000000
--- a/gdb/regformats/rs6000/powerpc-cell32l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-cell32l.xml
-name:powerpc_cell32l
-xmltarget:powerpc-cell32l.xml
-expedite:r1,pc,r0,orig_r3,r4
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-32:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-cell64l.dat b/gdb/regformats/rs6000/powerpc-cell64l.dat
deleted file mode 100644
index b5b162eced..0000000000
--- a/gdb/regformats/rs6000/powerpc-cell64l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-cell64l.xml
-name:powerpc_cell64l
-xmltarget:powerpc-cell64l.xml
-expedite:r1,pc,r0,orig_r3,r4
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-32:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/remote.c b/gdb/remote.c
index 980864e070..21160e13ac 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1970,8 +1970,6 @@ enum {
PACKET_qXfer_libraries,
PACKET_qXfer_libraries_svr4,
PACKET_qXfer_memory_map,
- PACKET_qXfer_spu_read,
- PACKET_qXfer_spu_write,
PACKET_qXfer_osdata,
PACKET_qXfer_threads,
PACKET_qXfer_statictrace_read,
@@ -5083,10 +5081,6 @@ static const struct protocol_feature remote_protocol_features[] = {
remote_supported_packet, PACKET_augmented_libraries_svr4_read_feature },
{ "qXfer:memory-map:read", PACKET_DISABLE, remote_supported_packet,
PACKET_qXfer_memory_map },
- { "qXfer:spu:read", PACKET_DISABLE, remote_supported_packet,
- PACKET_qXfer_spu_read },
- { "qXfer:spu:write", PACKET_DISABLE, remote_supported_packet,
- PACKET_qXfer_spu_write },
{ "qXfer:osdata:read", PACKET_DISABLE, remote_supported_packet,
PACKET_qXfer_osdata },
{ "qXfer:threads:read", PACKET_DISABLE, remote_supported_packet,
@@ -10858,19 +10852,6 @@ remote_target::xfer_partial (enum target_object object,
xfered_len);
}
- /* Handle SPU memory using qxfer packets. */
- if (object == TARGET_OBJECT_SPU)
- {
- if (readbuf)
- return remote_read_qxfer ("spu", annex, readbuf, offset, len,
- xfered_len, &remote_protocol_packets
- [PACKET_qXfer_spu_read]);
- else
- return remote_write_qxfer ("spu", annex, writebuf, offset, len,
- xfered_len, &remote_protocol_packets
- [PACKET_qXfer_spu_write]);
- }
-
/* Handle extra signal info using qxfer packets. */
if (object == TARGET_OBJECT_SIGNAL_INFO)
{
@@ -14481,12 +14462,6 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_memory_map],
"qXfer:memory-map:read", "memory-map", 0);
- add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_spu_read],
- "qXfer:spu:read", "read-spu-object", 0);
-
- add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_spu_write],
- "qXfer:spu:write", "write-spu-object", 0);
-
add_packet_config_cmd (&remote_protocol_packets[PACKET_qXfer_osdata],
"qXfer:osdata:read", "osdata", 0);
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 47a232f6c6..9123a3dc33 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -6141,16 +6141,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
int num_pseudoregs = 0;
int cur_reg;
- /* INFO may refer to a binary that is not of the PowerPC architecture,
- e.g. when debugging a stand-alone SPE executable on a Cell/B.E. system.
- In this case, we must not attempt to infer properties of the (PowerPC
- side) of the target system from properties of that executable. Trust
- the target description instead. */
- if (info.abfd
- && bfd_get_arch (info.abfd) != bfd_arch_powerpc
- && bfd_get_arch (info.abfd) != bfd_arch_rs6000)
- info.abfd = NULL;
-
from_xcoff_exec = info.abfd && info.abfd->format == bfd_object &&
bfd_get_flavour (info.abfd) == bfd_target_xcoff_flavour;
diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
deleted file mode 100644
index 49e470adb6..0000000000
--- a/gdb/solib-spu.c
+++ /dev/null
@@ -1,547 +0,0 @@
-/* Cell SPU GNU/Linux support -- shared library handling.
- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "solib-spu.h"
-#include "gdbcore.h"
-#include <sys/stat.h>
-#include "arch-utils.h"
-#include "bfd.h"
-#include "symtab.h"
-#include "solib.h"
-#include "solib-svr4.h"
-#include "solist.h"
-#include "inferior.h"
-#include "objfiles.h"
-#include "observable.h"
-#include "breakpoint.h"
-#include "gdbthread.h"
-#include "gdb_bfd.h"
-
-#include "spu-tdep.h"
-
-/* Highest SPE id (file handle) the inferior may have. */
-#define MAX_SPE_FD 1024
-
-/* Stand-alone SPE executable? */
-#define spu_standalone_p() \
- (symfile_objfile && symfile_objfile->obfd \
- && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu)
-
-
-/* Relocate main SPE executable. */
-static void
-spu_relocate_main_executable (int spufs_fd)
-{
- struct section_offsets *new_offsets;
- int i;
-
- if (symfile_objfile == NULL)
- return;
-
- new_offsets = XALLOCAVEC (struct section_offsets,
- symfile_objfile->num_sections);
-
- for (i = 0; i < symfile_objfile->num_sections; i++)
- new_offsets->offsets[i] = SPUADDR (spufs_fd, 0);
-
- objfile_relocate (symfile_objfile, new_offsets);
-}
-
-/* When running a stand-alone SPE executable, we may need to skip one more
- exec event on startup, to get past the binfmt_misc loader. */
-static void
-spu_skip_standalone_loader (void)
-{
- if (target_has_execution && !current_inferior ()->attach_flag)
- {
- struct target_waitstatus ws;
-
- /* Only some kernels report an extra SIGTRAP with the binfmt_misc
- loader; others do not. In addition, if we have attached to an
- already running inferior instead of starting a new one, we will
- not see the extra SIGTRAP -- and we cannot readily distinguish
- the two cases, in particular with the extended-remote target.
-
- Thus we issue a single-step here. If no extra SIGTRAP was pending,
- this will step past the first instruction of the stand-alone SPE
- executable loader, but we don't care about that. */
-
- inferior_thread ()->control.in_infcall = 1; /* Suppress MI messages. */
-
- target_resume (inferior_ptid, 1, GDB_SIGNAL_0);
- target_wait (minus_one_ptid, &ws, 0);
- set_executing (minus_one_ptid, 0);
-
- inferior_thread ()->control.in_infcall = 0;
- }
-}
-
-static objfile_key<CORE_ADDR, gdb::noop_deleter<CORE_ADDR>>
- ocl_program_data_key;
-
-/* Appends OpenCL programs to the list of `struct so_list' objects. */
-static void
-append_ocl_sos (struct so_list **link_ptr)
-{
- CORE_ADDR *ocl_program_addr_base;
-
- for (objfile *objfile : current_program_space->objfiles ())
- {
- ocl_program_addr_base = ocl_program_data_key.get (objfile);
- if (ocl_program_addr_base != NULL)
- {
- enum bfd_endian byte_order = bfd_big_endian (objfile->obfd)?
- BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
- try
- {
- CORE_ADDR data =
- read_memory_unsigned_integer (*ocl_program_addr_base,
- sizeof (CORE_ADDR),
- byte_order);
- if (data != 0x0)
- {
- struct so_list *newobj;
-
- /* Allocate so_list structure. */
- newobj = XCNEW (struct so_list);
-
- /* Encode FD and object ID in path name. */
- xsnprintf (newobj->so_name, sizeof newobj->so_name, "@%s <%d>",
- hex_string (data),
- SPUADDR_SPU (*ocl_program_addr_base));
- strcpy (newobj->so_original_name, newobj->so_name);
-
- *link_ptr = newobj;
- link_ptr = &newobj->next;
- }
- }
- catch (const gdb_exception &ex)
- {
- /* Ignore memory errors. */
- switch (ex.error)
- {
- case MEMORY_ERROR:
- break;
- default:
- throw;
- break;
- }
- }
- }
- }
-}
-
-/* Build a list of `struct so_list' objects describing the shared
- objects currently loaded in the inferior. */
-static struct so_list *
-spu_current_sos (void)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- struct so_list *head;
- struct so_list **link_ptr;
-
- gdb_byte buf[MAX_SPE_FD * 4];
- int i, size;
-
- /* First, retrieve the SVR4 shared library list. */
- head = svr4_so_ops.current_sos ();
-
- /* Append our libraries to the end of the list. */
- for (link_ptr = &head; *link_ptr; link_ptr = &(*link_ptr)->next)
- ;
-
- /* Determine list of SPU ids. */
- size = target_read (current_top_target (), TARGET_OBJECT_SPU, NULL,
- buf, 0, sizeof buf);
-
- /* Do not add stand-alone SPE executable context as shared library,
- but relocate main SPE executable objfile. */
- if (spu_standalone_p ())
- {
- if (size == 4)
- {
- int fd = extract_unsigned_integer (buf, 4, byte_order);
-
- spu_relocate_main_executable (fd);
-
- /* Re-enable breakpoints after main SPU context was established;
- see also comments in spu_solib_create_inferior_hook. */
- enable_breakpoints_after_startup ();
- }
-
- return head;
- }
-
- /* Create an so_list entry for each SPU id. */
- for (i = 0; i < size; i += 4)
- {
- int fd = extract_unsigned_integer (buf + i, 4, byte_order);
- struct so_list *newobj;
-
- unsigned long long addr;
- char annex[32], id[100];
- int len;
-
- /* Read object ID. There's a race window where the inferior may have
- already created the SPE context, but not installed the object-id
- yet. Skip such entries; we'll be back for them later. */
- xsnprintf (annex, sizeof annex, "%d/object-id", fd);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- (gdb_byte *) id, 0, sizeof id);
- if (len <= 0 || len >= sizeof id)
- continue;
- id[len] = 0;
- if (sscanf (id, "0x%llx", &addr) != 1 || !addr)
- continue;
-
- /* Allocate so_list structure. */
- newobj = XCNEW (struct so_list);
-
- /* Encode FD and object ID in path name. Choose the name so as not
- to conflict with any (normal) SVR4 library path name. */
- xsnprintf (newobj->so_name, sizeof newobj->so_name, "@%s <%d>",
- hex_string (addr), fd);
- strcpy (newobj->so_original_name, newobj->so_name);
-
- *link_ptr = newobj;
- link_ptr = &newobj->next;
- }
-
- /* Append OpenCL sos. */
- append_ocl_sos (link_ptr);
-
- return head;
-}
-
-/* Free so_list information. */
-static void
-spu_free_so (struct so_list *so)
-{
- if (so->so_original_name[0] != '@')
- svr4_so_ops.free_so (so);
-}
-
-/* Relocate section addresses. */
-static void
-spu_relocate_section_addresses (struct so_list *so,
- struct target_section *sec)
-{
- if (so->so_original_name[0] != '@')
- svr4_so_ops.relocate_section_addresses (so, sec);
- else
- {
- unsigned long long addr;
- int fd;
-
- /* Set addr_low/high to just LS offset for display. */
- if (so->addr_low == 0 && so->addr_high == 0
- && strcmp (sec->the_bfd_section->name, ".text") == 0)
- {
- so->addr_low = sec->addr;
- so->addr_high = sec->endaddr;
- }
-
- /* Decode object ID. */
- if (sscanf (so->so_original_name, "@0x%llx <%d>", &addr, &fd) != 2)
- internal_error (__FILE__, __LINE__, "bad object ID");
-
- sec->addr = SPUADDR (fd, sec->addr);
- sec->endaddr = SPUADDR (fd, sec->endaddr);
- }
-}
-
-
-/* Inferior memory should contain an SPE executable image at location ADDR.
- Allocate a BFD representing that executable. Return NULL on error. */
-
-static void *
-spu_bfd_iovec_open (bfd *nbfd, void *open_closure)
-{
- return open_closure;
-}
-
-static int
-spu_bfd_iovec_close (bfd *nbfd, void *stream)
-{
- xfree (stream);
-
- /* Zero means success. */
- return 0;
-}
-
-static file_ptr
-spu_bfd_iovec_pread (bfd *abfd, void *stream, void *buf,
- file_ptr nbytes, file_ptr offset)
-{
- CORE_ADDR addr = *(CORE_ADDR *)stream;
- int ret;
-
- ret = target_read_memory (addr + offset, (gdb_byte *) buf, nbytes);
- if (ret != 0)
- {
- bfd_set_error (bfd_error_invalid_operation);
- return -1;
- }
-
- return nbytes;
-}
-
-static int
-spu_bfd_iovec_stat (bfd *abfd, void *stream, struct stat *sb)
-{
- /* We don't have an easy way of finding the size of embedded spu
- images. We could parse the in-memory ELF header and section
- table to find the extent of the last section but that seems
- pointless when the size is needed only for checks of other
- parsed values in dbxread.c. */
- memset (sb, 0, sizeof (struct stat));
- sb->st_size = INT_MAX;
- return 0;
-}
-
-static gdb_bfd_ref_ptr
-spu_bfd_fopen (const char *name, CORE_ADDR addr)
-{
- CORE_ADDR *open_closure = XNEW (CORE_ADDR);
-
- *open_closure = addr;
-
- gdb_bfd_ref_ptr nbfd (gdb_bfd_openr_iovec (name, "elf32-spu",
- spu_bfd_iovec_open, open_closure,
- spu_bfd_iovec_pread,
- spu_bfd_iovec_close,
- spu_bfd_iovec_stat));
- if (nbfd == NULL)
- return NULL;
-
- if (!bfd_check_format (nbfd.get (), bfd_object))
- return NULL;
-
- return nbfd;
-}
-
-/* Open shared library BFD. */
-static gdb_bfd_ref_ptr
-spu_bfd_open (const char *pathname)
-{
- const char *original_name = strrchr (pathname, '@');
- asection *spu_name;
- unsigned long long addr;
- int fd;
-
- /* Handle regular SVR4 libraries. */
- if (!original_name)
- return svr4_so_ops.bfd_open (pathname);
-
- /* Decode object ID. */
- if (sscanf (original_name, "@0x%llx <%d>", &addr, &fd) != 2)
- internal_error (__FILE__, __LINE__, "bad object ID");
-
- /* Open BFD representing SPE executable. */
- gdb_bfd_ref_ptr abfd (spu_bfd_fopen (original_name, (CORE_ADDR) addr));
- if (abfd == NULL)
- error (_("Cannot read SPE executable at %s"), original_name);
-
- /* Retrieve SPU name note. */
- spu_name = bfd_get_section_by_name (abfd.get (), ".note.spu_name");
- if (spu_name)
- {
- int sect_size = bfd_section_size (spu_name);
-
- if (sect_size > 20)
- {
- char *buf
- = (char *) alloca (sect_size - 20 + strlen (original_name) + 1);
-
- bfd_get_section_contents (abfd.get (), spu_name, buf, 20,
- sect_size - 20);
- buf[sect_size - 20] = '\0';
-
- strcat (buf, original_name);
-
- bfd_set_filename (abfd.get (), xstrdup (buf));
- }
- }
-
- return abfd;
-}
-
-/* Lookup global symbol in a SPE executable. */
-static struct block_symbol
-spu_lookup_lib_symbol (struct objfile *objfile,
- const char *name,
- const domain_enum domain)
-{
- if (bfd_get_arch (objfile->obfd) == bfd_arch_spu)
- return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
- domain);
-
- if (svr4_so_ops.lookup_lib_global_symbol != NULL)
- return svr4_so_ops.lookup_lib_global_symbol (objfile, name, domain);
- return {};
-}
-
-/* Enable shared library breakpoint. */
-static int
-spu_enable_break (struct objfile *objfile)
-{
- struct bound_minimal_symbol spe_event_sym;
-
- /* The libspe library will call __spe_context_update_event whenever any
- SPE context is allocated or destroyed. */
- spe_event_sym = lookup_minimal_symbol ("__spe_context_update_event",
- NULL, objfile);
-
- /* Place a solib_event breakpoint on the symbol. */
- if (spe_event_sym.minsym)
- {
- CORE_ADDR addr = BMSYMBOL_VALUE_ADDRESS (spe_event_sym);
-
- addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (), addr,
- current_top_target ());
- create_solib_event_breakpoint (target_gdbarch (), addr);
- return 1;
- }
-
- return 0;
-}
-
-/* Enable shared library breakpoint for the
- OpenCL runtime running on the SPU. */
-static void
-ocl_enable_break (struct objfile *objfile)
-{
- struct bound_minimal_symbol event_sym;
- struct bound_minimal_symbol addr_sym;
-
- /* The OpenCL runtime on the SPU will call __opencl_program_update_event
- whenever an OpenCL program is loaded. */
- event_sym = lookup_minimal_symbol ("__opencl_program_update_event", NULL,
- objfile);
- /* The PPU address of the OpenCL program can be found
- at opencl_elf_image_address. */
- addr_sym = lookup_minimal_symbol ("opencl_elf_image_address", NULL, objfile);
-
- if (event_sym.minsym && addr_sym.minsym)
- {
- /* Place a solib_event breakpoint on the symbol. */
- CORE_ADDR event_addr = BMSYMBOL_VALUE_ADDRESS (event_sym);
- create_solib_event_breakpoint (get_objfile_arch (objfile), event_addr);
-
- /* Store the address of the symbol that will point to OpenCL program
- using the per-objfile private data mechanism. */
- if (ocl_program_data_key.get (objfile) == NULL)
- {
- CORE_ADDR *ocl_program_addr_base = OBSTACK_CALLOC (
- &objfile->objfile_obstack,
- objfile->sections_end - objfile->sections,
- CORE_ADDR);
- *ocl_program_addr_base = BMSYMBOL_VALUE_ADDRESS (addr_sym);
- ocl_program_data_key.set (objfile, ocl_program_addr_base);
- }
- }
-}
-
-/* Create inferior hook. */
-static void
-spu_solib_create_inferior_hook (int from_tty)
-{
- /* Handle SPE stand-alone executables. */
- if (spu_standalone_p ())
- {
- /* After an SPE stand-alone executable was loaded, we'll receive
- an additional trap due to the binfmt_misc handler. Make sure
- to skip that trap. */
- spu_skip_standalone_loader ();
-
- /* If the user established breakpoints before starting the inferior, GDB
- would attempt to insert those now. This would fail because the SPU
- context has not yet been created and the SPU executable has not yet
- been loaded. To prevent such failures, we disable all user-created
- breakpoints now; they will be re-enabled in spu_current_sos once the
- main SPU context has been detected. */
- disable_breakpoints_before_startup ();
-
- /* A special case arises when re-starting an executable, because at
- this point it still resides at the relocated address range that was
- determined during its last execution. We need to undo the relocation
- so that that multi-architecture target recognizes the stand-alone
- initialization special case. */
- spu_relocate_main_executable (-1);
- }
-
- /* Call SVR4 hook -- this will re-insert the SVR4 solib breakpoints. */
- svr4_so_ops.solib_create_inferior_hook (from_tty);
-
- /* If the inferior is statically linked against libspe, we need to install
- our own solib breakpoint right now. Otherwise, it will be installed by
- the solib_loaded observer below as soon as libspe is loaded. */
- spu_enable_break (NULL);
-}
-
-/* Install SPE "shared library" handling. This is called by -tdep code
- that wants to support SPU as a secondary architecture. */
-void
-set_spu_solib_ops (struct gdbarch *gdbarch)
-{
- static struct target_so_ops spu_so_ops;
-
- /* Initialize this lazily, to avoid an initialization order
- dependency on solib-svr4.c's _initialize routine. */
- if (spu_so_ops.current_sos == NULL)
- {
- spu_so_ops = svr4_so_ops;
- spu_so_ops.solib_create_inferior_hook = spu_solib_create_inferior_hook;
- spu_so_ops.relocate_section_addresses = spu_relocate_section_addresses;
- spu_so_ops.free_so = spu_free_so;
- spu_so_ops.current_sos = spu_current_sos;
- spu_so_ops.bfd_open = spu_bfd_open;
- spu_so_ops.lookup_lib_global_symbol = spu_lookup_lib_symbol;
- }
-
- set_solib_ops (gdbarch, &spu_so_ops);
-}
-
-/* Observer for the solib_loaded event. Used to install our breakpoint
- if libspe is a shared library. */
-static void
-spu_solib_loaded (struct so_list *so)
-{
- if (strstr (so->so_original_name, "/libspe") != NULL)
- {
- solib_read_symbols (so, 0);
- spu_enable_break (so->objfile);
- }
- /* In case the OpenCL runtime is loaded we install a breakpoint
- to get notified whenever an OpenCL program gets loaded. */
- if (strstr (so->so_name, "CLRuntimeAccelCellSPU@") != NULL)
- {
- solib_read_symbols (so, 0);
- ocl_enable_break (so->objfile);
- }
-}
-
-void
-_initialize_spu_solib (void)
-{
- gdb::observers::solib_loaded.attach (spu_solib_loaded);
-}
-
diff --git a/gdb/solib-spu.h b/gdb/solib-spu.h
deleted file mode 100644
index a7a65336f8..0000000000
--- a/gdb/solib-spu.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Cell SPU GNU/Linux support -- shared library handling.
-
- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef SOLIB_SPU_H
-#define SOLIB_SPU_H
-
-extern void set_spu_solib_ops (struct gdbarch *gdbarch);
-
-#endif
diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c
deleted file mode 100644
index 635366b4f1..0000000000
--- a/gdb/spu-linux-nat.c
+++ /dev/null
@@ -1,661 +0,0 @@
-/* SPU native-dependent code for GDB, the GNU debugger.
- Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "gdbcore.h"
-#include "target.h"
-#include "inferior.h"
-#include "inf-child.h"
-#include "inf-ptrace.h"
-#include "regcache.h"
-#include "symfile.h"
-#include "gdbsupport/gdb_wait.h"
-#include "gdbthread.h"
-#include "gdb_bfd.h"
-
-#include "nat/gdb_ptrace.h"
-#include <asm/ptrace.h>
-#include <sys/types.h>
-
-#include "spu-tdep.h"
-
-/* PPU side system calls. */
-#define INSTR_SC 0x44000002
-#define NR_spu_run 0x0116
-
-class spu_linux_nat_target final : public inf_ptrace_target
-{
-public:
- void fetch_registers (struct regcache *regcache, int regnum) override;
- void store_registers (struct regcache *regcache, int regnum) override;
-
- void post_attach (int) override;
- void post_startup_inferior (ptid_t) override;
-
- ptid_t wait (ptid_t, struct target_waitstatus *, int options) override;
-
- enum target_xfer_status xfer_partial (enum target_object object,
- const char *annex,
- gdb_byte *readbuf,
- const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len,
- ULONGEST *xfered_len) override;
-
- int can_use_hw_breakpoint (enum bptype, int, int) override;
-};
-
-static spu_linux_nat_target the_spu_linux_nat_target;
-
-/* Fetch PPU register REGNO. */
-static ULONGEST
-fetch_ppc_register (int regno)
-{
- PTRACE_TYPE_RET res;
-
- int tid = inferior_ptid.lwp ();
- if (tid == 0)
- tid = inferior_ptid.pid ();
-
-#ifndef __powerpc64__
- /* If running as a 32-bit process on a 64-bit system, we attempt
- to get the full 64-bit register content of the target process.
- If the PPC special ptrace call fails, we're on a 32-bit system;
- just fall through to the regular ptrace call in that case. */
- {
- gdb_byte buf[8];
-
- errno = 0;
- ptrace (PPC_PTRACE_PEEKUSR_3264, tid,
- (PTRACE_TYPE_ARG3) (regno * 8), buf);
- if (errno == 0)
- ptrace (PPC_PTRACE_PEEKUSR_3264, tid,
- (PTRACE_TYPE_ARG3) (regno * 8 + 4), buf + 4);
- if (errno == 0)
- return (ULONGEST) *(uint64_t *)buf;
- }
-#endif
-
- errno = 0;
- res = ptrace (PT_READ_U, tid,
- (PTRACE_TYPE_ARG3) (regno * sizeof (PTRACE_TYPE_RET)), 0);
- if (errno != 0)
- {
- char mess[128];
- xsnprintf (mess, sizeof mess, "reading PPC register #%d", regno);
- perror_with_name (_(mess));
- }
-
- return (ULONGEST) (unsigned long) res;
-}
-
-/* Fetch WORD from PPU memory at (aligned) MEMADDR in thread TID. */
-static int
-fetch_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET *word)
-{
- errno = 0;
-
-#ifndef __powerpc64__
- if (memaddr >> 32)
- {
- uint64_t addr_8 = (uint64_t) memaddr;
- ptrace (PPC_PTRACE_PEEKTEXT_3264, tid, (PTRACE_TYPE_ARG3) &addr_8, word);
- }
- else
-#endif
- *word = ptrace (PT_READ_I, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, 0);
-
- return errno;
-}
-
-/* Store WORD into PPU memory at (aligned) MEMADDR in thread TID. */
-static int
-store_ppc_memory_1 (int tid, ULONGEST memaddr, PTRACE_TYPE_RET word)
-{
- errno = 0;
-
-#ifndef __powerpc64__
- if (memaddr >> 32)
- {
- uint64_t addr_8 = (uint64_t) memaddr;
- ptrace (PPC_PTRACE_POKEDATA_3264, tid, (PTRACE_TYPE_ARG3) &addr_8, word);
- }
- else
-#endif
- ptrace (PT_WRITE_D, tid, (PTRACE_TYPE_ARG3) (size_t) memaddr, word);
-
- return errno;
-}
-
-/* Fetch LEN bytes of PPU memory at MEMADDR to MYADDR. */
-static int
-fetch_ppc_memory (ULONGEST memaddr, gdb_byte *myaddr, int len)
-{
- int i, ret;
-
- ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
- int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
- / sizeof (PTRACE_TYPE_RET));
- PTRACE_TYPE_RET *buffer;
-
- int tid = inferior_ptid.lwp ();
- if (tid == 0)
- tid = inferior_ptid.pid ();
-
- buffer = (PTRACE_TYPE_RET *) alloca (count * sizeof (PTRACE_TYPE_RET));
- for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
- {
- ret = fetch_ppc_memory_1 (tid, addr, &buffer[i]);
- if (ret)
- return ret;
- }
-
- memcpy (myaddr,
- (char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
- len);
-
- return 0;
-}
-
-/* Store LEN bytes from MYADDR to PPU memory at MEMADDR. */
-static int
-store_ppc_memory (ULONGEST memaddr, const gdb_byte *myaddr, int len)
-{
- int i, ret;
-
- ULONGEST addr = memaddr & -(ULONGEST) sizeof (PTRACE_TYPE_RET);
- int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
- / sizeof (PTRACE_TYPE_RET));
- PTRACE_TYPE_RET *buffer;
-
- int tid = inferior_ptid.lwp ();
- if (tid == 0)
- tid = inferior_ptid.pid ();
-
- buffer = (PTRACE_TYPE_RET *) alloca (count * sizeof (PTRACE_TYPE_RET));
-
- if (addr != memaddr || len < (int) sizeof (PTRACE_TYPE_RET))
- {
- ret = fetch_ppc_memory_1 (tid, addr, &buffer[0]);
- if (ret)
- return ret;
- }
-
- if (count > 1)
- {
- ret = fetch_ppc_memory_1 (tid, addr + (count - 1)
- * sizeof (PTRACE_TYPE_RET),
- &buffer[count - 1]);
- if (ret)
- return ret;
- }
-
- memcpy ((char *) buffer + (memaddr & (sizeof (PTRACE_TYPE_RET) - 1)),
- myaddr, len);
-
- for (i = 0; i < count; i++, addr += sizeof (PTRACE_TYPE_RET))
- {
- ret = store_ppc_memory_1 (tid, addr, buffer[i]);
- if (ret)
- return ret;
- }
-
- return 0;
-}
-
-
-/* If the PPU thread is currently stopped on a spu_run system call,
- return to FD and ADDR the file handle and NPC parameter address
- used with the system call. Return non-zero if successful. */
-static int
-parse_spufs_run (int *fd, ULONGEST *addr)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- gdb_byte buf[4];
- ULONGEST pc = fetch_ppc_register (32); /* nip */
-
- /* Fetch instruction preceding current NIP. */
- if (fetch_ppc_memory (pc-4, buf, 4) != 0)
- return 0;
- /* It should be a "sc" instruction. */
- if (extract_unsigned_integer (buf, 4, byte_order) != INSTR_SC)
- return 0;
- /* System call number should be NR_spu_run. */
- if (fetch_ppc_register (0) != NR_spu_run)
- return 0;
-
- /* Register 3 contains fd, register 4 the NPC param pointer. */
- *fd = fetch_ppc_register (34); /* orig_gpr3 */
- *addr = fetch_ppc_register (4);
- return 1;
-}
-
-
-/* Implement the to_xfer_partial target_ops method for TARGET_OBJECT_SPU.
- Copy LEN bytes at OFFSET in spufs file ANNEX into/from READBUF or WRITEBUF,
- using the /proc file system. */
-
-static enum target_xfer_status
-spu_proc_xfer_spu (const char *annex, gdb_byte *readbuf,
- const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
-{
- char buf[128];
- int fd = 0;
- int ret = -1;
- int pid = inferior_ptid.pid ();
-
- if (!annex)
- return TARGET_XFER_EOF;
-
- xsnprintf (buf, sizeof buf, "/proc/%d/fd/%s", pid, annex);
- fd = open (buf, writebuf? O_WRONLY : O_RDONLY);
- if (fd <= 0)
- return TARGET_XFER_E_IO;
-
- if (offset != 0
- && lseek (fd, (off_t) offset, SEEK_SET) != (off_t) offset)
- {
- close (fd);
- return TARGET_XFER_EOF;
- }
-
- if (writebuf)
- ret = write (fd, writebuf, (size_t) len);
- else if (readbuf)
- ret = read (fd, readbuf, (size_t) len);
-
- close (fd);
- if (ret < 0)
- return TARGET_XFER_E_IO;
- else if (ret == 0)
- return TARGET_XFER_EOF;
- else
- {
- *xfered_len = (ULONGEST) ret;
- return TARGET_XFER_OK;
- }
-}
-
-
-/* Inferior memory should contain an SPE executable image at location ADDR.
- Allocate a BFD representing that executable. Return NULL on error. */
-
-static void *
-spu_bfd_iovec_open (struct bfd *nbfd, void *open_closure)
-{
- return open_closure;
-}
-
-static int
-spu_bfd_iovec_close (struct bfd *nbfd, void *stream)
-{
- xfree (stream);
-
- /* Zero means success. */
- return 0;
-}
-
-static file_ptr
-spu_bfd_iovec_pread (struct bfd *abfd, void *stream, void *buf,
- file_ptr nbytes, file_ptr offset)
-{
- ULONGEST addr = *(ULONGEST *)stream;
-
- if (fetch_ppc_memory (addr + offset, (gdb_byte *)buf, nbytes) != 0)
- {
- bfd_set_error (bfd_error_invalid_operation);
- return -1;
- }
-
- return nbytes;
-}
-
-static int
-spu_bfd_iovec_stat (struct bfd *abfd, void *stream, struct stat *sb)
-{
- /* We don't have an easy way of finding the size of embedded spu
- images. We could parse the in-memory ELF header and section
- table to find the extent of the last section but that seems
- pointless when the size is needed only for checks of other
- parsed values in dbxread.c. */
- memset (sb, 0, sizeof (struct stat));
- sb->st_size = INT_MAX;
- return 0;
-}
-
-static gdb_bfd_ref_ptr
-spu_bfd_open (ULONGEST addr)
-{
- asection *spu_name;
-
- ULONGEST *open_closure = XNEW (ULONGEST);
- *open_closure = addr;
-
- gdb_bfd_ref_ptr nbfd (gdb_bfd_openr_iovec ("<in-memory>", "elf32-spu",
- spu_bfd_iovec_open, open_closure,
- spu_bfd_iovec_pread,
- spu_bfd_iovec_close,
- spu_bfd_iovec_stat));
- if (nbfd == NULL)
- return NULL;
-
- if (!bfd_check_format (nbfd.get (), bfd_object))
- return NULL;
-
- /* Retrieve SPU name note and update BFD name. */
- spu_name = bfd_get_section_by_name (nbfd.get (), ".note.spu_name");
- if (spu_name)
- {
- int sect_size = bfd_section_size (spu_name);
- if (sect_size > 20)
- {
- char *buf = (char *)alloca (sect_size - 20 + 1);
- bfd_get_section_contents (nbfd.get (), spu_name, buf, 20,
- sect_size - 20);
- buf[sect_size - 20] = '\0';
-
- bfd_set_filename (nbfd.get (), xstrdup (buf));
- }
- }
-
- return nbfd;
-}
-
-/* INFERIOR_FD is a file handle passed by the inferior to the
- spu_run system call. Assuming the SPE context was allocated
- by the libspe library, try to retrieve the main SPE executable
- file from its copy within the target process. */
-static void
-spu_symbol_file_add_from_memory (int inferior_fd)
-{
- ULONGEST addr;
-
- gdb_byte id[128];
- char annex[32];
- ULONGEST len;
- enum target_xfer_status status;
-
- /* Read object ID. */
- xsnprintf (annex, sizeof annex, "%d/object-id", inferior_fd);
- status = spu_proc_xfer_spu (annex, id, NULL, 0, sizeof id, &len);
- if (status != TARGET_XFER_OK || len >= sizeof id)
- return;
- id[len] = 0;
- addr = strtoulst ((const char *) id, NULL, 16);
- if (!addr)
- return;
-
- /* Open BFD representing SPE executable and read its symbols. */
- gdb_bfd_ref_ptr nbfd (spu_bfd_open (addr));
- if (nbfd != NULL)
- {
- symbol_file_add_from_bfd (nbfd.get (), bfd_get_filename (nbfd),
- SYMFILE_VERBOSE | SYMFILE_MAINLINE,
- NULL, 0, NULL);
- }
-}
-
-
-/* Override the post_startup_inferior routine to continue running
- the inferior until the first spu_run system call. */
-void
-spu_linux_nat_target::post_startup_inferior (ptid_t ptid)
-{
- int fd;
- ULONGEST addr;
-
- int tid = ptid.lwp ();
- if (tid == 0)
- tid = ptid.pid ();
-
- while (!parse_spufs_run (&fd, &addr))
- {
- ptrace (PT_SYSCALL, tid, (PTRACE_TYPE_ARG3) 0, 0);
- waitpid (tid, NULL, __WALL | __WNOTHREAD);
- }
-}
-
-/* Override the post_attach routine to try load the SPE executable
- file image from its copy inside the target process. */
-void
-spu_linux_nat_target::post_attach (int pid)
-{
- int fd;
- ULONGEST addr;
-
- /* Like child_post_startup_inferior, if we happened to attach to
- the inferior while it wasn't currently in spu_run, continue
- running it until we get back there. */
- while (!parse_spufs_run (&fd, &addr))
- {
- ptrace (PT_SYSCALL, pid, (PTRACE_TYPE_ARG3) 0, 0);
- waitpid (pid, NULL, __WALL | __WNOTHREAD);
- }
-
- /* If the user has not provided an executable file, try to extract
- the image from inside the target process. */
- if (!get_exec_file (0))
- spu_symbol_file_add_from_memory (fd);
-}
-
-/* Wait for child PTID to do something. Return id of the child,
- minus_one_ptid in case of error; store status into *OURSTATUS. */
-ptid_t
-spu_linux_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
- int options)
-{
- int save_errno;
- int status;
- pid_t pid;
-
- do
- {
- set_sigint_trap (); /* Causes SIGINT to be passed on to the
- attached process. */
-
- pid = waitpid (ptid.pid (), &status, 0);
- if (pid == -1 && errno == ECHILD)
- /* Try again with __WCLONE to check cloned processes. */
- pid = waitpid (ptid.pid (), &status, __WCLONE);
-
- save_errno = errno;
-
- /* Make sure we don't report an event for the exit of the
- original program, if we've detached from it. */
- if (pid != -1 && !WIFSTOPPED (status)
- && pid != inferior_ptid.pid ())
- {
- pid = -1;
- save_errno = EINTR;
- }
-
- clear_sigint_trap ();
- }
- while (pid == -1 && save_errno == EINTR);
-
- if (pid == -1)
- {
- warning (_("Child process unexpectedly missing: %s"),
- safe_strerror (save_errno));
-
- /* Claim it exited with unknown signal. */
- ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
- ourstatus->value.sig = GDB_SIGNAL_UNKNOWN;
- return inferior_ptid;
- }
-
- store_waitstatus (ourstatus, status);
- return ptid_t (pid);
-}
-
-/* Override the fetch_inferior_register routine. */
-void
-spu_linux_nat_target::fetch_registers (struct regcache *regcache, int regno)
-{
- int fd;
- ULONGEST addr;
-
- /* Since we use functions that rely on inferior_ptid, we need to set and
- restore it. */
- scoped_restore save_ptid
- = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return;
-
- /* The ID register holds the spufs file handle. */
- if (regno == -1 || regno == SPU_ID_REGNUM)
- {
- struct gdbarch *gdbarch = regcache->arch ();
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- gdb_byte buf[4];
- store_unsigned_integer (buf, 4, byte_order, fd);
- regcache->raw_supply (SPU_ID_REGNUM, buf);
- }
-
- /* The NPC register is found at ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- gdb_byte buf[4];
- if (fetch_ppc_memory (addr, buf, 4) == 0)
- regcache->raw_supply (SPU_PC_REGNUM, buf);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
- {
- gdb_byte buf[16 * SPU_NUM_GPRS];
- char annex[32];
- int i;
- ULONGEST len;
-
- xsnprintf (annex, sizeof annex, "%d/regs", fd);
- if ((spu_proc_xfer_spu (annex, buf, NULL, 0, sizeof buf, &len)
- == TARGET_XFER_OK)
- && len == sizeof buf)
- for (i = 0; i < SPU_NUM_GPRS; i++)
- regcache->raw_supply (i, buf + i*16);
- }
-}
-
-/* Override the store_inferior_register routine. */
-void
-spu_linux_nat_target::store_registers (struct regcache *regcache, int regno)
-{
- int fd;
- ULONGEST addr;
-
- /* Since we use functions that rely on inferior_ptid, we need to set and
- restore it. */
- scoped_restore save_ptid
- = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return;
-
- /* The NPC register is found at ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- gdb_byte buf[4];
- regcache->raw_collect (SPU_PC_REGNUM, buf);
- store_ppc_memory (addr, buf, 4);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
- {
- gdb_byte buf[16 * SPU_NUM_GPRS];
- char annex[32];
- int i;
- ULONGEST len;
-
- for (i = 0; i < SPU_NUM_GPRS; i++)
- regcache->raw_collect (i, buf + i*16);
-
- xsnprintf (annex, sizeof annex, "%d/regs", fd);
- spu_proc_xfer_spu (annex, NULL, buf, 0, sizeof buf, &len);
- }
-}
-
-/* Override the to_xfer_partial routine. */
-enum target_xfer_status
-spu_linux_nat_target::xfer_partial (enum target_object object, const char *annex,
- gdb_byte *readbuf, const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len,
- ULONGEST *xfered_len)
-{
- if (object == TARGET_OBJECT_SPU)
- return spu_proc_xfer_spu (annex, readbuf, writebuf, offset, len,
- xfered_len);
-
- if (object == TARGET_OBJECT_MEMORY)
- {
- int fd;
- ULONGEST addr;
- char mem_annex[32], lslr_annex[32];
- gdb_byte buf[32];
- ULONGEST lslr;
- enum target_xfer_status ret;
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (&fd, &addr))
- return TARGET_XFER_EOF;
-
- /* Use the "mem" spufs file to access SPU local store. */
- xsnprintf (mem_annex, sizeof mem_annex, "%d/mem", fd);
- ret = spu_proc_xfer_spu (mem_annex, readbuf, writebuf, offset, len,
- xfered_len);
- if (ret == TARGET_XFER_OK)
- return ret;
-
- /* SPU local store access wraps the address around at the
- local store limit. We emulate this here. To avoid needing
- an extra access to retrieve the LSLR, we only do that after
- trying the original address first, and getting end-of-file. */
- xsnprintf (lslr_annex, sizeof lslr_annex, "%d/lslr", fd);
- memset (buf, 0, sizeof buf);
- if (spu_proc_xfer_spu (lslr_annex, buf, NULL, 0, sizeof buf, xfered_len)
- != TARGET_XFER_OK)
- return ret;
-
- lslr = strtoulst ((const char *) buf, NULL, 16);
- return spu_proc_xfer_spu (mem_annex, readbuf, writebuf,
- offset & lslr, len, xfered_len);
- }
-
- return TARGET_XFER_E_IO;
-}
-
-/* Override the to_can_use_hw_breakpoint routine. */
-int
-spu_linux_nat_target::can_use_hw_breakpoint (enum bptype type,
- int cnt, int othertype)
-{
- return 0;
-}
-
-/* Initialize SPU native target. */
-void
-_initialize_spu_nat (void)
-{
- add_inf_child_target (&the_spu_linux_nat_target);
-}
diff --git a/gdb/spu-multiarch.c b/gdb/spu-multiarch.c
deleted file mode 100644
index 88ad291dbd..0000000000
--- a/gdb/spu-multiarch.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/* Cell SPU GNU/Linux multi-architecture debugging support.
- Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "gdbcore.h"
-#include "gdbcmd.h"
-#include "arch-utils.h"
-#include "observable.h"
-#include "inferior.h"
-#include "regcache.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "solib.h"
-#include "solist.h"
-
-#include "ppc-tdep.h"
-#include "ppc-linux-tdep.h"
-#include "spu-tdep.h"
-
-/* The SPU multi-architecture support target. */
-
-static const target_info spu_multiarch_target_info = {
- "spu",
- N_("SPU multi-architecture support."),
- N_("SPU multi-architecture support.")
-};
-
-struct spu_multiarch_target final : public target_ops
-{
- const target_info &info () const override
- { return spu_multiarch_target_info; }
-
- strata stratum () const override { return arch_stratum; }
-
- void mourn_inferior () override;
-
- void fetch_registers (struct regcache *, int) override;
- void store_registers (struct regcache *, int) override;
-
- enum target_xfer_status xfer_partial (enum target_object object,
- const char *annex,
- gdb_byte *readbuf,
- const gdb_byte *writebuf,
- ULONGEST offset, ULONGEST len,
- ULONGEST *xfered_len) override;
-
- int search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
- const gdb_byte *pattern, ULONGEST pattern_len,
- CORE_ADDR *found_addrp) override;
-
- int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
-
- struct gdbarch *thread_architecture (ptid_t) override;
-};
-
-static spu_multiarch_target spu_ops;
-
-/* Number of SPE objects loaded into the current inferior. */
-static int spu_nr_solib;
-
-/* Stand-alone SPE executable? */
-#define spu_standalone_p() \
- (symfile_objfile && symfile_objfile->obfd \
- && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu)
-
-/* PPU side system calls. */
-#define INSTR_SC 0x44000002
-#define NR_spu_run 0x0116
-
-/* If the PPU thread is currently stopped on a spu_run system call,
- return to FD and ADDR the file handle and NPC parameter address
- used with the system call. Return non-zero if successful. */
-static int
-parse_spufs_run (ptid_t ptid, int *fd, CORE_ADDR *addr)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
- struct gdbarch_tdep *tdep;
- struct regcache *regcache;
- gdb_byte buf[4];
- ULONGEST regval;
-
- /* If we're not on PPU, there's nothing to detect. */
- if (gdbarch_bfd_arch_info (target_gdbarch ())->arch != bfd_arch_powerpc)
- return 0;
-
- /* If we're called too early (e.g. after fork), we cannot
- access the inferior yet. */
- if (find_inferior_ptid (ptid) == NULL)
- return 0;
-
- /* Get PPU-side registers. */
- regcache = get_thread_arch_regcache (ptid, target_gdbarch ());
- tdep = gdbarch_tdep (target_gdbarch ());
-
- /* Fetch instruction preceding current NIP. */
- {
- scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
- inferior_ptid = ptid;
- regval = target_read_memory (regcache_read_pc (regcache) - 4, buf, 4);
- }
- if (regval != 0)
- return 0;
- /* It should be a "sc" instruction. */
- if (extract_unsigned_integer (buf, 4, byte_order) != INSTR_SC)
- return 0;
- /* System call number should be NR_spu_run. */
- regcache_cooked_read_unsigned (regcache, tdep->ppc_gp0_regnum, ®val);
- if (regval != NR_spu_run)
- return 0;
-
- /* Register 3 contains fd, register 4 the NPC param pointer. */
- regcache_cooked_read_unsigned (regcache, PPC_ORIG_R3_REGNUM, ®val);
- *fd = (int) regval;
- regcache_cooked_read_unsigned (regcache, tdep->ppc_gp0_regnum + 4, ®val);
- *addr = (CORE_ADDR) regval;
- return 1;
-}
-
-/* Find gdbarch for SPU context SPUFS_FD. */
-static struct gdbarch *
-spu_gdbarch (int spufs_fd)
-{
- struct gdbarch_info info;
- gdbarch_info_init (&info);
- info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
- info.byte_order = BFD_ENDIAN_BIG;
- info.osabi = GDB_OSABI_LINUX;
- info.id = &spufs_fd;
- return gdbarch_find_by_info (info);
-}
-
-/* Override the to_thread_architecture routine. */
-struct gdbarch *
-spu_multiarch_target::thread_architecture (ptid_t ptid)
-{
- int spufs_fd;
- CORE_ADDR spufs_addr;
-
- if (parse_spufs_run (ptid, &spufs_fd, &spufs_addr))
- return spu_gdbarch (spufs_fd);
-
- return beneath ()->thread_architecture (ptid);
-}
-
-/* Override the to_region_ok_for_hw_watchpoint routine. */
-
-int
-spu_multiarch_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
-{
- /* We cannot watch SPU local store. */
- if (SPUADDR_SPU (addr) != -1)
- return 0;
-
- return beneath ()->region_ok_for_hw_watchpoint (addr, len);
-}
-
-/* Override the to_fetch_registers routine. */
-
-void
-spu_multiarch_target::fetch_registers (struct regcache *regcache, int regno)
-{
- struct gdbarch *gdbarch = regcache->arch ();
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- int spufs_fd;
- CORE_ADDR spufs_addr;
-
- /* Since we use functions that rely on inferior_ptid, we need to set and
- restore it. */
- scoped_restore save_ptid
- = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
- /* This version applies only if we're currently in spu_run. */
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- {
- beneath ()->fetch_registers (regcache, regno);
- return;
- }
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (inferior_ptid, &spufs_fd, &spufs_addr))
- return;
-
- /* The ID register holds the spufs file handle. */
- if (regno == -1 || regno == SPU_ID_REGNUM)
- {
- gdb_byte buf[4];
- store_unsigned_integer (buf, 4, byte_order, spufs_fd);
- regcache->raw_supply (SPU_ID_REGNUM, buf);
- }
-
- /* The NPC register is found in PPC memory at SPUFS_ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- gdb_byte buf[4];
-
- if (target_read (beneath (), TARGET_OBJECT_MEMORY, NULL,
- buf, spufs_addr, sizeof buf) == sizeof buf)
- regcache->raw_supply (SPU_PC_REGNUM, buf);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
- {
- gdb_byte buf[16 * SPU_NUM_GPRS];
- char annex[32];
- int i;
-
- xsnprintf (annex, sizeof annex, "%d/regs", spufs_fd);
- if (target_read (beneath (), TARGET_OBJECT_SPU, annex,
- buf, 0, sizeof buf) == sizeof buf)
- for (i = 0; i < SPU_NUM_GPRS; i++)
- regcache->raw_supply (i, buf + i*16);
- }
-}
-
-/* Override the to_store_registers routine. */
-
-void
-spu_multiarch_target::store_registers (struct regcache *regcache, int regno)
-{
- struct gdbarch *gdbarch = regcache->arch ();
- int spufs_fd;
- CORE_ADDR spufs_addr;
-
- /* Since we use functions that rely on inferior_ptid, we need to set and
- restore it. */
- scoped_restore save_ptid
- = make_scoped_restore (&inferior_ptid, regcache->ptid ());
-
- /* This version applies only if we're currently in spu_run. */
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- {
- beneath ()->store_registers (regcache, regno);
- return;
- }
-
- /* We must be stopped on a spu_run system call. */
- if (!parse_spufs_run (inferior_ptid, &spufs_fd, &spufs_addr))
- return;
-
- /* The NPC register is found in PPC memory at SPUFS_ADDR. */
- if (regno == -1 || regno == SPU_PC_REGNUM)
- {
- gdb_byte buf[4];
- regcache->raw_collect (SPU_PC_REGNUM, buf);
-
- target_write (beneath (), TARGET_OBJECT_MEMORY, NULL,
- buf, spufs_addr, sizeof buf);
- }
-
- /* The GPRs are found in the "regs" spufs file. */
- if (regno == -1 || (regno >= 0 && regno < SPU_NUM_GPRS))
- {
- gdb_byte buf[16 * SPU_NUM_GPRS];
- char annex[32];
- int i;
-
- for (i = 0; i < SPU_NUM_GPRS; i++)
- regcache->raw_collect (i, buf + i*16);
-
- xsnprintf (annex, sizeof annex, "%d/regs", spufs_fd);
- target_write (beneath (), TARGET_OBJECT_SPU, annex,
- buf, 0, sizeof buf);
- }
-}
-
-/* Override the to_xfer_partial routine. */
-
-enum target_xfer_status
-spu_multiarch_target::xfer_partial (enum target_object object,
- const char *annex, gdb_byte *readbuf,
- const gdb_byte *writebuf, ULONGEST offset, ULONGEST len,
- ULONGEST *xfered_len)
-{
- struct target_ops *ops_beneath = this->beneath ();
-
- /* Use the "mem" spufs file to access SPU local store. */
- if (object == TARGET_OBJECT_MEMORY)
- {
- int fd = SPUADDR_SPU (offset);
- CORE_ADDR addr = SPUADDR_ADDR (offset);
- char mem_annex[32], lslr_annex[32];
- gdb_byte buf[32];
- ULONGEST lslr;
- enum target_xfer_status ret;
-
- if (fd >= 0)
- {
- xsnprintf (mem_annex, sizeof mem_annex, "%d/mem", fd);
- ret = ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
- mem_annex, readbuf, writebuf,
- addr, len, xfered_len);
- if (ret == TARGET_XFER_OK)
- return ret;
-
- /* SPU local store access wraps the address around at the
- local store limit. We emulate this here. To avoid needing
- an extra access to retrieve the LSLR, we only do that after
- trying the original address first, and getting end-of-file. */
- xsnprintf (lslr_annex, sizeof lslr_annex, "%d/lslr", fd);
- memset (buf, 0, sizeof buf);
- if (ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
- lslr_annex, buf, NULL,
- 0, sizeof buf, xfered_len)
- != TARGET_XFER_OK)
- return ret;
-
- lslr = strtoulst ((char *) buf, NULL, 16);
- return ops_beneath->xfer_partial (TARGET_OBJECT_SPU,
- mem_annex, readbuf, writebuf,
- addr & lslr, len, xfered_len);
- }
- }
-
- return ops_beneath->xfer_partial (object, annex,
- readbuf, writebuf, offset, len, xfered_len);
-}
-
-/* Override the to_search_memory routine. */
-int
-spu_multiarch_target::search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
- const gdb_byte *pattern, ULONGEST pattern_len,
- CORE_ADDR *found_addrp)
-{
- /* For SPU local store, always fall back to the simple method. */
- if (SPUADDR_SPU (start_addr) >= 0)
- return simple_search_memory (this, start_addr, search_space_len,
- pattern, pattern_len, found_addrp);
-
- return beneath ()->search_memory (start_addr, search_space_len,
- pattern, pattern_len, found_addrp);
-}
-
-
-/* Push and pop the SPU multi-architecture support target. */
-
-static void
-spu_multiarch_activate (void)
-{
- /* If GDB was configured without SPU architecture support,
- we cannot install SPU multi-architecture support either. */
- if (spu_gdbarch (-1) == NULL)
- return;
-
- push_target (&spu_ops);
-
- /* Make sure the thread architecture is re-evaluated. */
- registers_changed ();
-}
-
-static void
-spu_multiarch_deactivate (void)
-{
- unpush_target (&spu_ops);
-
- /* Make sure the thread architecture is re-evaluated. */
- registers_changed ();
-}
-
-static void
-spu_multiarch_inferior_created (struct target_ops *ops, int from_tty)
-{
- if (spu_standalone_p ())
- spu_multiarch_activate ();
-}
-
-static void
-spu_multiarch_solib_loaded (struct so_list *so)
-{
- if (!spu_standalone_p ())
- if (so->abfd && bfd_get_arch (so->abfd) == bfd_arch_spu)
- if (spu_nr_solib++ == 0)
- spu_multiarch_activate ();
-}
-
-static void
-spu_multiarch_solib_unloaded (struct so_list *so)
-{
- if (!spu_standalone_p ())
- if (so->abfd && bfd_get_arch (so->abfd) == bfd_arch_spu)
- if (--spu_nr_solib == 0)
- spu_multiarch_deactivate ();
-}
-
-void
-spu_multiarch_target::mourn_inferior ()
-{
- beneath ()->mourn_inferior ();
- spu_multiarch_deactivate ();
-}
-
-void
-_initialize_spu_multiarch (void)
-{
- /* Install observers to watch for SPU objects. */
- gdb::observers::inferior_created.attach (spu_multiarch_inferior_created);
- gdb::observers::solib_loaded.attach (spu_multiarch_solib_loaded);
- gdb::observers::solib_unloaded.attach (spu_multiarch_solib_unloaded);
-}
-
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
deleted file mode 100644
index 5360efb12f..0000000000
--- a/gdb/spu-tdep.c
+++ /dev/null
@@ -1,2835 +0,0 @@
-/* SPU target-dependent code for GDB, the GNU debugger.
- Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
- Based on a port by Sid Manning <sid@us.ibm.com>.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "arch-utils.h"
-#include "gdbtypes.h"
-#include "gdbcmd.h"
-#include "gdbcore.h"
-#include "frame.h"
-#include "frame-unwind.h"
-#include "frame-base.h"
-#include "trad-frame.h"
-#include "symtab.h"
-#include "symfile.h"
-#include "value.h"
-#include "inferior.h"
-#include "dis-asm.h"
-#include "disasm.h"
-#include "objfiles.h"
-#include "language.h"
-#include "regcache.h"
-#include "reggroups.h"
-#include "block.h"
-#include "observable.h"
-#include "infcall.h"
-#include "dwarf2.h"
-#include "dwarf2-frame.h"
-#include "ax.h"
-#include "spu-tdep.h"
-#include "location.h"
-
-/* The list of available "set spu " and "show spu " commands. */
-static struct cmd_list_element *setspucmdlist = NULL;
-static struct cmd_list_element *showspucmdlist = NULL;
-
-/* Whether to stop for new SPE contexts. */
-static bool spu_stop_on_load_p = false;
-/* Whether to automatically flush the SW-managed cache. */
-static bool spu_auto_flush_cache_p = true;
-
-
-/* The tdep structure. */
-struct gdbarch_tdep
-{
- /* The spufs ID identifying our address space. */
- int id;
-
- /* SPU-specific vector type. */
- struct type *spu_builtin_type_vec128;
-};
-
-
-/* SPU-specific vector type. */
-static struct type *
-spu_builtin_type_vec128 (struct gdbarch *gdbarch)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
- if (!tdep->spu_builtin_type_vec128)
- {
- const struct builtin_type *bt = builtin_type (gdbarch);
- struct type *t;
-
- t = arch_composite_type (gdbarch,
- "__spu_builtin_type_vec128", TYPE_CODE_UNION);
- append_composite_type_field (t, "uint128", bt->builtin_int128);
- append_composite_type_field (t, "v2_int64",
- init_vector_type (bt->builtin_int64, 2));
- append_composite_type_field (t, "v4_int32",
- init_vector_type (bt->builtin_int32, 4));
- append_composite_type_field (t, "v8_int16",
- init_vector_type (bt->builtin_int16, 8));
- append_composite_type_field (t, "v16_int8",
- init_vector_type (bt->builtin_int8, 16));
- append_composite_type_field (t, "v2_double",
- init_vector_type (bt->builtin_double, 2));
- append_composite_type_field (t, "v4_float",
- init_vector_type (bt->builtin_float, 4));
-
- TYPE_VECTOR (t) = 1;
- TYPE_NAME (t) = "spu_builtin_type_vec128";
-
- tdep->spu_builtin_type_vec128 = t;
- }
-
- return tdep->spu_builtin_type_vec128;
-}
-
-
-/* The list of available "info spu " commands. */
-static struct cmd_list_element *infospucmdlist = NULL;
-
-/* Registers. */
-
-static const char *
-spu_register_name (struct gdbarch *gdbarch, int reg_nr)
-{
- static const char *register_names[] =
- {
- "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
- "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
- "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
- "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
- "r32", "r33", "r34", "r35", "r36", "r37", "r38", "r39",
- "r40", "r41", "r42", "r43", "r44", "r45", "r46", "r47",
- "r48", "r49", "r50", "r51", "r52", "r53", "r54", "r55",
- "r56", "r57", "r58", "r59", "r60", "r61", "r62", "r63",
- "r64", "r65", "r66", "r67", "r68", "r69", "r70", "r71",
- "r72", "r73", "r74", "r75", "r76", "r77", "r78", "r79",
- "r80", "r81", "r82", "r83", "r84", "r85", "r86", "r87",
- "r88", "r89", "r90", "r91", "r92", "r93", "r94", "r95",
- "r96", "r97", "r98", "r99", "r100", "r101", "r102", "r103",
- "r104", "r105", "r106", "r107", "r108", "r109", "r110", "r111",
- "r112", "r113", "r114", "r115", "r116", "r117", "r118", "r119",
- "r120", "r121", "r122", "r123", "r124", "r125", "r126", "r127",
- "id", "pc", "sp", "fpscr", "srr0", "lslr", "decr", "decr_status"
- };
-
- if (reg_nr < 0)
- return NULL;
- if (reg_nr >= sizeof register_names / sizeof *register_names)
- return NULL;
-
- return register_names[reg_nr];
-}
-
-static struct type *
-spu_register_type (struct gdbarch *gdbarch, int reg_nr)
-{
- if (reg_nr < SPU_NUM_GPRS)
- return spu_builtin_type_vec128 (gdbarch);
-
- switch (reg_nr)
- {
- case SPU_ID_REGNUM:
- return builtin_type (gdbarch)->builtin_uint32;
-
- case SPU_PC_REGNUM:
- return builtin_type (gdbarch)->builtin_func_ptr;
-
- case SPU_SP_REGNUM:
- return builtin_type (gdbarch)->builtin_data_ptr;
-
- case SPU_FPSCR_REGNUM:
- return builtin_type (gdbarch)->builtin_uint128;
-
- case SPU_SRR0_REGNUM:
- return builtin_type (gdbarch)->builtin_uint32;
-
- case SPU_LSLR_REGNUM:
- return builtin_type (gdbarch)->builtin_uint32;
-
- case SPU_DECR_REGNUM:
- return builtin_type (gdbarch)->builtin_uint32;
-
- case SPU_DECR_STATUS_REGNUM:
- return builtin_type (gdbarch)->builtin_uint32;
-
- default:
- internal_error (__FILE__, __LINE__, _("invalid regnum"));
- }
-}
-
-/* Pseudo registers for preferred slots - stack pointer. */
-
-static enum register_status
-spu_pseudo_register_read_spu (readable_regcache *regcache, const char *regname,
- gdb_byte *buf)
-{
- struct gdbarch *gdbarch = regcache->arch ();
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- enum register_status status;
- gdb_byte reg[32];
- char annex[32];
- ULONGEST id;
- ULONGEST ul;
-
- status = regcache->raw_read (SPU_ID_REGNUM, &id);
- if (status != REG_VALID)
- return status;
- xsnprintf (annex, sizeof annex, "%d/%s", (int) id, regname);
- memset (reg, 0, sizeof reg);
- target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- reg, 0, sizeof reg);
-
- ul = strtoulst ((char *) reg, NULL, 16);
- store_unsigned_integer (buf, 4, byte_order, ul);
- return REG_VALID;
-}
-
-static enum register_status
-spu_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
- int regnum, gdb_byte *buf)
-{
- gdb_byte reg[16];
- char annex[32];
- ULONGEST id;
- enum register_status status;
-
- switch (regnum)
- {
- case SPU_SP_REGNUM:
- status = regcache->raw_read (SPU_RAW_SP_REGNUM, reg);
- if (status != REG_VALID)
- return status;
- memcpy (buf, reg, 4);
- return status;
-
- case SPU_FPSCR_REGNUM:
- status = regcache->raw_read (SPU_ID_REGNUM, &id);
- if (status != REG_VALID)
- return status;
- xsnprintf (annex, sizeof annex, "%d/fpcr", (int) id);
- target_read (current_top_target (), TARGET_OBJECT_SPU, annex, buf, 0, 16);
- return status;
-
- case SPU_SRR0_REGNUM:
- return spu_pseudo_register_read_spu (regcache, "srr0", buf);
-
- case SPU_LSLR_REGNUM:
- return spu_pseudo_register_read_spu (regcache, "lslr", buf);
-
- case SPU_DECR_REGNUM:
- return spu_pseudo_register_read_spu (regcache, "decr", buf);
-
- case SPU_DECR_STATUS_REGNUM:
- return spu_pseudo_register_read_spu (regcache, "decr_status", buf);
-
- default:
- internal_error (__FILE__, __LINE__, _("invalid regnum"));
- }
-}
-
-static void
-spu_pseudo_register_write_spu (struct regcache *regcache, const char *regname,
- const gdb_byte *buf)
-{
- struct gdbarch *gdbarch = regcache->arch ();
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- char reg[32];
- char annex[32];
- ULONGEST id;
-
- regcache_raw_read_unsigned (regcache, SPU_ID_REGNUM, &id);
- xsnprintf (annex, sizeof annex, "%d/%s", (int) id, regname);
- xsnprintf (reg, sizeof reg, "0x%s",
- phex_nz (extract_unsigned_integer (buf, 4, byte_order), 4));
- target_write (current_top_target (), TARGET_OBJECT_SPU, annex,
- (gdb_byte *) reg, 0, strlen (reg));
-}
-
-static void
-spu_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
- int regnum, const gdb_byte *buf)
-{
- gdb_byte reg[16];
- char annex[32];
- ULONGEST id;
-
- switch (regnum)
- {
- case SPU_SP_REGNUM:
- regcache->raw_read (SPU_RAW_SP_REGNUM, reg);
- memcpy (reg, buf, 4);
- regcache->raw_write (SPU_RAW_SP_REGNUM, reg);
- break;
-
- case SPU_FPSCR_REGNUM:
- regcache_raw_read_unsigned (regcache, SPU_ID_REGNUM, &id);
- xsnprintf (annex, sizeof annex, "%d/fpcr", (int) id);
- target_write (current_top_target (), TARGET_OBJECT_SPU, annex, buf, 0, 16);
- break;
-
- case SPU_SRR0_REGNUM:
- spu_pseudo_register_write_spu (regcache, "srr0", buf);
- break;
-
- case SPU_LSLR_REGNUM:
- spu_pseudo_register_write_spu (regcache, "lslr", buf);
- break;
-
- case SPU_DECR_REGNUM:
- spu_pseudo_register_write_spu (regcache, "decr", buf);
- break;
-
- case SPU_DECR_STATUS_REGNUM:
- spu_pseudo_register_write_spu (regcache, "decr_status", buf);
- break;
-
- default:
- internal_error (__FILE__, __LINE__, _("invalid regnum"));
- }
-}
-
-static int
-spu_ax_pseudo_register_collect (struct gdbarch *gdbarch,
- struct agent_expr *ax, int regnum)
-{
- switch (regnum)
- {
- case SPU_SP_REGNUM:
- ax_reg_mask (ax, SPU_RAW_SP_REGNUM);
- return 0;
-
- case SPU_FPSCR_REGNUM:
- case SPU_SRR0_REGNUM:
- case SPU_LSLR_REGNUM:
- case SPU_DECR_REGNUM:
- case SPU_DECR_STATUS_REGNUM:
- return -1;
-
- default:
- internal_error (__FILE__, __LINE__, _("invalid regnum"));
- }
-}
-
-static int
-spu_ax_pseudo_register_push_stack (struct gdbarch *gdbarch,
- struct agent_expr *ax, int regnum)
-{
- switch (regnum)
- {
- case SPU_SP_REGNUM:
- ax_reg (ax, SPU_RAW_SP_REGNUM);
- return 0;
-
- case SPU_FPSCR_REGNUM:
- case SPU_SRR0_REGNUM:
- case SPU_LSLR_REGNUM:
- case SPU_DECR_REGNUM:
- case SPU_DECR_STATUS_REGNUM:
- return -1;
-
- default:
- internal_error (__FILE__, __LINE__, _("invalid regnum"));
- }
-}
-
-
-/* Value conversion -- access scalar values at the preferred slot. */
-
-static struct value *
-spu_value_from_register (struct gdbarch *gdbarch, struct type *type,
- int regnum, struct frame_id frame_id)
-{
- struct value *value = default_value_from_register (gdbarch, type,
- regnum, frame_id);
- LONGEST len = TYPE_LENGTH (type);
-
- if (regnum < SPU_NUM_GPRS && len < 16)
- {
- int preferred_slot = len < 4 ? 4 - len : 0;
- set_value_offset (value, preferred_slot);
- }
-
- return value;
-}
-
-/* Register groups. */
-
-static int
-spu_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
- struct reggroup *group)
-{
- /* Registers displayed via 'info regs'. */
- if (group == general_reggroup)
- return 1;
-
- /* Registers displayed via 'info float'. */
- if (group == float_reggroup)
- return 0;
-
- /* Registers that need to be saved/restored in order to
- push or pop frames. */
- if (group == save_reggroup || group == restore_reggroup)
- return 1;
-
- return default_register_reggroup_p (gdbarch, regnum, group);
-}
-
-/* DWARF-2 register numbers. */
-
-static int
-spu_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
-{
- /* Use cooked instead of raw SP. */
- return (reg == SPU_RAW_SP_REGNUM)? SPU_SP_REGNUM : reg;
-}
-
-
-/* Address handling. */
-
-static int
-spu_gdbarch_id (struct gdbarch *gdbarch)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- int id = tdep->id;
-
- /* The objfile architecture of a standalone SPU executable does not
- provide an SPU ID. Retrieve it from the objfile's relocated
- address range in this special case. */
- if (id == -1
- && symfile_objfile && symfile_objfile->obfd
- && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu
- && symfile_objfile->sections != symfile_objfile->sections_end)
- id = SPUADDR_SPU (obj_section_addr (symfile_objfile->sections));
-
- return id;
-}
-
-static int
-spu_address_class_type_flags (int byte_size, int dwarf2_addr_class)
-{
- if (dwarf2_addr_class == 1)
- return TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
- else
- return 0;
-}
-
-static const char *
-spu_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
-{
- if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
- return "__ea";
- else
- return NULL;
-}
-
-static int
-spu_address_class_name_to_type_flags (struct gdbarch *gdbarch,
- const char *name, int *type_flags_ptr)
-{
- if (strcmp (name, "__ea") == 0)
- {
- *type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
- return 1;
- }
- else
- return 0;
-}
-
-static void
-spu_address_to_pointer (struct gdbarch *gdbarch,
- struct type *type, gdb_byte *buf, CORE_ADDR addr)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- store_unsigned_integer (buf, TYPE_LENGTH (type), byte_order,
- SPUADDR_ADDR (addr));
-}
-
-static CORE_ADDR
-spu_pointer_to_address (struct gdbarch *gdbarch,
- struct type *type, const gdb_byte *buf)
-{
- int id = spu_gdbarch_id (gdbarch);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- ULONGEST addr
- = extract_unsigned_integer (buf, TYPE_LENGTH (type), byte_order);
-
- /* Do not convert __ea pointers. */
- if (TYPE_ADDRESS_CLASS_1 (type))
- return addr;
-
- return addr? SPUADDR (id, addr) : 0;
-}
-
-static CORE_ADDR
-spu_integer_to_address (struct gdbarch *gdbarch,
- struct type *type, const gdb_byte *buf)
-{
- int id = spu_gdbarch_id (gdbarch);
- ULONGEST addr = unpack_long (type, buf);
-
- return SPUADDR (id, addr);
-}
-
-
-/* Decoding SPU instructions. */
-
-enum
- {
- op_lqd = 0x34,
- op_lqx = 0x3c4,
- op_lqa = 0x61,
- op_lqr = 0x67,
- op_stqd = 0x24,
- op_stqx = 0x144,
- op_stqa = 0x41,
- op_stqr = 0x47,
-
- op_il = 0x081,
- op_ila = 0x21,
- op_a = 0x0c0,
- op_ai = 0x1c,
-
- op_selb = 0x8,
-
- op_br = 0x64,
- op_bra = 0x60,
- op_brsl = 0x66,
- op_brasl = 0x62,
- op_brnz = 0x42,
- op_brz = 0x40,
- op_brhnz = 0x46,
- op_brhz = 0x44,
- op_bi = 0x1a8,
- op_bisl = 0x1a9,
- op_biz = 0x128,
- op_binz = 0x129,
- op_bihz = 0x12a,
- op_bihnz = 0x12b,
- };
-
-static int
-is_rr (unsigned int insn, int op, int *rt, int *ra, int *rb)
-{
- if ((insn >> 21) == op)
- {
- *rt = insn & 127;
- *ra = (insn >> 7) & 127;
- *rb = (insn >> 14) & 127;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_rrr (unsigned int insn, int op, int *rt, int *ra, int *rb, int *rc)
-{
- if ((insn >> 28) == op)
- {
- *rt = (insn >> 21) & 127;
- *ra = (insn >> 7) & 127;
- *rb = (insn >> 14) & 127;
- *rc = insn & 127;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_ri7 (unsigned int insn, int op, int *rt, int *ra, int *i7)
-{
- if ((insn >> 21) == op)
- {
- *rt = insn & 127;
- *ra = (insn >> 7) & 127;
- *i7 = (((insn >> 14) & 127) ^ 0x40) - 0x40;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_ri10 (unsigned int insn, int op, int *rt, int *ra, int *i10)
-{
- if ((insn >> 24) == op)
- {
- *rt = insn & 127;
- *ra = (insn >> 7) & 127;
- *i10 = (((insn >> 14) & 0x3ff) ^ 0x200) - 0x200;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_ri16 (unsigned int insn, int op, int *rt, int *i16)
-{
- if ((insn >> 23) == op)
- {
- *rt = insn & 127;
- *i16 = (((insn >> 7) & 0xffff) ^ 0x8000) - 0x8000;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_ri18 (unsigned int insn, int op, int *rt, int *i18)
-{
- if ((insn >> 25) == op)
- {
- *rt = insn & 127;
- *i18 = (((insn >> 7) & 0x3ffff) ^ 0x20000) - 0x20000;
- return 1;
- }
-
- return 0;
-}
-
-static int
-is_branch (unsigned int insn, int *offset, int *reg)
-{
- int rt, i7, i16;
-
- if (is_ri16 (insn, op_br, &rt, &i16)
- || is_ri16 (insn, op_brsl, &rt, &i16)
- || is_ri16 (insn, op_brnz, &rt, &i16)
- || is_ri16 (insn, op_brz, &rt, &i16)
- || is_ri16 (insn, op_brhnz, &rt, &i16)
- || is_ri16 (insn, op_brhz, &rt, &i16))
- {
- *reg = SPU_PC_REGNUM;
- *offset = i16 << 2;
- return 1;
- }
-
- if (is_ri16 (insn, op_bra, &rt, &i16)
- || is_ri16 (insn, op_brasl, &rt, &i16))
- {
- *reg = -1;
- *offset = i16 << 2;
- return 1;
- }
-
- if (is_ri7 (insn, op_bi, &rt, reg, &i7)
- || is_ri7 (insn, op_bisl, &rt, reg, &i7)
- || is_ri7 (insn, op_biz, &rt, reg, &i7)
- || is_ri7 (insn, op_binz, &rt, reg, &i7)
- || is_ri7 (insn, op_bihz, &rt, reg, &i7)
- || is_ri7 (insn, op_bihnz, &rt, reg, &i7))
- {
- *offset = 0;
- return 1;
- }
-
- return 0;
-}
-
-
-/* Prolog parsing. */
-
-struct spu_prologue_data
- {
- /* Stack frame size. -1 if analysis was unsuccessful. */
- int size;
-
- /* How to find the CFA. The CFA is equal to SP at function entry. */
- int cfa_reg;
- int cfa_offset;
-
- /* Offset relative to CFA where a register is saved. -1 if invalid. */
- int reg_offset[SPU_NUM_GPRS];
- };
-
-static CORE_ADDR
-spu_analyze_prologue (struct gdbarch *gdbarch,
- CORE_ADDR start_pc, CORE_ADDR end_pc,
- struct spu_prologue_data *data)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- int found_sp = 0;
- int found_fp = 0;
- int found_lr = 0;
- int found_bc = 0;
- int reg_immed[SPU_NUM_GPRS];
- gdb_byte buf[16];
- CORE_ADDR prolog_pc = start_pc;
- CORE_ADDR pc;
- int i;
-
-
- /* Initialize DATA to default values. */
- data->size = -1;
-
- data->cfa_reg = SPU_RAW_SP_REGNUM;
- data->cfa_offset = 0;
-
- for (i = 0; i < SPU_NUM_GPRS; i++)
- data->reg_offset[i] = -1;
-
- /* Set up REG_IMMED array. This is non-zero for a register if we know its
- preferred slot currently holds this immediate value. */
- for (i = 0; i < SPU_NUM_GPRS; i++)
- reg_immed[i] = 0;
-
- /* Scan instructions until the first branch.
-
- The following instructions are important prolog components:
-
- - The first instruction to set up the stack pointer.
- - The first instruction to set up the frame pointer.
- - The first instruction to save the link register.
- - The first instruction to save the backchain.
-
- We return the instruction after the latest of these four,
- or the incoming PC if none is found. The first instruction
- to set up the stack pointer also defines the frame size.
-
- Note that instructions saving incoming arguments to their stack
- slots are not counted as important, because they are hard to
- identify with certainty. This should not matter much, because
- arguments are relevant only in code compiled with debug data,
- and in such code the GDB core will advance until the first source
- line anyway, using SAL data.
-
- For purposes of stack unwinding, we analyze the following types
- of instructions in addition:
-
- - Any instruction adding to the current frame pointer.
- - Any instruction loading an immediate constant into a register.
- - Any instruction storing a register onto the stack.
-
- These are used to compute the CFA and REG_OFFSET output. */
-
- for (pc = start_pc; pc < end_pc; pc += 4)
- {
- unsigned int insn;
- int rt, ra, rb, rc, immed;
-
- if (target_read_memory (pc, buf, 4))
- break;
- insn = extract_unsigned_integer (buf, 4, byte_order);
-
- /* AI is the typical instruction to set up a stack frame.
- It is also used to initialize the frame pointer. */
- if (is_ri10 (insn, op_ai, &rt, &ra, &immed))
- {
- if (rt == data->cfa_reg && ra == data->cfa_reg)
- data->cfa_offset -= immed;
-
- if (rt == SPU_RAW_SP_REGNUM && ra == SPU_RAW_SP_REGNUM
- && !found_sp)
- {
- found_sp = 1;
- prolog_pc = pc + 4;
-
- data->size = -immed;
- }
- else if (rt == SPU_FP_REGNUM && ra == SPU_RAW_SP_REGNUM
- && !found_fp)
- {
- found_fp = 1;
- prolog_pc = pc + 4;
-
- data->cfa_reg = SPU_FP_REGNUM;
- data->cfa_offset -= immed;
- }
- }
-
- /* A is used to set up stack frames of size >= 512 bytes.
- If we have tracked the contents of the addend register,
- we can handle this as well. */
- else if (is_rr (insn, op_a, &rt, &ra, &rb))
- {
- if (rt == data->cfa_reg && ra == data->cfa_reg)
- {
- if (reg_immed[rb] != 0)
- data->cfa_offset -= reg_immed[rb];
- else
- data->cfa_reg = -1; /* We don't know the CFA any more. */
- }
-
- if (rt == SPU_RAW_SP_REGNUM && ra == SPU_RAW_SP_REGNUM
- && !found_sp)
- {
- found_sp = 1;
- prolog_pc = pc + 4;
-
- if (reg_immed[rb] != 0)
- data->size = -reg_immed[rb];
- }
- }
-
- /* We need to track IL and ILA used to load immediate constants
- in case they are later used as input to an A instruction. */
- else if (is_ri16 (insn, op_il, &rt, &immed))
- {
- reg_immed[rt] = immed;
-
- if (rt == SPU_RAW_SP_REGNUM && !found_sp)
- found_sp = 1;
- }
-
- else if (is_ri18 (insn, op_ila, &rt, &immed))
- {
- reg_immed[rt] = immed & 0x3ffff;
-
- if (rt == SPU_RAW_SP_REGNUM && !found_sp)
- found_sp = 1;
- }
-
- /* STQD is used to save registers to the stack. */
- else if (is_ri10 (insn, op_stqd, &rt, &ra, &immed))
- {
- if (ra == data->cfa_reg)
- data->reg_offset[rt] = data->cfa_offset - (immed << 4);
-
- if (ra == data->cfa_reg && rt == SPU_LR_REGNUM
- && !found_lr)
- {
- found_lr = 1;
- prolog_pc = pc + 4;
- }
-
- if (ra == SPU_RAW_SP_REGNUM
- && (found_sp? immed == 0 : rt == SPU_RAW_SP_REGNUM)
- && !found_bc)
- {
- found_bc = 1;
- prolog_pc = pc + 4;
- }
- }
-
- /* _start uses SELB to set up the stack pointer. */
- else if (is_rrr (insn, op_selb, &rt, &ra, &rb, &rc))
- {
- if (rt == SPU_RAW_SP_REGNUM && !found_sp)
- found_sp = 1;
- }
-
- /* We terminate if we find a branch. */
- else if (is_branch (insn, &immed, &ra))
- break;
- }
-
-
- /* If we successfully parsed until here, and didn't find any instruction
- modifying SP, we assume we have a frameless function. */
- if (!found_sp)
- data->size = 0;
-
- /* Return cooked instead of raw SP. */
- if (data->cfa_reg == SPU_RAW_SP_REGNUM)
- data->cfa_reg = SPU_SP_REGNUM;
-
- return prolog_pc;
-}
-
-/* Return the first instruction after the prologue starting at PC. */
-static CORE_ADDR
-spu_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
-{
- struct spu_prologue_data data;
- return spu_analyze_prologue (gdbarch, pc, (CORE_ADDR)-1, &data);
-}
-
-/* Return the frame pointer in use at address PC. */
-static void
-spu_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc,
- int *reg, LONGEST *offset)
-{
- struct spu_prologue_data data;
- spu_analyze_prologue (gdbarch, pc, (CORE_ADDR)-1, &data);
-
- if (data.size != -1 && data.cfa_reg != -1)
- {
- /* The 'frame pointer' address is CFA minus frame size. */
- *reg = data.cfa_reg;
- *offset = data.cfa_offset - data.size;
- }
- else
- {
- /* ??? We don't really know ... */
- *reg = SPU_SP_REGNUM;
- *offset = 0;
- }
-}
-
-/* Implement the stack_frame_destroyed_p gdbarch method.
-
- 1) scan forward from the point of execution:
- a) If you find an instruction that modifies the stack pointer
- or transfers control (except a return), execution is not in
- an epilogue, return.
- b) Stop scanning if you find a return instruction or reach the
- end of the function or reach the hard limit for the size of
- an epilogue.
- 2) scan backward from the point of execution:
- a) If you find an instruction that modifies the stack pointer,
- execution *is* in an epilogue, return.
- b) Stop scanning if you reach an instruction that transfers
- control or the beginning of the function or reach the hard
- limit for the size of an epilogue. */
-
-static int
-spu_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- CORE_ADDR scan_pc, func_start, func_end, epilogue_start, epilogue_end;
- bfd_byte buf[4];
- unsigned int insn;
- int rt, ra, rb, immed;
-
- /* Find the search limits based on function boundaries and hard limit.
- We assume the epilogue can be up to 64 instructions long. */
-
- const int spu_max_epilogue_size = 64 * 4;
-
- if (!find_pc_partial_function (pc, NULL, &func_start, &func_end))
- return 0;
-
- if (pc - func_start < spu_max_epilogue_size)
- epilogue_start = func_start;
- else
- epilogue_start = pc - spu_max_epilogue_size;
-
- if (func_end - pc < spu_max_epilogue_size)
- epilogue_end = func_end;
- else
- epilogue_end = pc + spu_max_epilogue_size;
-
- /* Scan forward until next 'bi $0'. */
-
- for (scan_pc = pc; scan_pc < epilogue_end; scan_pc += 4)
- {
- if (target_read_memory (scan_pc, buf, 4))
- return 0;
- insn = extract_unsigned_integer (buf, 4, byte_order);
-
- if (is_branch (insn, &immed, &ra))
- {
- if (immed == 0 && ra == SPU_LR_REGNUM)
- break;
-
- return 0;
- }
-
- if (is_ri10 (insn, op_ai, &rt, &ra, &immed)
- || is_rr (insn, op_a, &rt, &ra, &rb)
- || is_ri10 (insn, op_lqd, &rt, &ra, &immed))
- {
- if (rt == SPU_RAW_SP_REGNUM)
- return 0;
- }
- }
-
- if (scan_pc >= epilogue_end)
- return 0;
-
- /* Scan backward until adjustment to stack pointer (R1). */
-
- for (scan_pc = pc - 4; scan_pc >= epilogue_start; scan_pc -= 4)
- {
- if (target_read_memory (scan_pc, buf, 4))
- return 0;
- insn = extract_unsigned_integer (buf, 4, byte_order);
-
- if (is_branch (insn, &immed, &ra))
- return 0;
-
- if (is_ri10 (insn, op_ai, &rt, &ra, &immed)
- || is_rr (insn, op_a, &rt, &ra, &rb)
- || is_ri10 (insn, op_lqd, &rt, &ra, &immed))
- {
- if (rt == SPU_RAW_SP_REGNUM)
- return 1;
- }
- }
-
- return 0;
-}
-
-
-/* Normal stack frames. */
-
-struct spu_unwind_cache
-{
- CORE_ADDR func;
- CORE_ADDR frame_base;
- CORE_ADDR local_base;
-
- struct trad_frame_saved_reg *saved_regs;
-};
-
-static struct spu_unwind_cache *
-spu_frame_unwind_cache (struct frame_info *this_frame,
- void **this_prologue_cache)
-{
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- struct spu_unwind_cache *info;
- struct spu_prologue_data data;
- CORE_ADDR id = tdep->id;
- gdb_byte buf[16];
-
- if (*this_prologue_cache)
- return (struct spu_unwind_cache *) *this_prologue_cache;
-
- info = FRAME_OBSTACK_ZALLOC (struct spu_unwind_cache);
- *this_prologue_cache = info;
- info->saved_regs = trad_frame_alloc_saved_regs (this_frame);
- info->frame_base = 0;
- info->local_base = 0;
-
- /* Find the start of the current function, and analyze its prologue. */
- info->func = get_frame_func (this_frame);
- if (info->func == 0)
- {
- /* Fall back to using the current PC as frame ID. */
- info->func = get_frame_pc (this_frame);
- data.size = -1;
- }
- else
- spu_analyze_prologue (gdbarch, info->func, get_frame_pc (this_frame),
- &data);
-
- /* If successful, use prologue analysis data. */
- if (data.size != -1 && data.cfa_reg != -1)
- {
- CORE_ADDR cfa;
- int i;
-
- /* Determine CFA via unwound CFA_REG plus CFA_OFFSET. */
- get_frame_register (this_frame, data.cfa_reg, buf);
- cfa = extract_unsigned_integer (buf, 4, byte_order) + data.cfa_offset;
- cfa = SPUADDR (id, cfa);
-
- /* Call-saved register slots. */
- for (i = 0; i < SPU_NUM_GPRS; i++)
- if (i == SPU_LR_REGNUM
- || (i >= SPU_SAVED1_REGNUM && i <= SPU_SAVEDN_REGNUM))
- if (data.reg_offset[i] != -1)
- info->saved_regs[i].addr = cfa - data.reg_offset[i];
-
- /* Frame bases. */
- info->frame_base = cfa;
- info->local_base = cfa - data.size;
- }
-
- /* Otherwise, fall back to reading the backchain link. */
- else
- {
- CORE_ADDR reg;
- LONGEST backchain;
- ULONGEST lslr;
- int status;
-
- /* Get local store limit. */
- lslr = get_frame_register_unsigned (this_frame, SPU_LSLR_REGNUM);
- if (!lslr)
- lslr = (ULONGEST) -1;
-
- /* Get the backchain. */
- reg = get_frame_register_unsigned (this_frame, SPU_SP_REGNUM);
- status = safe_read_memory_integer (SPUADDR (id, reg), 4, byte_order,
- &backchain);
-
- /* A zero backchain terminates the frame chain. Also, sanity
- check against the local store size limit. */
- if (status && backchain > 0 && backchain <= lslr)
- {
- /* Assume the link register is saved into its slot. */
- if (backchain + 16 <= lslr)
- info->saved_regs[SPU_LR_REGNUM].addr = SPUADDR (id,
- backchain + 16);
-
- /* Frame bases. */
- info->frame_base = SPUADDR (id, backchain);
- info->local_base = SPUADDR (id, reg);
- }
- }
-
- /* If we didn't find a frame, we cannot determine SP / return address. */
- if (info->frame_base == 0)
- return info;
-
- /* The previous SP is equal to the CFA. */
- trad_frame_set_value (info->saved_regs, SPU_SP_REGNUM,
- SPUADDR_ADDR (info->frame_base));
-
- /* Read full contents of the unwound link register in order to
- be able to determine the return address. */
- if (trad_frame_addr_p (info->saved_regs, SPU_LR_REGNUM))
- target_read_memory (info->saved_regs[SPU_LR_REGNUM].addr, buf, 16);
- else
- get_frame_register (this_frame, SPU_LR_REGNUM, buf);
-
- /* Normally, the return address is contained in the slot 0 of the
- link register, and slots 1-3 are zero. For an overlay return,
- slot 0 contains the address of the overlay manager return stub,
- slot 1 contains the partition number of the overlay section to
- be returned to, and slot 2 contains the return address within
- that section. Return the latter address in that case. */
- if (extract_unsigned_integer (buf + 8, 4, byte_order) != 0)
- trad_frame_set_value (info->saved_regs, SPU_PC_REGNUM,
- extract_unsigned_integer (buf + 8, 4, byte_order));
- else
- trad_frame_set_value (info->saved_regs, SPU_PC_REGNUM,
- extract_unsigned_integer (buf, 4, byte_order));
-
- return info;
-}
-
-static void
-spu_frame_this_id (struct frame_info *this_frame,
- void **this_prologue_cache, struct frame_id *this_id)
-{
- struct spu_unwind_cache *info =
- spu_frame_unwind_cache (this_frame, this_prologue_cache);
-
- if (info->frame_base == 0)
- return;
-
- *this_id = frame_id_build (info->frame_base, info->func);
-}
-
-static struct value *
-spu_frame_prev_register (struct frame_info *this_frame,
- void **this_prologue_cache, int regnum)
-{
- struct spu_unwind_cache *info
- = spu_frame_unwind_cache (this_frame, this_prologue_cache);
-
- /* Special-case the stack pointer. */
- if (regnum == SPU_RAW_SP_REGNUM)
- regnum = SPU_SP_REGNUM;
-
- return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
-}
-
-static const struct frame_unwind spu_frame_unwind = {
- NORMAL_FRAME,
- default_frame_unwind_stop_reason,
- spu_frame_this_id,
- spu_frame_prev_register,
- NULL,
- default_frame_sniffer
-};
-
-static CORE_ADDR
-spu_frame_base_address (struct frame_info *this_frame, void **this_cache)
-{
- struct spu_unwind_cache *info
- = spu_frame_unwind_cache (this_frame, this_cache);
- return info->local_base;
-}
-
-static const struct frame_base spu_frame_base = {
- &spu_frame_unwind,
- spu_frame_base_address,
- spu_frame_base_address,
- spu_frame_base_address
-};
-
-static CORE_ADDR
-spu_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- CORE_ADDR pc = frame_unwind_register_unsigned (next_frame, SPU_PC_REGNUM);
- /* Mask off interrupt enable bit. */
- return SPUADDR (tdep->id, pc & -4);
-}
-
-static CORE_ADDR
-spu_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- CORE_ADDR sp = frame_unwind_register_unsigned (next_frame, SPU_SP_REGNUM);
- return SPUADDR (tdep->id, sp);
-}
-
-static CORE_ADDR
-spu_read_pc (readable_regcache *regcache)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
- ULONGEST pc;
-
- regcache->cooked_read (SPU_PC_REGNUM, &pc);
- /* Mask off interrupt enable bit. */
- return SPUADDR (tdep->id, pc & -4);
-}
-
-static void
-spu_write_pc (struct regcache *regcache, CORE_ADDR pc)
-{
- /* Keep interrupt enabled state unchanged. */
- ULONGEST old_pc;
-
- regcache_cooked_read_unsigned (regcache, SPU_PC_REGNUM, &old_pc);
- regcache_cooked_write_unsigned (regcache, SPU_PC_REGNUM,
- (SPUADDR_ADDR (pc) & -4) | (old_pc & 3));
-}
-
-
-/* Cell/B.E. cross-architecture unwinder support. */
-
-struct spu2ppu_cache
-{
- struct frame_id frame_id;
- readonly_detached_regcache *regcache;
-};
-
-static struct gdbarch *
-spu2ppu_prev_arch (struct frame_info *this_frame, void **this_cache)
-{
- struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
- return cache->regcache->arch ();
-}
-
-static void
-spu2ppu_this_id (struct frame_info *this_frame,
- void **this_cache, struct frame_id *this_id)
-{
- struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
- *this_id = cache->frame_id;
-}
-
-static struct value *
-spu2ppu_prev_register (struct frame_info *this_frame,
- void **this_cache, int regnum)
-{
- struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
- struct gdbarch *gdbarch = cache->regcache->arch ();
- gdb_byte *buf;
-
- buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
- cache->regcache->cooked_read (regnum, buf);
- return frame_unwind_got_bytes (this_frame, regnum, buf);
-}
-
-static int
-spu2ppu_sniffer (const struct frame_unwind *self,
- struct frame_info *this_frame, void **this_prologue_cache)
-{
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- CORE_ADDR base, func, backchain;
- gdb_byte buf[4];
-
- if (gdbarch_bfd_arch_info (target_gdbarch ())->arch == bfd_arch_spu)
- return 0;
-
- base = get_frame_sp (this_frame);
- func = get_frame_pc (this_frame);
- if (target_read_memory (base, buf, 4))
- return 0;
- backchain = extract_unsigned_integer (buf, 4, byte_order);
-
- if (!backchain)
- {
- struct frame_info *fi;
-
- struct spu2ppu_cache *cache
- = FRAME_OBSTACK_CALLOC (1, struct spu2ppu_cache);
-
- cache->frame_id = frame_id_build (base + 16, func);
-
- for (fi = get_next_frame (this_frame); fi; fi = get_next_frame (fi))
- if (gdbarch_bfd_arch_info (get_frame_arch (fi))->arch != bfd_arch_spu)
- break;
-
- if (fi)
- {
- cache->regcache = frame_save_as_regcache (fi).release ();
- *this_prologue_cache = cache;
- return 1;
- }
- else
- {
- struct regcache *regcache;
- regcache = get_thread_arch_regcache (inferior_ptid, target_gdbarch ());
- cache->regcache = new readonly_detached_regcache (*regcache);
- *this_prologue_cache = cache;
- return 1;
- }
- }
-
- return 0;
-}
-
-static void
-spu2ppu_dealloc_cache (struct frame_info *self, void *this_cache)
-{
- struct spu2ppu_cache *cache = (struct spu2ppu_cache *) this_cache;
- delete cache->regcache;
-}
-
-static const struct frame_unwind spu2ppu_unwind = {
- ARCH_FRAME,
- default_frame_unwind_stop_reason,
- spu2ppu_this_id,
- spu2ppu_prev_register,
- NULL,
- spu2ppu_sniffer,
- spu2ppu_dealloc_cache,
- spu2ppu_prev_arch,
-};
-
-
-/* Function calling convention. */
-
-static CORE_ADDR
-spu_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
-{
- return sp & ~15;
-}
-
-static CORE_ADDR
-spu_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr,
- struct value **args, int nargs, struct type *value_type,
- CORE_ADDR *real_pc, CORE_ADDR *bp_addr,
- struct regcache *regcache)
-{
- /* Allocate space sufficient for a breakpoint, keeping the stack aligned. */
- sp = (sp - 4) & ~15;
- /* Store the address of that breakpoint */
- *bp_addr = sp;
- /* The call starts at the callee's entry point. */
- *real_pc = funaddr;
-
- return sp;
-}
-
-static int
-spu_scalar_value_p (struct type *type)
-{
- switch (TYPE_CODE (type))
- {
- case TYPE_CODE_INT:
- case TYPE_CODE_ENUM:
- case TYPE_CODE_RANGE:
- case TYPE_CODE_CHAR:
- case TYPE_CODE_BOOL:
- case TYPE_CODE_PTR:
- case TYPE_CODE_REF:
- case TYPE_CODE_RVALUE_REF:
- return TYPE_LENGTH (type) <= 16;
-
- default:
- return 0;
- }
-}
-
-static void
-spu_value_to_regcache (struct regcache *regcache, int regnum,
- struct type *type, const gdb_byte *in)
-{
- int len = TYPE_LENGTH (type);
-
- if (spu_scalar_value_p (type))
- {
- int preferred_slot = len < 4 ? 4 - len : 0;
- regcache->cooked_write_part (regnum, preferred_slot, len, in);
- }
- else
- {
- while (len >= 16)
- {
- regcache->cooked_write (regnum++, in);
- in += 16;
- len -= 16;
- }
-
- if (len > 0)
- regcache->cooked_write_part (regnum, 0, len, in);
- }
-}
-
-static void
-spu_regcache_to_value (struct regcache *regcache, int regnum,
- struct type *type, gdb_byte *out)
-{
- int len = TYPE_LENGTH (type);
-
- if (spu_scalar_value_p (type))
- {
- int preferred_slot = len < 4 ? 4 - len : 0;
- regcache->cooked_read_part (regnum, preferred_slot, len, out);
- }
- else
- {
- while (len >= 16)
- {
- regcache->cooked_read (regnum++, out);
- out += 16;
- len -= 16;
- }
-
- if (len > 0)
- regcache->cooked_read_part (regnum, 0, len, out);
- }
-}
-
-static CORE_ADDR
-spu_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
- struct regcache *regcache, CORE_ADDR bp_addr,
- int nargs, struct value **args, CORE_ADDR sp,
- function_call_return_method return_method,
- CORE_ADDR struct_addr)
-{
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- CORE_ADDR sp_delta;
- int i;
- int regnum = SPU_ARG1_REGNUM;
- int stack_arg = -1;
- gdb_byte buf[16];
-
- /* Set the return address. */
- memset (buf, 0, sizeof buf);
- store_unsigned_integer (buf, 4, byte_order, SPUADDR_ADDR (bp_addr));
- regcache->cooked_write (SPU_LR_REGNUM, buf);
-
- /* If STRUCT_RETURN is true, then the struct return address (in
- STRUCT_ADDR) will consume the first argument-passing register.
- Both adjust the register count and store that value. */
- if (return_method == return_method_struct)
- {
- memset (buf, 0, sizeof buf);
- store_unsigned_integer (buf, 4, byte_order, SPUADDR_ADDR (struct_addr));
- regcache->cooked_write (regnum++, buf);
- }
-
- /* Fill in argument registers. */
- for (i = 0; i < nargs; i++)
- {
- struct value *arg = args[i];
- struct type *type = check_typedef (value_type (arg));
- const gdb_byte *contents = value_contents (arg);
- int n_regs = align_up (TYPE_LENGTH (type), 16) / 16;
-
- /* If the argument doesn't wholly fit into registers, it and
- all subsequent arguments go to the stack. */
- if (regnum + n_regs - 1 > SPU_ARGN_REGNUM)
- {
- stack_arg = i;
- break;
- }
-
- spu_value_to_regcache (regcache, regnum, type, contents);
- regnum += n_regs;
- }
-
- /* Overflow arguments go to the stack. */
- if (stack_arg != -1)
- {
- CORE_ADDR ap;
-
- /* Allocate all required stack size. */
- for (i = stack_arg; i < nargs; i++)
- {
- struct type *type = check_typedef (value_type (args[i]));
- sp -= align_up (TYPE_LENGTH (type), 16);
- }
-
- /* Fill in stack arguments. */
- ap = sp;
- for (i = stack_arg; i < nargs; i++)
- {
- struct value *arg = args[i];
- struct type *type = check_typedef (value_type (arg));
- int len = TYPE_LENGTH (type);
- int preferred_slot;
-
- if (spu_scalar_value_p (type))
- preferred_slot = len < 4 ? 4 - len : 0;
- else
- preferred_slot = 0;
-
- target_write_memory (ap + preferred_slot, value_contents (arg), len);
- ap += align_up (TYPE_LENGTH (type), 16);
- }
- }
-
- /* Allocate stack frame header. */
- sp -= 32;
-
- /* Store stack back chain. */
- regcache->cooked_read (SPU_RAW_SP_REGNUM, buf);
- target_write_memory (sp, buf, 16);
-
- /* Finally, update all slots of the SP register. */
- sp_delta = sp - extract_unsigned_integer (buf, 4, byte_order);
- for (i = 0; i < 4; i++)
- {
- CORE_ADDR sp_slot = extract_unsigned_integer (buf + 4*i, 4, byte_order);
- store_unsigned_integer (buf + 4*i, 4, byte_order, sp_slot + sp_delta);
- }
- regcache->cooked_write (SPU_RAW_SP_REGNUM, buf);
-
- return sp;
-}
-
-static struct frame_id
-spu_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- CORE_ADDR pc = get_frame_register_unsigned (this_frame, SPU_PC_REGNUM);
- CORE_ADDR sp = get_frame_register_unsigned (this_frame, SPU_SP_REGNUM);
- return frame_id_build (SPUADDR (tdep->id, sp), SPUADDR (tdep->id, pc & -4));
-}
-
-/* Function return value access. */
-
-static enum return_value_convention
-spu_return_value (struct gdbarch *gdbarch, struct value *function,
- struct type *type, struct regcache *regcache,
- gdb_byte *out, const gdb_byte *in)
-{
- struct type *func_type = function ? value_type (function) : NULL;
- enum return_value_convention rvc;
- int opencl_vector = 0;
-
- if (func_type)
- {
- func_type = check_typedef (func_type);
-
- if (TYPE_CODE (func_type) == TYPE_CODE_PTR)
- func_type = check_typedef (TYPE_TARGET_TYPE (func_type));
-
- if (TYPE_CODE (func_type) == TYPE_CODE_FUNC
- && TYPE_CALLING_CONVENTION (func_type) == DW_CC_GDB_IBM_OpenCL
- && TYPE_CODE (type) == TYPE_CODE_ARRAY
- && TYPE_VECTOR (type))
- opencl_vector = 1;
- }
-
- if (TYPE_LENGTH (type) <= (SPU_ARGN_REGNUM - SPU_ARG1_REGNUM + 1) * 16)
- rvc = RETURN_VALUE_REGISTER_CONVENTION;
- else
- rvc = RETURN_VALUE_STRUCT_CONVENTION;
-
- if (in)
- {
- switch (rvc)
- {
- case RETURN_VALUE_REGISTER_CONVENTION:
- if (opencl_vector && TYPE_LENGTH (type) == 2)
- regcache->cooked_write_part (SPU_ARG1_REGNUM, 2, 2, in);
- else
- spu_value_to_regcache (regcache, SPU_ARG1_REGNUM, type, in);
- break;
-
- case RETURN_VALUE_STRUCT_CONVENTION:
- error (_("Cannot set function return value."));
- break;
- }
- }
- else if (out)
- {
- switch (rvc)
- {
- case RETURN_VALUE_REGISTER_CONVENTION:
- if (opencl_vector && TYPE_LENGTH (type) == 2)
- regcache->cooked_read_part (SPU_ARG1_REGNUM, 2, 2, out);
- else
- spu_regcache_to_value (regcache, SPU_ARG1_REGNUM, type, out);
- break;
-
- case RETURN_VALUE_STRUCT_CONVENTION:
- error (_("Function return value unknown."));
- break;
- }
- }
-
- return rvc;
-}
-
-
-/* Breakpoints. */
-constexpr gdb_byte spu_break_insn[] = { 0x00, 0x00, 0x3f, 0xff };
-
-typedef BP_MANIPULATION (spu_break_insn) spu_breakpoint;
-
-static int
-spu_memory_remove_breakpoint (struct gdbarch *gdbarch,
- struct bp_target_info *bp_tgt)
-{
- /* We work around a problem in combined Cell/B.E. debugging here. Consider
- that in a combined application, we have some breakpoints inserted in SPU
- code, and now the application forks (on the PPU side). GDB common code
- will assume that the fork system call copied all breakpoints into the new
- process' address space, and that all those copies now need to be removed
- (see breakpoint.c:detach_breakpoints).
-
- While this is certainly true for PPU side breakpoints, it is not true
- for SPU side breakpoints. fork will clone the SPU context file
- descriptors, so that all the existing SPU contexts are in accessible
- in the new process. However, the contents of the SPU contexts themselves
- are *not* cloned. Therefore the effect of detach_breakpoints is to
- remove SPU breakpoints from the *original* SPU context's local store
- -- this is not the correct behaviour.
-
- The workaround is to check whether the PID we are asked to remove this
- breakpoint from (i.e. inferior_ptid.pid ()) is different from the
- PID of the current inferior (i.e. current_inferior ()->pid). This is only
- true in the context of detach_breakpoints. If so, we simply do nothing.
- [ Note that for the fork child process, it does not matter if breakpoints
- remain inserted, because those SPU contexts are not runnable anyway --
- the Linux kernel allows only the original process to invoke spu_run. */
-
- if (inferior_ptid.pid () != current_inferior ()->pid)
- return 0;
-
- return default_memory_remove_breakpoint (gdbarch, bp_tgt);
-}
-
-
-/* Software single-stepping support. */
-
-static std::vector<CORE_ADDR>
-spu_software_single_step (struct regcache *regcache)
-{
- struct gdbarch *gdbarch = regcache->arch ();
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- CORE_ADDR pc, next_pc;
- unsigned int insn;
- int offset, reg;
- gdb_byte buf[4];
- ULONGEST lslr;
- std::vector<CORE_ADDR> next_pcs;
-
- pc = regcache_read_pc (regcache);
-
- if (target_read_memory (pc, buf, 4))
- throw_error (MEMORY_ERROR, _("Could not read instruction at %s."),
- paddress (gdbarch, pc));
-
- insn = extract_unsigned_integer (buf, 4, byte_order);
-
- /* Get local store limit. */
- if ((regcache_cooked_read_unsigned (regcache, SPU_LSLR_REGNUM, &lslr)
- != REG_VALID) || !lslr)
- lslr = (ULONGEST) -1;
-
- /* Next sequential instruction is at PC + 4, except if the current
- instruction is a PPE-assisted call, in which case it is at PC + 8.
- Wrap around LS limit to be on the safe side. */
- if ((insn & 0xffffff00) == 0x00002100)
- next_pc = (SPUADDR_ADDR (pc) + 8) & lslr;
- else
- next_pc = (SPUADDR_ADDR (pc) + 4) & lslr;
-
- next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), next_pc));
-
- if (is_branch (insn, &offset, ®))
- {
- CORE_ADDR target = offset;
-
- if (reg == SPU_PC_REGNUM)
- target += SPUADDR_ADDR (pc);
- else if (reg != -1)
- {
- regcache->raw_read_part (reg, 0, 4, buf);
- target += extract_unsigned_integer (buf, 4, byte_order) & -4;
- }
-
- target = target & lslr;
- if (target != next_pc)
- next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), target));
- }
-
- return next_pcs;
-}
-
-
-/* Longjmp support. */
-
-static int
-spu_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
-{
- struct gdbarch *gdbarch = get_frame_arch (frame);
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- gdb_byte buf[4];
- CORE_ADDR jb_addr;
- int optim, unavail;
-
- /* Jump buffer is pointed to by the argument register $r3. */
- if (!get_frame_register_bytes (frame, SPU_ARG1_REGNUM, 0, 4, buf,
- &optim, &unavail))
- return 0;
-
- jb_addr = extract_unsigned_integer (buf, 4, byte_order);
- if (target_read_memory (SPUADDR (tdep->id, jb_addr), buf, 4))
- return 0;
-
- *pc = extract_unsigned_integer (buf, 4, byte_order);
- *pc = SPUADDR (tdep->id, *pc);
- return 1;
-}
-
-
-/* Disassembler. */
-
-struct spu_dis_asm_info : disassemble_info
-{
- int id;
-};
-
-static void
-spu_dis_asm_print_address (bfd_vma addr, struct disassemble_info *info)
-{
- struct spu_dis_asm_info *data = (struct spu_dis_asm_info *) info;
- gdb_disassembler *di
- = static_cast<gdb_disassembler *>(info->application_data);
-
- print_address (di->arch (), SPUADDR (data->id, addr),
- (struct ui_file *) info->stream);
-}
-
-static int
-gdb_print_insn_spu (bfd_vma memaddr, struct disassemble_info *info)
-{
- /* The opcodes disassembler does 18-bit address arithmetic. Make
- sure the SPU ID encoded in the high bits is added back when we
- call print_address. */
- struct spu_dis_asm_info spu_info;
-
- memcpy (&spu_info, info, sizeof (*info));
- spu_info.id = SPUADDR_SPU (memaddr);
- spu_info.print_address_func = spu_dis_asm_print_address;
- return default_print_insn (memaddr, &spu_info);
-}
-
-
-/* Target overlays for the SPU overlay manager.
-
- See the documentation of simple_overlay_update for how the
- interface is supposed to work.
-
- Data structures used by the overlay manager:
-
- struct ovly_table
- {
- u32 vma;
- u32 size;
- u32 pos;
- u32 buf;
- } _ovly_table[]; -- one entry per overlay section
-
- struct ovly_buf_table
- {
- u32 mapped;
- } _ovly_buf_table[]; -- one entry per overlay buffer
-
- _ovly_table should never change.
-
- Both tables are aligned to a 16-byte boundary, the symbols
- _ovly_table and _ovly_buf_table are of type STT_OBJECT and their
- size set to the size of the respective array. buf in _ovly_table is
- an index into _ovly_buf_table.
-
- mapped is an index into _ovly_table. Both the mapped and buf indices start
- from one to reference the first entry in their respective tables. */
-
-/* Using the per-objfile private data mechanism, we store for each
- objfile an array of "struct spu_overlay_table" structures, one
- for each obj_section of the objfile. This structure holds two
- fields, MAPPED_PTR and MAPPED_VAL. If MAPPED_PTR is zero, this
- is *not* an overlay section. If it is non-zero, it represents
- a target address. The overlay section is mapped iff the target
- integer at this location equals MAPPED_VAL. */
-
-struct spu_overlay_table
- {
- CORE_ADDR mapped_ptr;
- CORE_ADDR mapped_val;
- };
-
-static objfile_key<spu_overlay_table,
- gdb::noop_deleter<spu_overlay_table>> spu_overlay_data;
-
-/* Retrieve the overlay table for OBJFILE. If not already cached, read
- the _ovly_table data structure from the target and initialize the
- spu_overlay_table data structure from it. */
-static struct spu_overlay_table *
-spu_get_overlay_table (struct objfile *objfile)
-{
- enum bfd_endian byte_order = bfd_big_endian (objfile->obfd)?
- BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
- struct bound_minimal_symbol ovly_table_msym, ovly_buf_table_msym;
- CORE_ADDR ovly_table_base, ovly_buf_table_base;
- unsigned ovly_table_size, ovly_buf_table_size;
- struct spu_overlay_table *tbl;
- struct obj_section *osect;
- gdb_byte *ovly_table;
- int i;
-
- tbl = spu_overlay_data.get (objfile);
- if (tbl)
- return tbl;
-
- ovly_table_msym = lookup_minimal_symbol ("_ovly_table", NULL, objfile);
- if (!ovly_table_msym.minsym)
- return NULL;
-
- ovly_buf_table_msym = lookup_minimal_symbol ("_ovly_buf_table",
- NULL, objfile);
- if (!ovly_buf_table_msym.minsym)
- return NULL;
-
- ovly_table_base = BMSYMBOL_VALUE_ADDRESS (ovly_table_msym);
- ovly_table_size = MSYMBOL_SIZE (ovly_table_msym.minsym);
-
- ovly_buf_table_base = BMSYMBOL_VALUE_ADDRESS (ovly_buf_table_msym);
- ovly_buf_table_size = MSYMBOL_SIZE (ovly_buf_table_msym.minsym);
-
- ovly_table = (gdb_byte *) xmalloc (ovly_table_size);
- read_memory (ovly_table_base, ovly_table, ovly_table_size);
-
- tbl = OBSTACK_CALLOC (&objfile->objfile_obstack,
- objfile->sections_end - objfile->sections,
- struct spu_overlay_table);
-
- for (i = 0; i < ovly_table_size / 16; i++)
- {
- CORE_ADDR vma = extract_unsigned_integer (ovly_table + 16*i + 0,
- 4, byte_order);
- /* Note that this skips the "size" entry, which is at offset
- 4. */
- CORE_ADDR pos = extract_unsigned_integer (ovly_table + 16*i + 8,
- 4, byte_order);
- CORE_ADDR buf = extract_unsigned_integer (ovly_table + 16*i + 12,
- 4, byte_order);
-
- if (buf == 0 || (buf - 1) * 4 >= ovly_buf_table_size)
- continue;
-
- ALL_OBJFILE_OSECTIONS (objfile, osect)
- if (vma == bfd_section_vma (osect->the_bfd_section)
- && pos == osect->the_bfd_section->filepos)
- {
- int ndx = osect - objfile->sections;
- tbl[ndx].mapped_ptr = ovly_buf_table_base + (buf - 1) * 4;
- tbl[ndx].mapped_val = i + 1;
- break;
- }
- }
-
- xfree (ovly_table);
- spu_overlay_data.set (objfile, tbl);
- return tbl;
-}
-
-/* Read _ovly_buf_table entry from the target to dermine whether
- OSECT is currently mapped, and update the mapped state. */
-static void
-spu_overlay_update_osect (struct obj_section *osect)
-{
- enum bfd_endian byte_order = bfd_big_endian (osect->objfile->obfd)?
- BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
- struct spu_overlay_table *ovly_table;
- CORE_ADDR id, val;
-
- ovly_table = spu_get_overlay_table (osect->objfile);
- if (!ovly_table)
- return;
-
- ovly_table += osect - osect->objfile->sections;
- if (ovly_table->mapped_ptr == 0)
- return;
-
- id = SPUADDR_SPU (obj_section_addr (osect));
- val = read_memory_unsigned_integer (SPUADDR (id, ovly_table->mapped_ptr),
- 4, byte_order);
- osect->ovly_mapped = (val == ovly_table->mapped_val);
-}
-
-/* If OSECT is NULL, then update all sections' mapped state.
- If OSECT is non-NULL, then update only OSECT's mapped state. */
-static void
-spu_overlay_update (struct obj_section *osect)
-{
- /* Just one section. */
- if (osect)
- spu_overlay_update_osect (osect);
-
- /* All sections. */
- else
- {
- for (objfile *objfile : current_program_space->objfiles ())
- ALL_OBJFILE_OSECTIONS (objfile, osect)
- if (section_is_overlay (osect))
- spu_overlay_update_osect (osect);
- }
-}
-
-/* Whenever a new objfile is loaded, read the target's _ovly_table.
- If there is one, go through all sections and make sure for non-
- overlay sections LMA equals VMA, while for overlay sections LMA
- is larger than SPU_OVERLAY_LMA. */
-static void
-spu_overlay_new_objfile (struct objfile *objfile)
-{
- struct spu_overlay_table *ovly_table;
- struct obj_section *osect;
-
- /* If we've already touched this file, do nothing. */
- if (!objfile || spu_overlay_data.get (objfile) != NULL)
- return;
-
- /* Consider only SPU objfiles. */
- if (bfd_get_arch (objfile->obfd) != bfd_arch_spu)
- return;
-
- /* Check if this objfile has overlays. */
- ovly_table = spu_get_overlay_table (objfile);
- if (!ovly_table)
- return;
-
- /* Now go and fiddle with all the LMAs. */
- ALL_OBJFILE_OSECTIONS (objfile, osect)
- {
- asection *bsect = osect->the_bfd_section;
- int ndx = osect - objfile->sections;
-
- if (ovly_table[ndx].mapped_ptr == 0)
- bfd_set_section_lma (bsect, bfd_section_vma (bsect));
- else
- bfd_set_section_lma (bsect, SPU_OVERLAY_LMA + bsect->filepos);
- }
-}
-
-
-/* Insert temporary breakpoint on "main" function of newly loaded
- SPE context OBJFILE. */
-static void
-spu_catch_start (struct objfile *objfile)
-{
- struct bound_minimal_symbol minsym;
- struct compunit_symtab *cust;
- CORE_ADDR pc;
-
- /* Do this only if requested by "set spu stop-on-load on". */
- if (!spu_stop_on_load_p)
- return;
-
- /* Consider only SPU objfiles. */
- if (!objfile || bfd_get_arch (objfile->obfd) != bfd_arch_spu)
- return;
-
- /* The main objfile is handled differently. */
- if (objfile == symfile_objfile)
- return;
-
- /* There can be multiple symbols named "main". Search for the
- "main" in *this* objfile. */
- minsym = lookup_minimal_symbol ("main", NULL, objfile);
- if (!minsym.minsym)
- return;
-
- /* If we have debugging information, try to use it -- this
- will allow us to properly skip the prologue. */
- pc = BMSYMBOL_VALUE_ADDRESS (minsym);
- cust
- = find_pc_sect_compunit_symtab (pc, MSYMBOL_OBJ_SECTION (minsym.objfile,
- minsym.minsym));
- if (cust != NULL)
- {
- const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (cust);
- const struct block *block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
- struct symbol *sym;
- struct symtab_and_line sal;
-
- sym = block_lookup_symbol (block, "main",
- symbol_name_match_type::SEARCH_NAME,
- VAR_DOMAIN);
- if (sym)
- {
- fixup_symbol_section (sym, objfile);
- sal = find_function_start_sal (sym, 1);
- pc = sal.pc;
- }
- }
-
- /* Use a numerical address for the set_breakpoint command to avoid having
- the breakpoint re-set incorrectly. */
- event_location_up location = new_address_location (pc, NULL, 0);
- create_breakpoint (get_objfile_arch (objfile), location.get (),
- NULL /* cond_string */, -1 /* thread */,
- NULL /* extra_string */,
- 0 /* parse_condition_and_thread */, 1 /* tempflag */,
- bp_breakpoint /* type_wanted */,
- 0 /* ignore_count */,
- AUTO_BOOLEAN_FALSE /* pending_break_support */,
- &bkpt_breakpoint_ops /* ops */, 0 /* from_tty */,
- 1 /* enabled */, 0 /* internal */, 0);
-}
-
-
-/* Look up OBJFILE loaded into FRAME's SPU context. */
-static struct objfile *
-spu_objfile_from_frame (struct frame_info *frame)
-{
- struct gdbarch *gdbarch = get_frame_arch (frame);
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- return NULL;
-
- for (objfile *obj : current_program_space->objfiles ())
- {
- if (obj->sections != obj->sections_end
- && SPUADDR_SPU (obj_section_addr (obj->sections)) == tdep->id)
- return obj;
- }
-
- return NULL;
-}
-
-/* Flush cache for ea pointer access if available. */
-static void
-flush_ea_cache (void)
-{
- struct bound_minimal_symbol msymbol;
- struct objfile *obj;
-
- if (!has_stack_frames ())
- return;
-
- obj = spu_objfile_from_frame (get_current_frame ());
- if (obj == NULL)
- return;
-
- /* Lookup inferior function __cache_flush. */
- msymbol = lookup_minimal_symbol ("__cache_flush", NULL, obj);
- if (msymbol.minsym != NULL)
- {
- struct type *type;
- CORE_ADDR addr;
-
- type = objfile_type (obj)->builtin_void;
- type = lookup_function_type (type);
- type = lookup_pointer_type (type);
- addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
-
- call_function_by_hand (value_from_pointer (type, addr), NULL, {});
- }
-}
-
-/* This handler is called when the inferior has stopped. If it is stopped in
- SPU architecture then flush the ea cache if used. */
-static void
-spu_attach_normal_stop (struct bpstats *bs, int print_frame)
-{
- if (!spu_auto_flush_cache_p)
- return;
-
- /* Temporarily reset spu_auto_flush_cache_p to avoid recursively
- re-entering this function when __cache_flush stops. */
- spu_auto_flush_cache_p = 0;
- flush_ea_cache ();
- spu_auto_flush_cache_p = 1;
-}
-
-
-/* "info spu" commands. */
-
-static void
-info_spu_event_command (const char *args, int from_tty)
-{
- struct frame_info *frame = get_selected_frame (NULL);
- ULONGEST event_status = 0;
- ULONGEST event_mask = 0;
- gdb_byte buf[100];
- char annex[32];
- LONGEST len;
- int id;
-
- if (gdbarch_bfd_arch_info (get_frame_arch (frame))->arch != bfd_arch_spu)
- error (_("\"info spu\" is only supported on the SPU architecture."));
-
- id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
- xsnprintf (annex, sizeof annex, "%d/event_status", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, (sizeof (buf) - 1));
- if (len <= 0)
- error (_("Could not read event_status."));
- buf[len] = '\0';
- event_status = strtoulst ((char *) buf, NULL, 16);
-
- xsnprintf (annex, sizeof annex, "%d/event_mask", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, (sizeof (buf) - 1));
- if (len <= 0)
- error (_("Could not read event_mask."));
- buf[len] = '\0';
- event_mask = strtoulst ((char *) buf, NULL, 16);
-
- ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoEvent");
-
- current_uiout->text (_("Event Status "));
- current_uiout->field_fmt ("event_status", "0x%s", phex (event_status, 4));
- current_uiout->text ("\n");
- current_uiout->text (_("Event Mask "));
- current_uiout->field_fmt ("event_mask", "0x%s", phex (event_mask, 4));
- current_uiout->text ("\n");
-}
-
-static void
-info_spu_signal_command (const char *args, int from_tty)
-{
- struct frame_info *frame = get_selected_frame (NULL);
- struct gdbarch *gdbarch = get_frame_arch (frame);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- ULONGEST signal1 = 0;
- ULONGEST signal1_type = 0;
- int signal1_pending = 0;
- ULONGEST signal2 = 0;
- ULONGEST signal2_type = 0;
- int signal2_pending = 0;
- char annex[32];
- gdb_byte buf[100];
- LONGEST len;
- int id;
-
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- error (_("\"info spu\" is only supported on the SPU architecture."));
-
- id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
- xsnprintf (annex, sizeof annex, "%d/signal1", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU,
- annex, buf, 0, 4);
- if (len < 0)
- error (_("Could not read signal1."));
- else if (len == 4)
- {
- signal1 = extract_unsigned_integer (buf, 4, byte_order);
- signal1_pending = 1;
- }
-
- xsnprintf (annex, sizeof annex, "%d/signal1_type", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, (sizeof (buf) - 1));
- if (len <= 0)
- error (_("Could not read signal1_type."));
- buf[len] = '\0';
- signal1_type = strtoulst ((char *) buf, NULL, 16);
-
- xsnprintf (annex, sizeof annex, "%d/signal2", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU,
- annex, buf, 0, 4);
- if (len < 0)
- error (_("Could not read signal2."));
- else if (len == 4)
- {
- signal2 = extract_unsigned_integer (buf, 4, byte_order);
- signal2_pending = 1;
- }
-
- xsnprintf (annex, sizeof annex, "%d/signal2_type", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, (sizeof (buf) - 1));
- if (len <= 0)
- error (_("Could not read signal2_type."));
- buf[len] = '\0';
- signal2_type = strtoulst ((char *) buf, NULL, 16);
-
- ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoSignal");
-
- if (current_uiout->is_mi_like_p ())
- {
- current_uiout->field_signed ("signal1_pending", signal1_pending);
- current_uiout->field_fmt ("signal1", "0x%s", phex_nz (signal1, 4));
- current_uiout->field_signed ("signal1_type", signal1_type);
- current_uiout->field_signed ("signal2_pending", signal2_pending);
- current_uiout->field_fmt ("signal2", "0x%s", phex_nz (signal2, 4));
- current_uiout->field_signed ("signal2_type", signal2_type);
- }
- else
- {
- if (signal1_pending)
- printf_filtered (_("Signal 1 control word 0x%s "), phex (signal1, 4));
- else
- printf_filtered (_("Signal 1 not pending "));
-
- if (signal1_type)
- printf_filtered (_("(Type Or)\n"));
- else
- printf_filtered (_("(Type Overwrite)\n"));
-
- if (signal2_pending)
- printf_filtered (_("Signal 2 control word 0x%s "), phex (signal2, 4));
- else
- printf_filtered (_("Signal 2 not pending "));
-
- if (signal2_type)
- printf_filtered (_("(Type Or)\n"));
- else
- printf_filtered (_("(Type Overwrite)\n"));
- }
-}
-
-static void
-info_spu_mailbox_list (gdb_byte *buf, int nr, enum bfd_endian byte_order,
- const char *field, const char *msg)
-{
- int i;
-
- if (nr <= 0)
- return;
-
- ui_out_emit_table table_emitter (current_uiout, 1, nr, "mbox");
-
- current_uiout->table_header (32, ui_left, field, msg);
- current_uiout->table_body ();
-
- for (i = 0; i < nr; i++)
- {
- {
- ULONGEST val;
- ui_out_emit_tuple tuple_emitter (current_uiout, "mbox");
- val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
- current_uiout->field_fmt (field, "0x%s", phex (val, 4));
- }
-
- current_uiout->text ("\n");
- }
-}
-
-static void
-info_spu_mailbox_command (const char *args, int from_tty)
-{
- struct frame_info *frame = get_selected_frame (NULL);
- struct gdbarch *gdbarch = get_frame_arch (frame);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- char annex[32];
- gdb_byte buf[1024];
- LONGEST len;
- int id;
-
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- error (_("\"info spu\" is only supported on the SPU architecture."));
-
- id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
- ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoMailbox");
-
- xsnprintf (annex, sizeof annex, "%d/mbox_info", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, sizeof buf);
- if (len < 0)
- error (_("Could not read mbox_info."));
-
- info_spu_mailbox_list (buf, len / 4, byte_order,
- "mbox", "SPU Outbound Mailbox");
-
- xsnprintf (annex, sizeof annex, "%d/ibox_info", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, sizeof buf);
- if (len < 0)
- error (_("Could not read ibox_info."));
-
- info_spu_mailbox_list (buf, len / 4, byte_order,
- "ibox", "SPU Outbound Interrupt Mailbox");
-
- xsnprintf (annex, sizeof annex, "%d/wbox_info", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, sizeof buf);
- if (len < 0)
- error (_("Could not read wbox_info."));
-
- info_spu_mailbox_list (buf, len / 4, byte_order,
- "wbox", "SPU Inbound Mailbox");
-}
-
-static ULONGEST
-spu_mfc_get_bitfield (ULONGEST word, int first, int last)
-{
- ULONGEST mask = ~(~(ULONGEST)0 << (last - first + 1));
- return (word >> (63 - last)) & mask;
-}
-
-static void
-info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
-{
- static const char *spu_mfc_opcode[256] =
- {
- /* 00 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 10 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 20 */ "put", "putb", "putf", NULL, "putl", "putlb", "putlf", NULL,
- "puts", "putbs", "putfs", NULL, NULL, NULL, NULL, NULL,
- /* 30 */ "putr", "putrb", "putrf", NULL, "putrl", "putrlb", "putrlf", NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 40 */ "get", "getb", "getf", NULL, "getl", "getlb", "getlf", NULL,
- "gets", "getbs", "getfs", NULL, NULL, NULL, NULL, NULL,
- /* 50 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 60 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 70 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* 80 */ "sdcrt", "sdcrtst", NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, "sdcrz", NULL, NULL, NULL, "sdcrst", NULL, "sdcrf",
- /* 90 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* a0 */ "sndsig", "sndsigb", "sndsigf", NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* b0 */ "putlluc", NULL, NULL, NULL, "putllc", NULL, NULL, NULL,
- "putqlluc", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* c0 */ "barrier", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- "mfceieio", NULL, NULL, NULL, "mfcsync", NULL, NULL, NULL,
- /* d0 */ "getllar", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* e0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- /* f0 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- };
-
- int *seq = XALLOCAVEC (int, nr);
- int done = 0;
- int i, j;
-
-
- /* Determine sequence in which to display (valid) entries. */
- for (i = 0; i < nr; i++)
- {
- /* Search for the first valid entry all of whose
- dependencies are met. */
- for (j = 0; j < nr; j++)
- {
- ULONGEST mfc_cq_dw3;
- ULONGEST dependencies;
-
- if (done & (1 << (nr - 1 - j)))
- continue;
-
- mfc_cq_dw3
- = extract_unsigned_integer (buf + 32*j + 24,8, byte_order);
- if (!spu_mfc_get_bitfield (mfc_cq_dw3, 16, 16))
- continue;
-
- dependencies = spu_mfc_get_bitfield (mfc_cq_dw3, 0, nr - 1);
- if ((dependencies & done) != dependencies)
- continue;
-
- seq[i] = j;
- done |= 1 << (nr - 1 - j);
- break;
- }
-
- if (j == nr)
- break;
- }
-
- nr = i;
-
-
- ui_out_emit_table table_emitter (current_uiout, 10, nr, "dma_cmd");
-
- current_uiout->table_header (7, ui_left, "opcode", "Opcode");
- current_uiout->table_header (3, ui_left, "tag", "Tag");
- current_uiout->table_header (3, ui_left, "tid", "TId");
- current_uiout->table_header (3, ui_left, "rid", "RId");
- current_uiout->table_header (18, ui_left, "ea", "EA");
- current_uiout->table_header (7, ui_left, "lsa", "LSA");
- current_uiout->table_header (7, ui_left, "size", "Size");
- current_uiout->table_header (7, ui_left, "lstaddr", "LstAddr");
- current_uiout->table_header (7, ui_left, "lstsize", "LstSize");
- current_uiout->table_header (1, ui_left, "error_p", "E");
-
- current_uiout->table_body ();
-
- for (i = 0; i < nr; i++)
- {
- ULONGEST mfc_cq_dw0;
- ULONGEST mfc_cq_dw1;
- ULONGEST mfc_cq_dw2;
- int mfc_cmd_opcode, mfc_cmd_tag, rclass_id, tclass_id;
- int list_lsa, list_size, mfc_lsa, mfc_size;
- ULONGEST mfc_ea;
- int list_valid_p, qw_valid_p, ea_valid_p, cmd_error_p;
-
- /* Decode contents of MFC Command Queue Context Save/Restore Registers.
- See "Cell Broadband Engine Registers V1.3", section 3.3.2.1. */
-
- mfc_cq_dw0
- = extract_unsigned_integer (buf + 32*seq[i], 8, byte_order);
- mfc_cq_dw1
- = extract_unsigned_integer (buf + 32*seq[i] + 8, 8, byte_order);
- mfc_cq_dw2
- = extract_unsigned_integer (buf + 32*seq[i] + 16, 8, byte_order);
-
- list_lsa = spu_mfc_get_bitfield (mfc_cq_dw0, 0, 14);
- list_size = spu_mfc_get_bitfield (mfc_cq_dw0, 15, 26);
- mfc_cmd_opcode = spu_mfc_get_bitfield (mfc_cq_dw0, 27, 34);
- mfc_cmd_tag = spu_mfc_get_bitfield (mfc_cq_dw0, 35, 39);
- list_valid_p = spu_mfc_get_bitfield (mfc_cq_dw0, 40, 40);
- rclass_id = spu_mfc_get_bitfield (mfc_cq_dw0, 41, 43);
- tclass_id = spu_mfc_get_bitfield (mfc_cq_dw0, 44, 46);
-
- mfc_ea = spu_mfc_get_bitfield (mfc_cq_dw1, 0, 51) << 12
- | spu_mfc_get_bitfield (mfc_cq_dw2, 25, 36);
-
- mfc_lsa = spu_mfc_get_bitfield (mfc_cq_dw2, 0, 13);
- mfc_size = spu_mfc_get_bitfield (mfc_cq_dw2, 14, 24);
- qw_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 38, 38);
- ea_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 39, 39);
- cmd_error_p = spu_mfc_get_bitfield (mfc_cq_dw2, 40, 40);
-
- {
- ui_out_emit_tuple tuple_emitter (current_uiout, "cmd");
-
- if (spu_mfc_opcode[mfc_cmd_opcode])
- current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
- else
- current_uiout->field_signed ("opcode", mfc_cmd_opcode);
-
- current_uiout->field_signed ("tag", mfc_cmd_tag);
- current_uiout->field_signed ("tid", tclass_id);
- current_uiout->field_signed ("rid", rclass_id);
-
- if (ea_valid_p)
- current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
- else
- current_uiout->field_skip ("ea");
-
- current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
- if (qw_valid_p)
- current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
- else
- current_uiout->field_fmt ("size", "0x%05x", mfc_size);
-
- if (list_valid_p)
- {
- current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
- current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
- }
- else
- {
- current_uiout->field_skip ("lstaddr");
- current_uiout->field_skip ("lstsize");
- }
-
- if (cmd_error_p)
- current_uiout->field_string ("error_p", "*");
- else
- current_uiout->field_skip ("error_p");
- }
-
- current_uiout->text ("\n");
- }
-}
-
-static void
-info_spu_dma_command (const char *args, int from_tty)
-{
- struct frame_info *frame = get_selected_frame (NULL);
- struct gdbarch *gdbarch = get_frame_arch (frame);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- ULONGEST dma_info_type;
- ULONGEST dma_info_mask;
- ULONGEST dma_info_status;
- ULONGEST dma_info_stall_and_notify;
- ULONGEST dma_info_atomic_command_status;
- char annex[32];
- gdb_byte buf[1024];
- LONGEST len;
- int id;
-
- if (gdbarch_bfd_arch_info (get_frame_arch (frame))->arch != bfd_arch_spu)
- error (_("\"info spu\" is only supported on the SPU architecture."));
-
- id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
- xsnprintf (annex, sizeof annex, "%d/dma_info", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, 40 + 16 * 32);
- if (len <= 0)
- error (_("Could not read dma_info."));
-
- dma_info_type
- = extract_unsigned_integer (buf, 8, byte_order);
- dma_info_mask
- = extract_unsigned_integer (buf + 8, 8, byte_order);
- dma_info_status
- = extract_unsigned_integer (buf + 16, 8, byte_order);
- dma_info_stall_and_notify
- = extract_unsigned_integer (buf + 24, 8, byte_order);
- dma_info_atomic_command_status
- = extract_unsigned_integer (buf + 32, 8, byte_order);
-
- ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoDMA");
-
- if (current_uiout->is_mi_like_p ())
- {
- current_uiout->field_fmt ("dma_info_type", "0x%s",
- phex_nz (dma_info_type, 4));
- current_uiout->field_fmt ("dma_info_mask", "0x%s",
- phex_nz (dma_info_mask, 4));
- current_uiout->field_fmt ("dma_info_status", "0x%s",
- phex_nz (dma_info_status, 4));
- current_uiout->field_fmt ("dma_info_stall_and_notify", "0x%s",
- phex_nz (dma_info_stall_and_notify, 4));
- current_uiout->field_fmt ("dma_info_atomic_command_status", "0x%s",
- phex_nz (dma_info_atomic_command_status, 4));
- }
- else
- {
- const char *query_msg = _("no query pending");
-
- if (dma_info_type & 4)
- switch (dma_info_type & 3)
- {
- case 1: query_msg = _("'any' query pending"); break;
- case 2: query_msg = _("'all' query pending"); break;
- default: query_msg = _("undefined query type"); break;
- }
-
- printf_filtered (_("Tag-Group Status 0x%s\n"),
- phex (dma_info_status, 4));
- printf_filtered (_("Tag-Group Mask 0x%s (%s)\n"),
- phex (dma_info_mask, 4), query_msg);
- printf_filtered (_("Stall-and-Notify 0x%s\n"),
- phex (dma_info_stall_and_notify, 4));
- printf_filtered (_("Atomic Cmd Status 0x%s\n"),
- phex (dma_info_atomic_command_status, 4));
- printf_filtered ("\n");
- }
-
- info_spu_dma_cmdlist (buf + 40, 16, byte_order);
-}
-
-static void
-info_spu_proxydma_command (const char *args, int from_tty)
-{
- struct frame_info *frame = get_selected_frame (NULL);
- struct gdbarch *gdbarch = get_frame_arch (frame);
- enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- ULONGEST dma_info_type;
- ULONGEST dma_info_mask;
- ULONGEST dma_info_status;
- char annex[32];
- gdb_byte buf[1024];
- LONGEST len;
- int id;
-
- if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
- error (_("\"info spu\" is only supported on the SPU architecture."));
-
- id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
-
- xsnprintf (annex, sizeof annex, "%d/proxydma_info", id);
- len = target_read (current_top_target (), TARGET_OBJECT_SPU, annex,
- buf, 0, 24 + 8 * 32);
- if (len <= 0)
- error (_("Could not read proxydma_info."));
-
- dma_info_type = extract_unsigned_integer (buf, 8, byte_order);
- dma_info_mask = extract_unsigned_integer (buf + 8, 8, byte_order);
- dma_info_status = extract_unsigned_integer (buf + 16, 8, byte_order);
-
- ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoProxyDMA");
-
- if (current_uiout->is_mi_like_p ())
- {
- current_uiout->field_fmt ("proxydma_info_type", "0x%s",
- phex_nz (dma_info_type, 4));
- current_uiout->field_fmt ("proxydma_info_mask", "0x%s",
- phex_nz (dma_info_mask, 4));
- current_uiout->field_fmt ("proxydma_info_status", "0x%s",
- phex_nz (dma_info_status, 4));
- }
- else
- {
- const char *query_msg;
-
- switch (dma_info_type & 3)
- {
- case 0: query_msg = _("no query pending"); break;
- case 1: query_msg = _("'any' query pending"); break;
- case 2: query_msg = _("'all' query pending"); break;
- default: query_msg = _("undefined query type"); break;
- }
-
- printf_filtered (_("Tag-Group Status 0x%s\n"),
- phex (dma_info_status, 4));
- printf_filtered (_("Tag-Group Mask 0x%s (%s)\n"),
- phex (dma_info_mask, 4), query_msg);
- printf_filtered ("\n");
- }
-
- info_spu_dma_cmdlist (buf + 24, 8, byte_order);
-}
-
-static void
-info_spu_command (const char *args, int from_tty)
-{
- printf_unfiltered (_("\"info spu\" must be followed by "
- "the name of an SPU facility.\n"));
- help_list (infospucmdlist, "info spu ", all_commands, gdb_stdout);
-}
-
-
-/* Root of all "set spu "/"show spu " commands. */
-
-static void
-show_spu_command (const char *args, int from_tty)
-{
- help_list (showspucmdlist, "show spu ", all_commands, gdb_stdout);
-}
-
-static void
-set_spu_command (const char *args, int from_tty)
-{
- help_list (setspucmdlist, "set spu ", all_commands, gdb_stdout);
-}
-
-static void
-show_spu_stop_on_load (struct ui_file *file, int from_tty,
- struct cmd_list_element *c, const char *value)
-{
- fprintf_filtered (file, _("Stopping for new SPE threads is %s.\n"),
- value);
-}
-
-static void
-show_spu_auto_flush_cache (struct ui_file *file, int from_tty,
- struct cmd_list_element *c, const char *value)
-{
- fprintf_filtered (file, _("Automatic software-cache flush is %s.\n"),
- value);
-}
-
-
-/* Set up gdbarch struct. */
-
-static struct gdbarch *
-spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-{
- struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
- int id = -1;
-
- /* Which spufs ID was requested as address space? */
- if (info.id)
- id = *info.id;
- /* For objfile architectures of SPU solibs, decode the ID from the name.
- This assumes the filename convention employed by solib-spu.c. */
- else if (info.abfd)
- {
- const char *name = strrchr (info.abfd->filename, '@');
- if (name)
- sscanf (name, "@0x%*x <%d>", &id);
- }
-
- /* Find a candidate among extant architectures. */
- for (arches = gdbarch_list_lookup_by_info (arches, &info);
- arches != NULL;
- arches = gdbarch_list_lookup_by_info (arches->next, &info))
- {
- tdep = gdbarch_tdep (arches->gdbarch);
- if (tdep && tdep->id == id)
- return arches->gdbarch;
- }
-
- /* None found, so create a new architecture. */
- tdep = XCNEW (struct gdbarch_tdep);
- tdep->id = id;
- gdbarch = gdbarch_alloc (&info, tdep);
-
- /* Disassembler. */
- set_gdbarch_print_insn (gdbarch, gdb_print_insn_spu);
-
- /* Registers. */
- set_gdbarch_num_regs (gdbarch, SPU_NUM_REGS);
- set_gdbarch_num_pseudo_regs (gdbarch, SPU_NUM_PSEUDO_REGS);
- set_gdbarch_sp_regnum (gdbarch, SPU_SP_REGNUM);
- set_gdbarch_pc_regnum (gdbarch, SPU_PC_REGNUM);
- set_gdbarch_read_pc (gdbarch, spu_read_pc);
- set_gdbarch_write_pc (gdbarch, spu_write_pc);
- set_gdbarch_register_name (gdbarch, spu_register_name);
- set_gdbarch_register_type (gdbarch, spu_register_type);
- set_gdbarch_pseudo_register_read (gdbarch, spu_pseudo_register_read);
- set_gdbarch_pseudo_register_write (gdbarch, spu_pseudo_register_write);
- set_gdbarch_value_from_register (gdbarch, spu_value_from_register);
- set_gdbarch_register_reggroup_p (gdbarch, spu_register_reggroup_p);
- set_gdbarch_dwarf2_reg_to_regnum (gdbarch, spu_dwarf_reg_to_regnum);
- set_gdbarch_ax_pseudo_register_collect
- (gdbarch, spu_ax_pseudo_register_collect);
- set_gdbarch_ax_pseudo_register_push_stack
- (gdbarch, spu_ax_pseudo_register_push_stack);
-
- /* Data types. */
- set_gdbarch_char_signed (gdbarch, 0);
- set_gdbarch_ptr_bit (gdbarch, 32);
- set_gdbarch_addr_bit (gdbarch, 32);
- set_gdbarch_short_bit (gdbarch, 16);
- set_gdbarch_int_bit (gdbarch, 32);
- set_gdbarch_long_bit (gdbarch, 32);
- set_gdbarch_long_long_bit (gdbarch, 64);
- set_gdbarch_float_bit (gdbarch, 32);
- set_gdbarch_double_bit (gdbarch, 64);
- set_gdbarch_long_double_bit (gdbarch, 64);
- set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
- set_gdbarch_double_format (gdbarch, floatformats_ieee_double);
- set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double);
-
- /* Address handling. */
- set_gdbarch_address_to_pointer (gdbarch, spu_address_to_pointer);
- set_gdbarch_pointer_to_address (gdbarch, spu_pointer_to_address);
- set_gdbarch_integer_to_address (gdbarch, spu_integer_to_address);
- set_gdbarch_address_class_type_flags (gdbarch, spu_address_class_type_flags);
- set_gdbarch_address_class_type_flags_to_name
- (gdbarch, spu_address_class_type_flags_to_name);
- set_gdbarch_address_class_name_to_type_flags
- (gdbarch, spu_address_class_name_to_type_flags);
-
- /* We need to support more than "addr_bit" significant address bits
- in order to support SPUADDR_ADDR encoded values. */
- set_gdbarch_significant_addr_bit (gdbarch, 64);
-
- /* Inferior function calls. */
- set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
- set_gdbarch_frame_align (gdbarch, spu_frame_align);
- set_gdbarch_frame_red_zone_size (gdbarch, 2000);
- set_gdbarch_push_dummy_code (gdbarch, spu_push_dummy_code);
- set_gdbarch_push_dummy_call (gdbarch, spu_push_dummy_call);
- set_gdbarch_dummy_id (gdbarch, spu_dummy_id);
- set_gdbarch_return_value (gdbarch, spu_return_value);
-
- /* Frame handling. */
- set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
- dwarf2_append_unwinders (gdbarch);
- frame_unwind_append_unwinder (gdbarch, &spu_frame_unwind);
- frame_base_set_default (gdbarch, &spu_frame_base);
- set_gdbarch_unwind_pc (gdbarch, spu_unwind_pc);
- set_gdbarch_unwind_sp (gdbarch, spu_unwind_sp);
- set_gdbarch_virtual_frame_pointer (gdbarch, spu_virtual_frame_pointer);
- set_gdbarch_frame_args_skip (gdbarch, 0);
- set_gdbarch_skip_prologue (gdbarch, spu_skip_prologue);
- set_gdbarch_stack_frame_destroyed_p (gdbarch, spu_stack_frame_destroyed_p);
-
- /* Cell/B.E. cross-architecture unwinder support. */
- frame_unwind_prepend_unwinder (gdbarch, &spu2ppu_unwind);
-
- /* Breakpoints. */
- set_gdbarch_decr_pc_after_break (gdbarch, 4);
- set_gdbarch_breakpoint_kind_from_pc (gdbarch, spu_breakpoint::kind_from_pc);
- set_gdbarch_sw_breakpoint_from_kind (gdbarch, spu_breakpoint::bp_from_kind);
- set_gdbarch_memory_remove_breakpoint (gdbarch, spu_memory_remove_breakpoint);
- set_gdbarch_software_single_step (gdbarch, spu_software_single_step);
- set_gdbarch_get_longjmp_target (gdbarch, spu_get_longjmp_target);
-
- /* Overlays. */
- set_gdbarch_overlay_update (gdbarch, spu_overlay_update);
-
- return gdbarch;
-}
-
-void
-_initialize_spu_tdep (void)
-{
- register_gdbarch_init (bfd_arch_spu, spu_gdbarch_init);
-
- /* Add ourselves to objfile event chain. */
- gdb::observers::new_objfile.attach (spu_overlay_new_objfile);
-
- /* Install spu stop-on-load handler. */
- gdb::observers::new_objfile.attach (spu_catch_start);
-
- /* Add ourselves to normal_stop event chain. */
- gdb::observers::normal_stop.attach (spu_attach_normal_stop);
-
- /* Add root prefix command for all "set spu"/"show spu" commands. */
- add_prefix_cmd ("spu", no_class, set_spu_command,
- _("Various SPU specific commands."),
- &setspucmdlist, "set spu ", 0, &setlist);
- add_prefix_cmd ("spu", no_class, show_spu_command,
- _("Various SPU specific commands."),
- &showspucmdlist, "show spu ", 0, &showlist);
-
- /* Toggle whether or not to add a temporary breakpoint at the "main"
- function of new SPE contexts. */
- add_setshow_boolean_cmd ("stop-on-load", class_support,
- &spu_stop_on_load_p, _("\
-Set whether to stop for new SPE threads."),
- _("\
-Show whether to stop for new SPE threads."),
- _("\
-Use \"on\" to give control to the user when a new SPE thread\n\
-enters its \"main\" function.\n\
-Use \"off\" to disable stopping for new SPE threads."),
- NULL,
- show_spu_stop_on_load,
- &setspucmdlist, &showspucmdlist);
-
- /* Toggle whether or not to automatically flush the software-managed
- cache whenever SPE execution stops. */
- add_setshow_boolean_cmd ("auto-flush-cache", class_support,
- &spu_auto_flush_cache_p, _("\
-Set whether to automatically flush the software-managed cache."),
- _("\
-Show whether to automatically flush the software-managed cache."),
- _("\
-Use \"on\" to automatically flush the software-managed cache\n\
-whenever SPE execution stops.\n\
-Use \"off\" to never automatically flush the software-managed cache."),
- NULL,
- show_spu_auto_flush_cache,
- &setspucmdlist, &showspucmdlist);
-
- /* Add root prefix command for all "info spu" commands. */
- add_prefix_cmd ("spu", class_info, info_spu_command,
- _("Various SPU specific commands."),
- &infospucmdlist, "info spu ", 0, &infolist);
-
- /* Add various "info spu" commands. */
- add_cmd ("event", class_info, info_spu_event_command,
- _("Display SPU event facility status."),
- &infospucmdlist);
- add_cmd ("signal", class_info, info_spu_signal_command,
- _("Display SPU signal notification facility status."),
- &infospucmdlist);
- add_cmd ("mailbox", class_info, info_spu_mailbox_command,
- _("Display SPU mailbox facility status."),
- &infospucmdlist);
- add_cmd ("dma", class_info, info_spu_dma_command,
- _("Display MFC DMA status."),
- &infospucmdlist);
- add_cmd ("proxydma", class_info, info_spu_proxydma_command,
- _("Display MFC Proxy-DMA status."),
- &infospucmdlist);
-}
diff --git a/gdb/spu-tdep.h b/gdb/spu-tdep.h
deleted file mode 100644
index 255be2ed5a..0000000000
--- a/gdb/spu-tdep.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* SPU target-dependent code for GDB, the GNU debugger.
- Copyright (C) 2006-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef SPU_TDEP_H
-#define SPU_TDEP_H
-
-/* Number of registers. */
-#define SPU_NUM_REGS 130
-#define SPU_NUM_PSEUDO_REGS 6
-#define SPU_NUM_GPRS 128
-
-/* Register numbers of various important registers. */
-enum spu_regnum
-{
- /* SPU calling convention. */
- SPU_LR_REGNUM = 0, /* Link register. */
- SPU_RAW_SP_REGNUM = 1, /* Stack pointer (full register). */
- SPU_ARG1_REGNUM = 3, /* First argument register. */
- SPU_ARGN_REGNUM = 74, /* Last argument register. */
- SPU_SAVED1_REGNUM = 80, /* First call-saved register. */
- SPU_SAVEDN_REGNUM = 127, /* Last call-saved register. */
- SPU_FP_REGNUM = 127, /* Frame pointer. */
-
- /* Special registers. */
- SPU_ID_REGNUM = 128, /* SPU ID register. */
- SPU_PC_REGNUM = 129, /* Next program counter. */
- SPU_SP_REGNUM = 130, /* Stack pointer (preferred slot). */
- SPU_FPSCR_REGNUM = 131, /* Floating point status/control register. */
- SPU_SRR0_REGNUM = 132, /* SRR0 register. */
- SPU_LSLR_REGNUM = 133, /* Local store limit register. */
- SPU_DECR_REGNUM = 134, /* Decrementer value. */
- SPU_DECR_STATUS_REGNUM = 135 /* Decrementer status. */
-};
-
-/* Address conversions.
-
- In a combined PPU/SPU debugging session, we have to consider multiple
- address spaces: the PPU 32- or 64-bit address space, and the 32-bit
- local store address space for each SPU context. As it is currently
- not yet possible to use the program_space / address_space mechanism
- to represent this, we encode all those addresses into one single
- 64-bit address for the whole process. For SPU programs using overlays,
- this address space must also include separate ranges reserved for the
- LMA of overlay sections.
-
-
- The following combinations are supported for combined debugging:
-
- PPU address (this relies on the fact that PPC 64-bit user space
- addresses can never have the highest-most bit set):
-
- +-+---------------------------------+
- |0| ADDR [63] |
- +-+---------------------------------+
-
- SPU address for SPU context with id SPU (this assumes that SPU
- IDs, which are file descriptors, are never larger than 2^30):
-
- +-+-+--------------+----------------+
- |1|0| SPU [30] | ADDR [32] |
- +-+-+--------------+----------------+
-
- SPU overlay section LMA for SPU context with id SPU:
-
- +-+-+--------------+----------------+
- |1|1| SPU [30] | ADDR [32] |
- +-+-+--------------+----------------+
-
-
- In SPU stand-alone debugging mode (using spu-linux-nat.c),
- the following combinations are supported:
-
- SPU address:
-
- +-+-+--------------+----------------+
- |0|0| 0 | ADDR [32] |
- +-+-+--------------+----------------+
-
- SPU overlay section LMA:
-
- +-+-+--------------+----------------+
- |0|1| 0 | ADDR [32] |
- +-+-+--------------+----------------+
-
-
- The following macros allow manipulation of addresses in the
- above formats. */
-
-#define SPUADDR(spu, addr) \
- ((spu) != -1? (ULONGEST)1 << 63 | (ULONGEST)(spu) << 32 | (addr) : (addr))
-
-#define SPUADDR_SPU(addr) \
- (((addr) & (ULONGEST)1 << 63) \
- ? (int) ((ULONGEST)(addr) >> 32 & 0x3fffffff) \
- : -1)
-
-#define SPUADDR_ADDR(addr) \
- (((addr) & (ULONGEST)1 << 63)? (ULONGEST)(addr) & 0xffffffff : (addr))
-
-#define SPU_OVERLAY_LMA ((ULONGEST)1 << 62)
-
-#endif
diff --git a/gdb/target.h b/gdb/target.h
index c2f6203174..8dbd2d62dc 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -137,8 +137,6 @@ enum target_object
{
/* AVR target specific transfer. See "avr-tdep.c" and "remote.c". */
TARGET_OBJECT_AVR,
- /* SPU target specific transfer. See "spu-tdep.c". */
- TARGET_OBJECT_SPU,
/* Transfer up-to LEN bytes of memory starting at OFFSET. */
TARGET_OBJECT_MEMORY,
/* Memory, avoiding GDB's data cache and trusting the executable.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e86091eee3..64c7d38861 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,32 @@
+2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdb.arch/spu-info.exp: Remove file.
+ * gdb.arch/spu-info.c: Remove file.
+ * gdb.arch/spu-ls.exp: Remove file.
+ * gdb.arch/spu-ls.c: Remove file.
+
+ * gdb.asm/asm-source.exp: Remove support for spu*-*-*.
+ * gdb.asm/spu.inc: Remove file.
+
+ * gdb.base/dump.exp: Remove support for spu*-*-*.
+ * gdb.base/stack-checking.exp: Likewise.
+ * gdb.base/overlays.exp: Likewise.
+ * gdb.base/ovlymgr.c: Likewise.
+ * gdb.base/spu.ld: Remove file.
+
+ * gdb.cp/bs15503.exp: Remove support for spu*-*-*.
+ * gdb.cp/cpexprs.exp: Likewise.
+ * gdb.cp/exception.exp: Likewise.
+ * gdb.cp/gdb2495.exp: Likewise.
+ * gdb.cp/mb-templates.exp: Likewise.
+ * gdb.cp/pr9167.exp: Likewise.
+ * gdb.cp/userdef.exp: Likewise.
+
+ * gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*.
+
+ * gdb.cell: Remove directory.
+ * lib/cell.exp: Remove file.
+
2019-09-19 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern.
diff --git a/gdb/testsuite/gdb.arch/spu-info.c b/gdb/testsuite/gdb.arch/spu-info.c
deleted file mode 100644
index 3046525c9e..0000000000
--- a/gdb/testsuite/gdb.arch/spu-info.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/* Copyright 2007-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- This file is part of the gdb testsuite.
-
- Contributed by Markus Deuling <deuling@de.ibm.com>.
- Tests for 'info spu' commands. */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <spu_mfcio.h>
-
-
-/* PPE-assisted call interface. */
-void
-send_to_ppe (unsigned int signalcode, unsigned int opcode, void *data)
-{
- __vector unsigned int stopfunc =
- {
- signalcode, /* stop */
- (opcode << 24) | (unsigned int) data,
- 0x4020007f, /* nop */
- 0x35000000 /* bi $0 */
- };
-
- void (*f) (void) = (void *) &stopfunc;
- asm ("sync");
- f ();
-}
-
-/* PPE-assisted call to mmap from SPU. */
-unsigned long long
-mmap_ea (unsigned long long start, size_t length,
- int prot, int flags, int fd, off_t offset)
-{
- struct mmap_args
- {
- unsigned long long start __attribute__ ((aligned (16)));
- size_t length __attribute__ ((aligned (16)));
- int prot __attribute__ ((aligned (16)));
- int flags __attribute__ ((aligned (16)));
- int fd __attribute__ ((aligned (16)));
- off_t offset __attribute__ ((aligned (16)));
- } args;
-
- args.start = start;
- args.length = length;
- args.prot = prot;
- args.flags = flags;
- args.fd = fd;
- args.offset = offset;
-
- send_to_ppe (0x2101, 11, &args);
- return args.start;
-}
-
-/* This works only in a Linux environment with <= 1024 open
- file descriptors for one process. Result is the file
- descriptor for the current context if available. */
-int
-find_context_fd (void)
-{
- int dir_fd = -1;
- int i;
-
- for (i = 0; i < 1024; i++)
- {
- struct stat stat;
-
- if (fstat (i, &stat) < 0)
- break;
- if (S_ISDIR (stat.st_mode))
- dir_fd = dir_fd == -1 ? i : -2;
- }
- return dir_fd < 0 ? -1 : dir_fd;
-}
-
-/* Open the context file and return the file handler. */
-int
-open_context_file (int context_fd, char *name, int flags)
-{
- char buf[128];
-
- if (context_fd < 0)
- return -1;
-
- sprintf (buf, "/proc/self/fd/%d/%s", context_fd, name);
- return open (buf, flags);
-}
-
-
-int
-do_event_test ()
-{
- spu_write_event_mask (MFC_MULTI_SRC_SYNC_EVENT); /* 0x1000 */ /* Marker Event */
- spu_write_event_mask (MFC_PRIV_ATTN_EVENT); /* 0x0800 */
- spu_write_event_mask (MFC_LLR_LOST_EVENT); /* 0x0400 */
- spu_write_event_mask (MFC_SIGNAL_NOTIFY_1_EVENT); /* 0x0200 */
- spu_write_event_mask (MFC_SIGNAL_NOTIFY_2_EVENT); /* 0x0100 */
- spu_write_event_mask (MFC_OUT_MBOX_AVAILABLE_EVENT); /* 0x0080 */
- spu_write_event_mask (MFC_OUT_INTR_MBOX_AVAILABLE_EVENT); /* 0x0040 */
- spu_write_event_mask (MFC_DECREMENTER_EVENT); /* 0x0020 */
- spu_write_event_mask (MFC_IN_MBOX_AVAILABLE_EVENT); /* 0x0010 */
- spu_write_event_mask (MFC_COMMAND_QUEUE_AVAILABLE_EVENT); /* 0x0008 */
- spu_write_event_mask (MFC_LIST_STALL_NOTIFY_EVENT); /* 0x0002 */
- spu_write_event_mask (MFC_TAG_STATUS_UPDATE_EVENT); /* 0x0001 */
-
- return 0;
-}
-
-int
-do_dma_test ()
-{
- #define MAP_FAILED (-1ULL)
- #define PROT_READ 0x1
- #define MAP_PRIVATE 0x002
- #define BSIZE 128
- static char buf[BSIZE] __attribute__ ((aligned (128)));
- char *file = "/var/tmp/tmp_buf";
- struct stat fdstat;
- int fd, cnt;
- unsigned long long src;
-
- /* Create a file and fill it with some bytes. */
- fd = open (file, O_CREAT | O_RDWR | O_TRUNC, 0777);
- if (fd == -1)
- return -1;
- memset ((void *)buf, '1', BSIZE);
- write (fd, buf, BSIZE);
- write (fd, buf, BSIZE);
- memset ((void *)buf, 0, BSIZE);
-
- if (fstat (fd, &fdstat) != 0
- || !fdstat.st_size)
- return -2;
-
- src = mmap_ea(0ULL, fdstat.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
- if (src == MAP_FAILED)
- return -3;
-
- /* Copy some data via DMA. */
- mfc_get (&buf, src, BSIZE, 5, 0, 0); /* Marker DMA */
- mfc_write_tag_mask (1<<5); /* Marker DMAWait */
- spu_mfcstat (MFC_TAG_UPDATE_ALL);
-
- /* Close the file. */
- close (fd);
-
- return cnt;
-}
-
-int
-do_mailbox_test ()
-{
- /* Write to SPU Outbound Mailbox. */
- if (spu_stat_out_mbox ()) /* Marker Mbox */
- spu_write_out_mbox (0x12345678);
-
- /* Write to SPU Outbound Interrupt Mailbox. */
- if (spu_stat_out_intr_mbox ())
- spu_write_out_intr_mbox (0x12345678);
-
- return 0; /* Marker MboxEnd */
-}
-
-int
-do_signal_test ()
-{
- struct stat fdstat;
- int context_fd = find_context_fd ();
- int ret, buf, fd;
-
- buf = 23; /* Marker Signal */
- /* Write to signal1. */
- fd = open_context_file (context_fd, "signal1", O_RDWR);
- if (fstat (fd, &fdstat) != 0)
- return -1;
- ret = write (fd, &buf, sizeof (int));
- close (fd); /* Marker Signal1 */
-
- /* Write to signal2. */
- fd = open_context_file (context_fd, "signal2", O_RDWR);
- if (fstat (fd, &fdstat) != 0)
- return -1;
- ret = write (fd, &buf, sizeof (int));
- close (fd); /* Marker Signal2 */
-
- /* Read signal1. */
- if (spu_stat_signal1 ())
- ret = spu_read_signal1 ();
-
- /* Read signal2. */
- if (spu_stat_signal2 ())
- ret = spu_read_signal2 (); /* Marker SignalRead */
-
- return 0;
-}
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- int res;
-
- /* info spu event */
- res = do_event_test ();
-
- /* info spu dma */
- res = do_dma_test ();
-
- /* info spu mailbox */
- res = do_mailbox_test ();
-
- /* info spu signal */
- res = do_signal_test ();
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.arch/spu-info.exp b/gdb/testsuite/gdb.arch/spu-info.exp
deleted file mode 100644
index f840251c31..0000000000
--- a/gdb/testsuite/gdb.arch/spu-info.exp
+++ /dev/null
@@ -1,241 +0,0 @@
-# Copyright 2007-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-# Tests for 'info spu' commands.
-
-
-if { ![istarget "spu-*-elf"] } then {
- verbose "Skipping SPU-only testcase"
- return
-}
-
-standard_testfile
-
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
- fail "cannot compile test program"
- return -1
-}
-
-
-# Continue to MARKER
-proc c_to { marker } {
- global srcfile
- set line [gdb_get_line_number $marker]
- gdb_test "break $line" \
- "Breakpoint.*at.*file.*$srcfile.*line $line.*" \
- "break $line"
- gdb_test "continue" \
- "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \
- "continue to $line"
-}
-
-
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Check the help.
-gdb_test "info spu" \
- ".*info spu.* must be followed by the name of an SPU facility.*" \
- "info spu"
-gdb_test "help info spu" \
- "Various SPU specific commands.*List of info spu subcommands.*" \
- "help info spu"
-
-gdb_test "help info spu dma" \
- "Display MFC DMA status." \
- "help info spu dma"
-gdb_test "help info spu event" \
- "Display SPU event facility status." \
- "help info spu event"
-gdb_test "help info spu mailbox" \
- "Display SPU mailbox facility status." \
- "help info spu mailbox"
-gdb_test "help info spu proxydma" \
- "Display MFC Proxy-DMA status." \
- "help info spu proxydma"
-gdb_test "help info spu signal" \
- "Display SPU signal notification facility status." \
- "help info spu signal"
-
-
-# architecture should be spu:256K.
-gdb_test "show architecture" \
- "The target architecture is set automatically.*currently spu:256K.*" \
- "architecture = spu256K"
-
-# 'info spu event'.
-gdb_test "info spu event" \
- "Event Status.*Event Mask.*" \
- "info spu event"
-
-# 'info spu signal'.
-gdb_test "info spu signal" \
- "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \
- "info spu signal"
-
-# 'info spu mailbox'.
-gdb_test "info spu mailbox" \
- "" \
- "info spu mailbox"
-
-# 'info spu dma'.
-gdb_test "info spu dma" \
- "Tag-Group Status.*Tag-Group Mask.*Stall-and-Notify .*Atomic Cmd Status.*" \
- "info spu dma"
-
-# 'info spu proxydma'.
-gdb_test "info spu proxydma" \
- "Tag-Group Status.*Tag-Group Mask.*" \
- "info spu proxydma"
-
-# Event tests.
-c_to "Marker Event"
-gdb_test "info spu event" \
- "Event Status 0x00000000.*Event Mask 0x00000000.*" \
- "empty event status"
-
-# MFC_MULTI_SRC_SYNC_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00001000.*" \
- "event mask 0x1000"
-# MFC_PRIV_ATTN_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000800.*" \
- "event mask 0x0800"
-# MFC_LLR_LOST_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000400.*" \
- "event mask 0x0400"
-# MFC_SIGNAL_NOTIFY_1_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000200.*" \
- "event mask 0x0200"
-# MFC_SIGNAL_NOTIFY_2_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000100.*" \
- "event mask 0x0100"
-# MFC_OUT_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000080.*" \
- "event mask 0x0080"
-# MFC_OUT_INTR_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000040.*" \
- "event mask 0x0040"
-# MFC_DECREMENTER_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000020.*" \
- "event mask 0x0020"
-# MFC_IN_MBOX_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000010.*" \
- "event mask 0x0010"
-# MFC_COMMAND_QUEUE_AVAILABLE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000008.*" \
- "event mask 0x0008"
-# MFC_LIST_STALL_NOTIFY_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000002.*" \
- "event mask 0x0002"
-# MFC_TAG_STATUS_UPDATE_EVENT.
-gdb_test "next" "" "next"
-gdb_test "info spu event" \
- "Event Status 0x0000.*Event Mask 0x00000001.*" \
- "event mask 0x0001"
-
-
-# DMA tests.
-# 'info spu dma' should be empty.
-c_to "Marker DMA"
-gdb_test "info spu dma" \
- "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000000.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000\[\r\n\]+" \
- "info spu dma (empty)"
-
-# 'info spu dma' should be filled with some data.
-c_to "Marker DMAWait"
-gdb_test "next" "" "next"
-gdb_test "info spu dma" \
- "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000020.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000.*Opcode.*Tag.*TId.*RId.*EA.*LSA.*Size.*LstAddr.*LstSize.*E.*get.*5.*0.*0.*0x00080\[ \r\n\]+" \
- "info spu dma (non-empty)"
-gdb_test "finish" "" "finish"
-
-# Mailbox Test
-# 'info spu mailbox' should be empty.
-c_to "Marker Mbox"
-set msg "info spu mailbox"
-gdb_test_multiple "info spu mailbox" $msg {
- -re "$gdb_prompt $" {
- pass $msg
- }
- -re "SPU Outbound Mailbox.*0x.*SPU Outbound Interrupt Mailbox.*0x.*$gdb_prompt $" {
- # Older kernels had a bug that caused them to return arbitrary values
- # when attempting to read from an empty mailbox via spufs.
- xfail $msg
- }
-}
-
-# 'info spu mailbox' should now contain data.
-c_to "Marker MboxEnd"
-gdb_test "info spu mailbox" \
- "SPU Outbound Mailbox.*0x12345678.*SPU Outbound Interrupt Mailbox.*0x12345678.*" \
- "info spu mailbox"
-
-# Signal Test
-# 'info spu signal'.
-c_to "Marker Signal"
-gdb_test "info spu signal" \
- "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \
- "info spu signal"
-
-# 'info spu signal' with signal1 pending.
-c_to "Marker Signal1"
-gdb_test "info spu signal" \
- "Signal 1 control word 0x00000017.*Signal 2 not pending.*\(Type.*\).*" \
- "info spu signal"
-
-# 'info spu signal' with signal1 and signal2 pending.
-c_to "Marker Signal2"
-gdb_test "info spu signal" \
- "Signal 1 control word 0x00000017.*Signal 2 control word 0x00000017.*" \
- "info spu signal"
-
-# Read signal1. Only signal2 is pending.
-c_to "Marker SignalRead"
-gdb_test "info spu signal" \
- "Signal 1 not pending.*Signal 2 control word 0x00000017.*" \
- "info spu signal"
-
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.arch/spu-ls.c b/gdb/testsuite/gdb.arch/spu-ls.c
deleted file mode 100644
index f1a20491f0..0000000000
--- a/gdb/testsuite/gdb.arch/spu-ls.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2010-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- This file is part of the gdb testsuite.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
- Tests for SPU local-store access. */
-
-char *ptr = (char *)0x12345678;
-
-char array[256];
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.arch/spu-ls.exp b/gdb/testsuite/gdb.arch/spu-ls.exp
deleted file mode 100644
index af0b1acec8..0000000000
--- a/gdb/testsuite/gdb.arch/spu-ls.exp
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-# Tests for SPU local-store access.
-
-if { ![istarget "spu-*-elf"] } then {
- verbose "Skipping SPU-only testcase"
- return
-}
-
-standard_testfile
-
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
- fail "cannot compile test program"
- return -1
-}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-gdb_test "print ptr" " = 0x12345678 \".*\"" "print ptr"
-gdb_test_no_output "set ptr = array + \$lslr + 1" "set ptr = array + \$lslr + 1"
-gdb_test_no_output "set array\[0\] = 1" "set array\[0\] = 1"
-gdb_test "print *ptr" " = 1 '\\\\001'" "print *ptr"
-gdb_test_no_output "set *ptr = 2" "set *ptr = 2"
-gdb_test "print array\[0\]" " = 2 '\\\\002'" "print array\[0\]"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index 1bc384e974..b10ee1702f 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -128,11 +128,6 @@ switch -glob -- [istarget] {
set asm-flags "-xarch=v9 -I${srcdir}/${subdir} $obj_include"
set debug-flags "-gdwarf-2"
}
- "spu*-*-*" {
- set asm-arch spu
- set asm-flags "-I${srcdir}/${subdir} $obj_include --no-warn"
- set debug-flags "-gdwarf-2"
- }
"xstormy16-*-*" {
set asm-arch xstormy16
set debug-flags "-gdwarf-2"
diff --git a/gdb/testsuite/gdb.asm/spu.inc b/gdb/testsuite/gdb.asm/spu.inc
deleted file mode 100644
index aabceb845d..0000000000
--- a/gdb/testsuite/gdb.asm/spu.inc
+++ /dev/null
@@ -1,42 +0,0 @@
- comment "subroutine prologue"
- .macro gdbasm_enter
- stqd $lr, 16($sp)
- stqd $sp, -32($sp)
- ai $sp, $sp, -32
- .endm
-
- comment "subroutine epilogue"
- .macro gdbasm_leave
- ai $sp, $sp, 32
- lqd $lr, 16($sp)
- bi $lr
- .endm
-
- .macro gdbasm_call subr
- brsl $lr, \subr
- .endm
-
- .macro gdbasm_several_nops
- nop
- nop
- nop
- nop
- .endm
-
- comment "exit (0)"
- .macro gdbasm_exit0
- stop 0x2000
- stop
- stop
- stop
- .endm
-
- comment "startup"
- .macro gdbasm_startup
- il $0, 0
- ila $sp, 16368
- stqd $0, 0($sp)
- stqd $sp, -32($sp)
- ai $sp, $sp, -32
- stqd $0, 16($sp)
- .endm
diff --git a/gdb/testsuite/gdb.base/dump.exp b/gdb/testsuite/gdb.base/dump.exp
index 52ba5f8ebe..77db17936e 100644
--- a/gdb/testsuite/gdb.base/dump.exp
+++ b/gdb/testsuite/gdb.base/dump.exp
@@ -30,12 +30,6 @@ if [istarget "alpha*-*-*"] then {
lappend options "additional_flags=-Wl,-taso"
}
-if {[istarget "spu*-*-*"]} then {
- # The internal address format used for the combined Cell/B.E.
- # debugger requires 64-bit.
- set is64bitonly "yes"
-}
-
# Debian9/Ubuntu16.10 onwards default to PIE enabled. Ensure it is disabled as
# this causes addresses to be out of range for IHEX.
lappend options {nopie}
diff --git a/gdb/testsuite/gdb.base/overlays.exp b/gdb/testsuite/gdb.base/overlays.exp
index d8ac61921e..388b87f026 100644
--- a/gdb/testsuite/gdb.base/overlays.exp
+++ b/gdb/testsuite/gdb.base/overlays.exp
@@ -24,9 +24,6 @@ set data_overlays 1
if [istarget "m32r-*-*"] then {
set linker_script "${srcdir}/${subdir}/m32r.ld"
-} elseif [istarget "spu-*-*"] then {
- set linker_script "${srcdir}/${subdir}/spu.ld"
- set data_overlays 0
} else {
verbose "Skipping overlay test -- not implemented for this target."
return
diff --git a/gdb/testsuite/gdb.base/ovlymgr.c b/gdb/testsuite/gdb.base/ovlymgr.c
index 533606b036..f4958ed14a 100644
--- a/gdb/testsuite/gdb.base/ovlymgr.c
+++ b/gdb/testsuite/gdb.base/ovlymgr.c
@@ -5,18 +5,6 @@
#include "ovlymgr.h"
-#ifdef __SPU__
-/* SPU tool chain provides its own overlay manager. */
-bool
-OverlayLoad (unsigned long ovlyno)
-{
-}
-bool
-OverlayUnload (unsigned long ovlyno)
-{
-}
-#else /* __SPU__ */
-
/* Local functions and data: */
extern unsigned long _ovly_table[][4];
@@ -243,4 +231,3 @@ ovly_copy (unsigned long dst, unsigned long src, long size)
return;
}
-#endif /* __SPU__ */
diff --git a/gdb/testsuite/gdb.base/spu.ld b/gdb/testsuite/gdb.base/spu.ld
deleted file mode 100644
index 0cd5a85405..0000000000
--- a/gdb/testsuite/gdb.base/spu.ld
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Script for -z combreloc: combine and sort reloc sections */
-OUTPUT_FORMAT("elf32-spu", "elf32-spu",
- "elf32-spu")
-OUTPUT_ARCH(spu)
-ENTRY(_start)
-SEARCH_DIR("/usr/spu/lib");
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0); . = 0;
- .interrupt : { KEEP(*(.interrupt)) }
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rel.dyn :
- {
- *(.rel.init)
- *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
- *(.rel.fini)
- *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
- *(.rel.data.rel.ro*)
- *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
- *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
- *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
- *(.rel.ctors)
- *(.rel.dtors)
- *(.rel.got)
- *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
- }
- .rela.dyn :
- {
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init :
- {
- KEEP (*(.init))
- } =0
- .plt : { *(.plt) }
- .text :
- {
- *(EXCLUDE_FILE (foo.o bar.o baz.o grbx.o) .text .stub .text.* .gnu.linkonce.t.*)
- KEEP (*(.text.*personality*))
- *(.spu.elf)
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- } =0
- .fini :
- {
- KEEP (*(.fini))
- } =0
- PROVIDE (__etext = .);
- PROVIDE (_etext = .);
- PROVIDE (etext = .);
- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
- .rodata1 : { *(.rodata1) }
- .eh_frame_hdr : { *(.eh_frame_hdr) }
- .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
- .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(0x80);
- /* Exception handling */
- .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
- .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
- /* Thread Local Storage sections */
- .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
- .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
- /* Ensure the __preinit_array_start label is properly aligned. We
- could instead move the label definition inside the section, but
- the linker would then create the section even if it turns out to
- be empty, which isn't pretty. */
- . = ALIGN(16);
- PROVIDE (__preinit_array_start = .);
- .preinit_array : { KEEP (*(.preinit_array)) }
- PROVIDE (__preinit_array_end = .);
- PROVIDE (__init_array_start = .);
- .init_array : { KEEP (*(.init_array)) }
- PROVIDE (__init_array_end = .);
- PROVIDE (__fini_array_start = .);
- .fini_array : { KEEP (*(.fini_array)) }
- PROVIDE (__fini_array_end = .);
- .ctors :
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is
- first. Because this is a wildcard, it
- doesn't matter if the user does not
- actually link against crtbegin.o; the
- linker won't look for a file to match a
- wildcard. The wildcard also means that it
- doesn't matter which directory crtbegin.o
- is in. */
- KEEP (*crtbegin*.o(.ctors))
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- }
- .dtors :
- {
- KEEP (*crtbegin*.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- }
- .jcr : { KEEP (*(.jcr)) }
- .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
- .dynamic : { *(.dynamic) }
- .got : { *(.got.plt) *(.got) }
- .data :
- {
- *(.data .data.* .gnu.linkonce.d.*)
- KEEP (*(.gnu.linkonce.d.*personality*))
- SORT(CONSTRUCTORS)
- }
- .data1 : { *(.data1) }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- .bss :
- {
- *(.dynbss)
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(16);
- }
- .toe ALIGN(128) : { *(.toe) } = 0
- . = ALIGN(16);
- OVERLAY :
- {
- .ovly0 { foo.o(.text) }
- .ovly1 { bar.o(.text) }
- }
- OVERLAY :
- {
- .ovly2 { baz.o(.text) }
- .ovly3 { grbx.o(.text) }
- }
- _end = .;
- PROVIDE (end = .);
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .note.spu_name 0 : { *(.note.spu_name) }
- PROVIDE (__stack = 0x3fff0);
- /DISCARD/ : { *(.note.GNU-stack) }
-}
-
diff --git a/gdb/testsuite/gdb.base/stack-checking.c b/gdb/testsuite/gdb.base/stack-checking.c
index e8af6a1c23..8f6dedbcec 100644
--- a/gdb/testsuite/gdb.base/stack-checking.c
+++ b/gdb/testsuite/gdb.base/stack-checking.c
@@ -36,11 +36,7 @@ void medium_frame ()
void big_frame ()
{
-#ifdef __SPU__
- char S [131072];
-#else
char S [524188];
-#endif
small_frame ();
}
diff --git a/gdb/testsuite/gdb.cell/arch.exp b/gdb/testsuite/gdb.cell/arch.exp
deleted file mode 100644
index dbfb20c379..0000000000
--- a/gdb/testsuite/gdb.cell/arch.exp
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase checks if the "show architecture" command works properly.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, default architecture should be powerpc:common.
-gdb_test "show architecture" \
- "The target architecture is set automatically.*currently powerpc:common.*" \
- "startup architecture is powerpc:common"
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# In PPU thread, architecture should be powerpc:common.
-gdb_test "show architecture" \
- "The target architecture is set automatically.*currently powerpc:common.*" \
- "ppu architecture is powerpc:common"
-
-# Switch to SPU thread.
-cont_spu_main
-check_spu_arch ""
-
-# Remember thread ID of first thread to hit SPU main.
-send_gdb "thread\n"
-gdb_expect 10 {
- -re "Current thread is (\[0-9\]*) .*\r\n$gdb_prompt $" {
- pass "retrieve current thread"
- set thread_id $expect_out(1,string)
- }
- -re "$gdb_prompt $" {
- fail "retrieve current thread"
- return 0
- }
- timeout {
- fail "retrieve current thread (timed out)"
- return 0
- }
-}
-
-# Stress Test: Switching from PPU- to SPU-Thread and back 'rep' times.
-set rep 100
-for {set i 0} {$i < $rep} {incr i} {
- # Switch to PPU Thread.
- gdb_test "t 1" \
- "Switching to thread 1.*" \
- "switch back to thread 1 (PPU) #$i"
- # In PPU Thread, architecture should again be powerpc:common.
- gdb_test "show architecture" \
- "The target architecture is set automatically.*currently powerpc:common.*" \
- "ppu architecture is powerpc:common again #$i"
- # Thread switching to SPU.
- gdb_test "t $thread_id" \
- "Switching to thread $thread_id.*at.*$spu_file.c.*" \
- "switch back to thread $thread_id (spu) #$i"
- # Standing in SPU thread again, architecture should be spu:256K again.
- check_spu_arch "spu architecture is spu256K again #$i"
-}
-# End of Stress Test loop
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/break-spu.c b/gdb/testsuite/gdb.cell/break-spu.c
deleted file mode 100644
index f28a843c04..0000000000
--- a/gdb/testsuite/gdb.cell/break-spu.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-
-void foo (void);
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- int i;
-
- printf ("Hello World! from spu\n");
-
- i = 5;
- foo ();
- printf ("i = %d\n", i);
-
- return 0;
-}
-
-void
-foo (void)
-{
- printf ("in foo\n");
-}
diff --git a/gdb/testsuite/gdb.cell/break.c b/gdb/testsuite/gdb.cell/break.c
deleted file mode 100644
index 95108d7d50..0000000000
--- a/gdb/testsuite/gdb.cell/break.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t break_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &break_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- int thread_id[nr_t];
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
- int value = 1;
- int cnt;
-
- for (cnt = 0; cnt < nr_t; cnt++)
- {
- ctx[cnt] = spe_context_create (0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
- }
-
- for (cnt = 0; cnt < nr_t; cnt++)
- pthread_join (pts[cnt], NULL);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_context_destroy (ctx[cnt]);
-
- return 0;
-}
-
-void
-foo ()
-{
- printf ("foo in break\n");
- return;
-}
diff --git a/gdb/testsuite/gdb.cell/break.exp b/gdb/testsuite/gdb.cell/break.exp
deleted file mode 100644
index 73e60ad4c1..0000000000
--- a/gdb/testsuite/gdb.cell/break.exp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests setting and deleting breakpoints on PPU and SPU.
-
-load_lib cell.exp
-
-set testfile "break"
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# Delete breakpoints before starting the application. The debugger
-# shouldn't prompt for anything.
-gdb_test "delete breakpoints" \
- "" \
- "no prompt when deleting non-existing breakpoints"
-
-gdb_test "break main" \
- "Breakpoint.*at.* file .*$testfile.c, line.*" \
- "breakpoint main in ppu"
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-delete_breakpoints
-
-# Re-set breakpoint at main in PPU binary.
-gdb_test "break main" \
- "Breakpoint.*at.* file .*$testfile.c, line.*" \
- "breakpoint function"
-
-# Set breakpoint in SPU binary.
-send_gdb "break $spu_file.c:10\n"
-gdb_expect {
- -re ".*$spu_file.c.*Make breakpoint pending.*y or \\\[n\\\]. $" {
- gdb_test "y" "Breakpoint.*$spu_file.*pending." "set pending breakpoint"
- }
- timeout { fail "timeout while setting breakpoint in spu binary" }
-}
-
-# Check breakpoints.
-gdb_test "info break" \
- "Num\[ \]+Type\[ \]+Disp\[ \]+Enb\[ \]+Address\[ \]+What.*
-\[0-9\]+\[\t \]+breakpoint keep y.*in main at.*$testfile.c.*
-\[0-9\]+\[\t \]+breakpoint keep y.*PENDING.*$spu_file.c:10.*" \
- "breakpoint info"
-
-gdb_test "continue" \
- "Continuing.*Switching to Thread.*Breakpoint.*main.*at.*$spu_file.c.*" \
- "continuing to spu thread"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/bt-spu.c b/gdb/testsuite/gdb.cell/bt-spu.c
deleted file mode 100644
index 6e83361cd3..0000000000
--- a/gdb/testsuite/gdb.cell/bt-spu.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <sys/syscall.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- __send_to_ppe (0x2111, 0, NULL);
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/bt.c b/gdb/testsuite/gdb.cell/bt.c
deleted file mode 100644
index 31fb4ea864..0000000000
--- a/gdb/testsuite/gdb.cell/bt.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t bt_spu;
-extern spe_program_handle_t bt2_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &bt_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-indirect_handler (unsigned char *base, unsigned long offset)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t ctx = spe_context_create (0, NULL);
-
- spe_program_load (ctx, &bt2_spu);
- spe_context_run (ctx, &entry, flags, NULL, NULL, NULL);
-
- return 0;
-}
-
-static pthread_mutex_t crash_mutex = PTHREAD_MUTEX_INITIALIZER;
-static int crash_count = 0;
-
-int
-crash_handler (unsigned char *base, unsigned long offset)
-{
- int count;
-
- pthread_mutex_lock (&crash_mutex);
- count = ++crash_count;
- pthread_mutex_unlock (&crash_mutex);
-
- while (count < nr_t)
- ;
-
- abort ();
-}
-
-int
-main (void)
-{
- int thread_id[nr_t];
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
- int value = 1;
- int cnt;
-
- spe_callback_handler_register (indirect_handler, 0x11, SPE_CALLBACK_NEW);
- spe_callback_handler_register (crash_handler, 0x12, SPE_CALLBACK_NEW);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- {
- ctx[cnt] = spe_context_create (0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
- }
-
- for (cnt = 0; cnt < nr_t; cnt++)
- pthread_join (pts[cnt], NULL);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_context_destroy (ctx[cnt]);
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/bt.exp b/gdb/testsuite/gdb.cell/bt.exp
deleted file mode 100644
index cacf7c2035..0000000000
--- a/gdb/testsuite/gdb.cell/bt.exp
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture backtrace support
-
-load_lib cell.exp
-
-set testfile "bt"
-set ppu_file "bt"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "bt-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-set spu2_file "bt2-spu"
-set spu2_src ${srcdir}/${subdir}/${spu2_file}.c
-set spu2_bin [standard_output_file ${spu2_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binaries.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_spu $spu2_src $spu2_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_cell_embedspu $spu2_bin $spu2_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o $spu2_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-delete_breakpoints
-gdb_test "continue" ".*received signal SIGABRT, Aborted.*"
-
-gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
- gdb_test "t $thread_id" \
- "Switching to thread $thread_id.*" \
- "switch to thread $thread_id"
- gdb_test "backtrace" \
- ".*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
- "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/bt2-spu.c b/gdb/testsuite/gdb.cell/bt2-spu.c
deleted file mode 100644
index 67ed34c364..0000000000
--- a/gdb/testsuite/gdb.cell/bt2-spu.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <sys/syscall.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- __send_to_ppe (0x2112, 0, NULL);
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/core.exp b/gdb/testsuite/gdb.cell/core.exp
deleted file mode 100644
index 2de7562926..0000000000
--- a/gdb/testsuite/gdb.cell/core.exp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture core file support
-
-load_lib cell.exp
-
-set testfile "coremaker"
-set ppu_file "coremaker"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "coremaker-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {![isnative]} then {
- return 0
-}
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-# Run program to generate a core file -- see gdb.base/corefile.exp
-set found 0
-set coredir "${objdir}/${subdir}/coredir.[getpid]"
-file mkdir $coredir
-catch "system \"(cd ${coredir}; ulimit -c unlimited; ${ppu_bin}; true) >/dev/null 2>&1\""
-set names [glob -nocomplain -directory $coredir core.*]
-if {[llength $names] == 1} {
- set corefile [file join $coredir [lindex $names 0]]
- remote_exec build "mv $corefile ${objdir}/${subdir}/corefile"
- set found 1
-}
-remote_exec build "rmdir $coredir"
-if { $found == 0 } {
- warning "can't generate a core file - core tests suppressed - check ulimit -c"
- return 0
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-send_gdb "core-file $objdir/$subdir/corefile\n"
-gdb_expect {
- -re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
- pass "core-file command"
- }
- -re "Core was generated by .*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
- pass "core-file command (with bad program name)"
- }
- -re ".*$gdb_prompt $" { fail "core-file command" }
- timeout { fail "(timeout) core-file command" }
-}
-
-gdb_test "backtrace" ".*abort.*main.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
- gdb_test "t $thread_id" \
- "Switching to thread $thread_id.*" \
- "switch to thread $thread_id"
- gdb_test "backtrace" \
- ".*terminal_func.*factorial_func.*value=1.*factorial_func.*value=2.*factorial_func.*value=3.*factorial_func.*value=4.*factorial_func.*value=5.*factorial_func.*value=6.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
- "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/coremaker-spu.c b/gdb/testsuite/gdb.cell/coremaker-spu.c
deleted file mode 100644
index 472660d629..0000000000
--- a/gdb/testsuite/gdb.cell/coremaker-spu.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <spu_mfcio.h>
-
-void
-terminal_func ()
-{
- spu_write_out_intr_mbox (0);
- spu_read_in_mbox ();
-}
-
-int
-factorial_func (int value)
-{
- if (value > 1)
- value *= factorial_func (value - 1);
-
- terminal_func ();
- return value;
-}
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- factorial_func (6);
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/coremaker.c b/gdb/testsuite/gdb.cell/coremaker.c
deleted file mode 100644
index 741e9483b4..0000000000
--- a/gdb/testsuite/gdb.cell/coremaker.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t coremaker_spu;
-#define nr_t 5
-
-void *
-spe_thread (void * arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &coremaker_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- int thread_id[nr_t];
- pthread_attr_t attr;
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
- unsigned int value;
- int cnt;
-
- /* Use small thread stacks to speed up writing out core file. */
- pthread_attr_init (&attr);
- pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- {
- ctx[cnt] = spe_context_create (0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], &attr, &spe_thread, &ctx[cnt]);
- }
-
- pthread_attr_destroy (&attr);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);
-
- abort ();
-}
-
diff --git a/gdb/testsuite/gdb.cell/data-spu.c b/gdb/testsuite/gdb.cell/data-spu.c
deleted file mode 100644
index 56efbbcc63..0000000000
--- a/gdb/testsuite/gdb.cell/data-spu.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- char var_char = 'c';
- short var_short = 7;
- int var_int = 1337;
- long var_long = 123456;
- long long var_longlong = 123456789;
- float var_float = 1.23;
- double var_double = 2.3456;
- long double var_longdouble = 3.45678;
- return 0; /* Marker SPU End */
-}
-
diff --git a/gdb/testsuite/gdb.cell/data.c b/gdb/testsuite/gdb.cell/data.c
deleted file mode 100644
index 7c38461181..0000000000
--- a/gdb/testsuite/gdb.cell/data.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t data_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &data_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int main (void)
-{
- int thread_id[nr_t];
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
-
- int cnt;
-
- char var_char = 'c';
- short var_short = 7;
- int var_int = 1337;
- long var_long = 123456;
- long long var_longlong = 123456789;
- float var_float = 1.23;
- double var_double = 2.3456;
- long double var_longdouble = 3.45678;
-
- for (cnt = 0; cnt < nr_t; cnt++)
- {
- ctx[cnt] = spe_context_create(0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
- }
-
- for (cnt = 0; cnt < nr_t; cnt++)
- pthread_join (pts[cnt], NULL);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_context_destroy (ctx[cnt]);
-
- return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/data.exp b/gdb/testsuite/gdb.cell/data.exp
deleted file mode 100644
index f5c0d20788..0000000000
--- a/gdb/testsuite/gdb.cell/data.exp
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tries to read variables of each kind both on PPU and SPU.
-
-load_lib cell.exp
-
-set testfile "data"
-set ppu_file "data"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "data-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-proc check_var { name value } {
- gdb_test "print $name" \
- ".*=.*$value" \
- "check_var $name = $value"
-}
-
-proc set_var { name value } {
- gdb_test "set var $name = $value" \
- "" \
- "set var $name = $value"
-}
-
-proc dotest { name value } {
- set_var $name $value
- check_var $name $value
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Set values.
-dotest var_char 'z'
-dotest var_short 8
-dotest var_int 321
-dotest var_long 523442
-dotest var_longlong 235354533
-xfail "dotest var_float 33.2113"
-xfail "dotest var_double 2.3456"
-xfail "dotest var_longdouble 3.456789"
-
-gdb_test "break 55" \
- "Breakpoint.*at.*file.*$testfile.c, line 55.*" \
- "set breakpoint"
-gdb_test "continue" \
- "Breakpoint.*at.*$testfile.c.*55.*" \
- "continue to bp at line 55"
-
-# Lookup variables.
-check_var var_char 'c'
-check_var var_short 7
-check_var var_int 1337
-check_var var_long 123456
-check_var var_longlong 123456789
-xfail "check_var var_float 1.23"
-xfail "check_var var_double 2.3456"
-xfail "check_var var_longdouble 3.456789"
-
-cont_spu_main
-c_to "Marker SPU End" $spu_file.c
-
-# In SPU Thread, arch should now be spu:256K.
-check_spu_arch ""
-
-# Lookup variables.
-check_var var_char 'c'
-check_var var_short 7
-check_var var_int 1337
-check_var var_long 123456
-check_var var_longlong 123456789
-xfail "check_var var_float 1.23"
-xfail "check_var var_double 2.3456"
-xfail "check_var var_longdouble 3.456789"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/dwarfaddr.S b/gdb/testsuite/gdb.cell/dwarfaddr.S
deleted file mode 100644
index 543da3d78d..0000000000
--- a/gdb/testsuite/gdb.cell/dwarfaddr.S
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright 2010-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- This file is part of the gdb testsuite.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
- Tests for SPU addresses resulting from complex DWARF expressions. */
-
- .text
-main:
-.Ltext_s:
-.LFB1:
- stqd $1,-240($1)
- ai $1,$1,-240
- ai $2,$1,32
- ai $2,$2,127
- il $3,127
- andc $3,$2,$3
- il $2,1
- lqd $4,0($3)
- cwd $5,0($3)
- shufb $2,$2,$4,$5
- stqd $2,0($3)
- lqd $1,0($1)
- bi $0
-.LFE1:
- .global main
- .type main,@function
- .size main,.LFE1-.LFB1
-.Ltext_e:
-
- .section .debug_info,"",@progbits
-.Ldebug_info_s:
- .int .debug_info_size-4
- .short 0x2
- .int .Ldebug_abbrev_s
- .byte 0x4
-.Ldie0:
- .uleb128 0x1
- .string "test.c"
- .int .Ltext_s
- .int .Ltext_e
- .byte 0x1
-.Ldie1:
- .uleb128 0x2
- .string "int"
- .byte 0x4
- .byte 0x5
-.Ldie2:
- .uleb128 0x3
- .int .Ldie4-.Ldebug_info_s
- .int .Ldie1-.Ldebug_info_s
-.Ldie3:
- .uleb128 0x4
- .byte 0
- .byte 0xf
- .uleb128 0
-.Ldie4:
- .uleb128 0x5
- .string "main"
- .int .LFB1
- .int .LFE1
- .byte 0x1
- .byte 0x1
- .byte 0x3
- .byte 0x1
- .byte 0x1
- .byte 0x51
-.Ldie5:
- .uleb128 0x6
- .byte 0xe
- .byte 0x91
- .sleb128 0x20
- .byte 0xd
- .int 0x7f
- .byte 0x22
- .byte 0xd
- .int 0xffffff80
- .byte 0x1a
- .string "x"
- .byte 0x1
- .byte 0
- .int .Ldie2-.Ldebug_info_s
- .uleb128 0
- .uleb128 0
-.Ldebug_info_e:
- .set .debug_info_size,.Ldebug_info_e-.Ldebug_info_s
-
-
- .section .debug_abbrev,"",@progbits
-.Ldebug_abbrev_s:
- .uleb128 0x1
- .uleb128 0x11
- .byte 0x1
- .uleb128 0x3
- .uleb128 0x8
- .uleb128 0x11
- .uleb128 0x1
- .uleb128 0x12
- .uleb128 0x1
- .uleb128 0x13
- .uleb128 0xb
- .uleb128 0
- .uleb128 0
-
- .uleb128 0x2
- .uleb128 0x24
- .byte 0
- .uleb128 0x3
- .uleb128 0x8
- .uleb128 0xb
- .uleb128 0xb
- .uleb128 0x3e
- .uleb128 0xb
- .uleb128 0
- .uleb128 0
-
- .uleb128 0x3
- .uleb128 0x1
- .byte 0x1
- .uleb128 0x1
- .uleb128 0x13
- .uleb128 0x49
- .uleb128 0x13
- .uleb128 0
- .uleb128 0
-
- .uleb128 0x4
- .uleb128 0x21
- .byte 0
- .uleb128 0x22
- .uleb128 0xb
- .uleb128 0x2f
- .uleb128 0xb
- .uleb128 0
- .uleb128 0
-
- .uleb128 0x5
- .uleb128 0x2e
- .byte 0x1
- .uleb128 0x3
- .uleb128 0x8
- .uleb128 0x11
- .uleb128 0x1
- .uleb128 0x12
- .uleb128 0x1
- .uleb128 0x27
- .uleb128 0xc
- .uleb128 0x3a
- .uleb128 0xb
- .uleb128 0x3b
- .uleb128 0xb
- .uleb128 0x3f
- .uleb128 0xc
- .uleb128 0x40
- .uleb128 0xa
- .uleb128 0
- .uleb128 0
-
- .uleb128 0x6
- .uleb128 0x34
- .byte 0
- .uleb128 0x2
- .uleb128 0xa
- .uleb128 0x3
- .uleb128 0x8
- .uleb128 0x3a
- .uleb128 0xb
- .uleb128 0x3b
- .uleb128 0xb
- .uleb128 0x49
- .uleb128 0x13
- .uleb128 0
- .uleb128 0
- .uleb128 0
-.Ldebug_abbrev_e:
- .set .debug_abbrev_size,.Ldebug_abbrev_e-.Ldebug_abbrev_s
-
diff --git a/gdb/testsuite/gdb.cell/dwarfaddr.exp b/gdb/testsuite/gdb.cell/dwarfaddr.exp
deleted file mode 100644
index b61cd53c2e..0000000000
--- a/gdb/testsuite/gdb.cell/dwarfaddr.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# This file is part of the gdb testsuite.
-#
-# Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-# Tests for SPU addresses resulting from complex DWARF expressions.
-
-load_lib cell.exp
-
-set testfile "dwarfaddr"
-set srcfile ${srcdir}/${subdir}/${testfile}.S
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $srcfile $binary executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-gdb_test "print x" " = \\{0 <repeats 16 times>\\}" "print x"
-gdb_test "print &x" " = \\(int \\(\\*\\)\\\[16\\\]\\) 0x\[0-9a-f\]*" "print &x"
-gdb_test "info address x" "Symbol \"x\" is a complex DWARF expression.*DW_OP_and\[\r\n\]+\." "info address x"
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/ea-cache-spu.c b/gdb/testsuite/gdb.cell/ea-cache-spu.c
deleted file mode 100644
index 07b11c18d3..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache-spu.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <spu_mfcio.h>
-
-__ea int *ppe_int_ptr;
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- printf ("spe.c | argp = 0x%llx\n", argp);
-
-#ifdef __EA32__
- ppe_int_ptr = (__ea int *)(unsigned long)argp;
-#else
- ppe_int_ptr = (__ea int *)argp;
-#endif
- printf ("spe.c | value = %d\n", *ppe_int_ptr);
- *ppe_int_ptr = 42; /* Marker SPUEA */
- printf ("spe.c | value = %d\n", *ppe_int_ptr);
-
- return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/ea-cache.c b/gdb/testsuite/gdb.cell/ea-cache.c
deleted file mode 100644
index a0a828b017..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t ea_cache_spu;
-int int_var = 23;
-
-void *
-spe_thread (void *arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &ea_cache_spu);
- spe_context_run (*ctx, &entry, flags, &int_var, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- spe_context_ptr_t ctx;
- pthread_t pts;
- int thread_id;
-
- printf ("ppe.c | int_var vor %d | adr int_var %p\n", int_var, &int_var);
-
- /* Create SPE context and pthread. */
- ctx = spe_context_create (0, NULL);
- thread_id = pthread_create (&pts, NULL, &spe_thread, &ctx);
-
- /* Join the pthread. */
- pthread_join (pts, NULL);
-
- /* Destroy the SPE context. */
- spe_context_destroy (ctx);
-
- printf ("ppe.c | int_var nach %d\n", int_var);
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/ea-cache.exp b/gdb/testsuite/gdb.cell/ea-cache.exp
deleted file mode 100644
index e9bb709155..0000000000
--- a/gdb/testsuite/gdb.cell/ea-cache.exp
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for ea software managed cache.
-
-load_lib cell.exp
-
-set ppu_file "ea-cache"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "ea-cache-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Set breakpoint in SPU binary.
-cont_spu_main
-c_to "Marker SPUEA" $spu_file.c
-
-gdb_test "p *ppe_int_ptr" \
- ".*=.*23.*" \
- "p *ppe_int_ptr"
-
-gdb_test "set *ppe_int_ptr=42" "" ""
-
-gdb_test "p *ppe_int_ptr" \
- ".*=.*42.*" \
- "p *ppe_int_ptr"
-
-# Now switch to thread 1 (PPU) and look at int_var. ppe_int_ptr points to
-# int_var and should now also contain 42 (ea cache has been flushed).
-gdb_test "t 1" \
- ".*Switching to thread 1.*" \
- "switch to thread 1"
-
-gdb_test "p int_var" \
- ".*=.*42.*" \
- "p int_var on ppu"
-
-gdb_exit
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/ea-standalone.c b/gdb/testsuite/gdb.cell/ea-standalone.c
deleted file mode 100644
index 20b9af3316..0000000000
--- a/gdb/testsuite/gdb.cell/ea-standalone.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <ea.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- int a;
- __ea int *myarray = malloc_ea (3 * sizeof (int));
-
- memset_ea (myarray, 0, 3 * sizeof (int));
- a = ++myarray[0]; /* Marker SPUEA1 */
- printf("a: %d, myarray[0]: %d\n", a, myarray[0]); /* Marker SPUEA2 */
- return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/ea-standalone.exp b/gdb/testsuite/gdb.cell/ea-standalone.exp
deleted file mode 100644
index cae8e98cdf..0000000000
--- a/gdb/testsuite/gdb.cell/ea-standalone.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for ea software managed cache in a standalone binary.
-
-load_lib cell.exp
-
-set testfile "ea-standalone"
-set srcfile ${srcdir}/${subdir}/${testfile}.c
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $srcfile $binary executable {debug}] != "" } {
- unsupported "failed to compile"
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-c_to "Marker SPUEA1" $testfile.c
-gdb_test "p myarray\[0\]" \
- ".*= 0" \
- "p myarray\[0\]"
-
-c_to "Marker SPUEA2" $testfile.c
-gdb_test "p myarray\[0\]" \
- ".*= 1" \
- "p myarray\[0\]"
-gdb_test "call __cache_flush()" "" "call cache_flush()"
-gdb_test "p myarray\[0\]" \
- ".*= 1" \
- "p myarray\[0\]"
-
-gdb_exit
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/ea-test.c b/gdb/testsuite/gdb.cell/ea-test.c
deleted file mode 100644
index efe49c5418..0000000000
--- a/gdb/testsuite/gdb.cell/ea-test.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-
-__ea int *ppe_pointer;
-int *normal_pointer;
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- static __ea int *local_ppe_pointer;
- static int *local_normal_pointer;
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/ea-test.exp b/gdb/testsuite/gdb.cell/ea-test.exp
deleted file mode 100644
index cbb02f120a..0000000000
--- a/gdb/testsuite/gdb.cell/ea-test.exp
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for __ea pointer
-
-load_lib cell.exp
-
-set testfile "ea-test"
-set source ${srcdir}/${subdir}/${testfile}.c
-set binary [standard_output_file ${testfile}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $source $binary executable {debug}] != "" } {
- unsupported "failed to compile"
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binary}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# p
-gdb_test "p ppe_pointer" \
- "(int.*@__ea).*0x0.*" \
- "p ppe_pointer"
-
-gdb_test "p normal_pointer" \
- "(int.*).*0x0.*" \
- "p normal_pointer"
-
-gdb_test "p local_ppe_pointer" \
- "(int.*@__ea).*0x0.*" \
- "p local_ppe_pointer"
-
-gdb_test "p local_normal_pointer" \
- "(int.*).*0x0.*" \
- "p local_normal_pointer"
-
-# ptype
-gdb_test "ptype ppe_pointer" \
- "type = int.*@__ea" \
- "ptype ppe_pointer"
-
-gdb_test "ptype normal_pointer" \
- "type = int.*" \
- "ptype normal_pointer"
-
-gdb_test "ptype local_ppe_pointer" \
- "type = int.*@__ea" \
- "ptype local_ppe_pointer"
-
-gdb_test "ptype local_normal_pointer" \
- "type = int.*" \
- "ptype local_normal_pointer"
-
-# info locals
-gdb_test "info locals" \
- ".*local_ppe_pointer =.*0x0.*local_normal_pointer =.*0x0.*" \
- "info locals"
-
-# p &
-gdb_test "p &ppe_pointer" \
- ".*=.*(int.*@__ea.*).*0x.*" \
- "p &ppe_pointer"
-
-gdb_test "p &normal_pointer" \
- ".*=.*(int.*).*0x.*" \
- "p &normal_pointer"
-
-gdb_test "p &local_ppe_pointer" \
- ".*=.*(int.*@__ea.*).*0x.*" \
- "p &local_ppe_pointer"
-
-gdb_test "p &local_normal_pointer" \
- ".*=.*(int.*).*0x.*" \
- "p &local_normal_pointer"
-
-# ptype *
-gdb_test "ptype *ppe_pointer" \
- "type = int" \
- "ptype *ppe_pointer"
-
-gdb_test "ptype *normal_pointer" \
- "type = int" \
- "ptype *normal_pointer"
-
-gdb_test "ptype *local_ppe_pointer" \
- "type = int" \
- "ptype *local_ppe_pointer"
-
-gdb_test "ptype *local_normal_pointer" \
- "type = int" \
- "ptype *local_normal_pointer"
-
-gdb_exit
-
-return 0
-
-
diff --git a/gdb/testsuite/gdb.cell/f-regs.exp b/gdb/testsuite/gdb.cell/f-regs.exp
deleted file mode 100644
index a37c77afe5..0000000000
--- a/gdb/testsuite/gdb.cell/f-regs.exp
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase tests access to SPU vector registers while language is fortran.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-proc check_vector_regs {} {
- for {set check_reg 0} {$check_reg < 128} {incr check_reg} {
-
- gdb_test "p \$r$check_reg" \
- "r$check_reg.*=.*\(.*\).*" \
- "p \$r$check_reg"
-
- gdb_test "ptype \$r$check_reg" \
- "type = Type,.*C_Union :: __spu_builtin_type_vec128.*int128_t :: uint128.*int64_t :: v2_int64.*int32_t :: v4_int32\(.*\).*int16_t :: v8_int16\(.*\).*int8_t :: v16_int8\(.*\).*double :: v2_double\(.*\).*float :: v4_float\(.*\).*End Type __spu_builtin_type_vec128.*" \
- "ptype \$r$check_reg"
- }
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no registers should be available.
-gdb_test "info all-registers" \
- "The program has no registers now." \
- "info all-registers"
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-cont_spu_main
-gdb_test "set language fortran" \
- "Warning: the current language does not match this frame.*" \
- "set language fortran"
-check_vector_regs
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/fork-spu.c b/gdb/testsuite/gdb.cell/fork-spu.c
deleted file mode 100644
index 7777165d97..0000000000
--- a/gdb/testsuite/gdb.cell/fork-spu.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2010-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com> */
-
-#include <spu_mfcio.h>
-
-int var;
-
-void
-func (void)
-{
-}
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- /* Signal to PPU side that it should fork now. */
- spu_write_out_intr_mbox (0);
-
- /* Wait until fork completed. */
- spu_read_in_mbox ();
-
- /* Trigger watchpoint. */
- var = 1;
-
- /* Now call some function to trigger breakpoint. */
- func ();
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/fork.c b/gdb/testsuite/gdb.cell/fork.c
deleted file mode 100644
index 240af47089..0000000000
--- a/gdb/testsuite/gdb.cell/fork.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2010-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Ulrich Weigand <uweigand@de.ibm.com> */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-extern spe_program_handle_t fork_spu;
-
-void *
-spe_thread (void * arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &fork_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- pthread_t pts;
- spe_context_ptr_t ctx;
- unsigned int value;
- unsigned int pid;
-
- ctx = spe_context_create (0, NULL);
- pthread_create (&pts, NULL, &spe_thread, &ctx);
-
- /* Wait until the SPU thread is running. */
- spe_out_intr_mbox_read (ctx, &value, 1, SPE_MBOX_ALL_BLOCKING);
-
- pid = fork ();
- if (pid == 0)
- {
- /* This is the child. Just exit immediately. */
- exit (0);
- }
- else
- {
- /* This is the parent. Wait for the child to exit. */
- waitpid (pid, NULL, 0);
- }
-
- /* Tell SPU to continue. */
- spe_in_mbox_write (ctx, &value, 1, SPE_MBOX_ALL_BLOCKING);
-
- pthread_join (pts, NULL);
- spe_context_destroy (ctx);
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/fork.exp b/gdb/testsuite/gdb.cell/fork.exp
deleted file mode 100644
index 009219180f..0000000000
--- a/gdb/testsuite/gdb.cell/fork.exp
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2010-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests support for PPU-side fork during SPU debugging
-
-load_lib cell.exp
-
-set testfile "fork"
-set ppu_file "fork"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "fork-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-delete_breakpoints
-
-gdb_test_no_output "set spu stop-on-load" "set spu stop-on-load"
-
-gdb_test "continue" "Continuing\\..*Temporary breakpoint \[0-9\]+, main \\(speid=.*, argp=.*, envp=.*\\) at .*$spu_file\\.c:.*spu_write_out_intr_mbox.*" \
- "run until SPU main"
-
-gdb_test "break func" "Breakpoint \[0-9\]+ at.* file .*$spu_file.c, line \[0-9\]+\\." "break func"
-gdb_test "watch var" "Watchpoint \[0-9\]+: var" "watch var"
-
-gdb_test "continue" "Continuing\\..*Watchpoint.*Old value = 0.*New value = 1.*" \
- "run until watchpoint hit"
-
-gdb_test_no_output "delete \$bpnum" "delete watchpoint"
-
-gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
- "run until breakpoint hit"
-
-gdb_continue_to_end "" continue 1
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/gcore.exp b/gdb/testsuite/gdb.cell/gcore.exp
deleted file mode 100644
index f586b7553a..0000000000
--- a/gdb/testsuite/gdb.cell/gcore.exp
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests mixed-architecture core file support
-
-load_lib cell.exp
-
-set testfile "coremaker"
-set ppu_file "coremaker"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "coremaker-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {![isnative]} then {
- return 0
-}
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-delete_breakpoints
-
-gdb_test "continue" ".*Aborted.*"
-
-if {![gdb_gcore_cmd "${objdir}/${subdir}/gcore.test" \
- "save a corefile"]} {
- return -1
-}
-
-# Now restart gdb and load the corefile.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-send_gdb "core-file $objdir/$subdir/gcore.test\n"
-gdb_expect {
- -re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
- pass "core-file command"
- }
- -re "Core was generated by .*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
- pass "core-file command (with bad program name)"
- }
- -re ".*$gdb_prompt $" { fail "core-file command" }
- timeout { fail "(timeout) core-file command" }
-}
-
-gdb_test "backtrace" ".*abort.*main.*at.*$ppu_file.c.*"
-
-for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
- gdb_test "t $thread_id" \
- "Switching to thread $thread_id.*" \
- "switch to thread $thread_id"
- gdb_test "backtrace" \
- ".*terminal_func.*factorial_func.*value=1.*factorial_func.*value=2.*factorial_func.*value=3.*factorial_func.*value=4.*factorial_func.*value=5.*factorial_func.*value=6.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*" \
- "backtrace in thread $thread_id"
-}
-
-gdb_exit
-
-return 0
diff --git a/gdb/testsuite/gdb.cell/mem-access-spu.c b/gdb/testsuite/gdb.cell/mem-access-spu.c
deleted file mode 100644
index 3baa3a2cc1..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access-spu.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- int i;
- static int test_var;
-
- printf ("Hello World! from spu\n");
-
- test_var = 5;
- i = 5; /* Marker SPUEA */
- printf ("i = %d\n", i);
-
- return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/mem-access.c b/gdb/testsuite/gdb.cell/mem-access.c
deleted file mode 100644
index 442e8a245d..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t mem_access_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &mem_access_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- int thread_id[nr_t];
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
- int value = 1;
- int cnt;
- static int test_var;
-
- test_var = 5;
- for (cnt = 0; cnt < nr_t; cnt++) /* Marker PPUEA */
- {
- ctx[cnt] = spe_context_create (0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
- }
-
- for (cnt = 0; cnt < nr_t; cnt++)
- pthread_join (pts[cnt], NULL);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_context_destroy (ctx[cnt]);
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/mem-access.exp b/gdb/testsuite/gdb.cell/mem-access.exp
deleted file mode 100644
index 86d22941ac..0000000000
--- a/gdb/testsuite/gdb.cell/mem-access.exp
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcases tests on PPU and SPU if variables and registers are accessible
-# via print and set by using names and adresses.
-
-load_lib cell.exp
-
-set ppu_file "mem-access"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "mem-access-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-# Get the adress to symbol name. If $reg
-# is set to 1, get address from a register.
-proc get_adress_from_name { name reg } {
- global gdb_prompt
- set adr ""
-
- if { $reg == 1 } {
- set q "x/x $name"
- } else {
- set q "x/x &$name"
- }
-
- gdb_test_multiple $q "get address from $name" {
- -re "(0x.....):.*$gdb_prompt $" { # Registers.
- set adr $expect_out(1,string)
- pass "get adress from $name = $adr"
- }
- -re "(0x........) <.*$gdb_prompt $" { # PPU address.
- set adr $expect_out(1,string)
- pass "get adress from $name = $adr"
- }
- -re "(0x....) <.*$gdb_prompt $" { # SPU address.
- set adr $expect_out(1,string)
- pass "get adress from $name = $adr"
- }
- -re "(0x...) <.*$gdb_prompt $" { # SPU address.
- set adr $expect_out(1,string)
- pass "get adress from $name = $adr"
- }
- }
-
- return ${adr}
-}
-
-# Try to set a $value at adress $adr.
-proc set_adr_content { adr value } {
- gdb_test "set *$adr=$value" \
- "" \
- "set *$adr=$value"
-}
-
-# Try to set a $value for $symbol.
-proc set_symbol_content { symbol value } {
- gdb_test "set $symbol=$value" \
- "" \
- "set *$symbol=$value"
-}
-
-# Check if $value is at *adr
-proc test_adr_content { adr value } {
- gdb_test "p *$adr" \
- ".*=.*$value.*" \
- "(ptr) *$adr==$value"
-}
-
-proc test_symbol_content { symbol value } {
- gdb_test "p $symbol" \
- ".*=.*$value.*" \
- "(symbol) $symbol==$value"
-}
-
-# Check VARNAME. Check if it has the inital
-# value INITIALVALUE. Set it to NEWVALUE.
-# Check if set properly. Do it via symbols and
-# pointers.
-proc check_var { varname initalvalue newvalue } {
-
- # Initial value should be $initalvalue.
- test_symbol_content $varname $initalvalue
-
- # Get pointer to symbol and check if the
- # initial value is found.
- set adr [get_adress_from_name $varname 0]
- test_adr_content $adr $initalvalue
-
- # Re-set value using the pointer.
- set_adr_content $adr $newvalue
-
- # Test values by pointer and by symbol.
- test_adr_content $adr $newvalue
- test_symbol_content $varname $newvalue
-
- # Set value back to initalvalue using symbol
- # name and check it.
- set_symbol_content $varname $initalvalue
- test_adr_content $adr $initalvalue
- test_symbol_content $varname $initalvalue
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Check in PPU thread.
-c_to "Marker PPUEA" $ppu_file.c
-check_var "test_var" 5 7
-
-# Go to SPU thread.
-cont_spu_main
-c_to "Marker SPUEA" $spu_file.c
-check_spu_arch ""
-
-# Check in SPU thread.
-check_var "test_var" 5 7
-# Check $sp register.
-set adr [get_adress_from_name "\$sp" 1]
-set_adr_content $adr 8
-test_adr_content $adr 8
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/ptype.exp b/gdb/testsuite/gdb.cell/ptype.exp
deleted file mode 100644
index 39311e78d9..0000000000
--- a/gdb/testsuite/gdb.cell/ptype.exp
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Test ptype and print/set of SPU-side registers.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Continue to SPU
-cont_spu_main
-
-gdb_test "info registers r2" \
- "r2.*\{uint128 =.*v2_int64 =.*v4_int32 =.*v8_int16 =.*v16_int8 =.*v2_double =.*v4_float =.*\}.*" \
- "info registers r2"
-
-for {set check_reg 10} {$check_reg < 12} {incr check_reg} {
- gdb_test "print \$r$check_reg\.v4_int32" \
- ".*= \{.*,.*,.*,.*\}" \
- "print \$r$check_reg\.v4_int32"
-
- gdb_test "ptype \$r$check_reg" \
- "type = union __spu_builtin_type_vec128.*\{.*int128_t uint128.* \
- int64_t v2_int64.*int32_t v4_int32.*int16_t v8_int16.* \
- int8_t v16_int8.*double v2_double.*float v4_float.*\}" \
- "ptype \$r$check_reg"
-
- gdb_test "set \$r$check_reg\.v4_int32 = {1,2,3,4}" \
- "" \
- "set \$r$check_reg\.v4_int32 = {1,2,3,4}"
-
- gdb_test "print \$r$check_reg\.v4_int32" \
- ".*= \{.*1, 2, 3, 4.*\}" \
- "print \$r$check_reg\.v4_int32"
-
- gdb_test "print \$r$check_reg.v4_int32\[0\]" \
- ".*= 1.*" \
- "print \$r$check_reg.v4_int32\[0\]"
-
- gdb_test "print \$r$check_reg.v4_int32\[1\]" \
- ".*= 2.*" \
- "print \$r$check_reg.v4_int32\[1\]"
-
- gdb_test "print \$r$check_reg.v4_int32\[2\]" \
- ".*= 3.*" \
- "print \$r$check_reg.v4_int32\[2\]"
-
- gdb_test "print \$r$check_reg.v4_int32\[3\]" \
- ".*= 4.*" \
- "print \$r$check_reg.v4_int32\[3\]"
-
- gdb_test "print \$r$check_reg.v4_int32\[4\]" \
- "no such vector element" \
- "print \$r$check_reg.v4_int32\[4\]"
-
- # Set single array elements to other values and check the results.
- gdb_test "set \$r$check_reg\.v4_int32\[0\] = 5" \
- "" \
- "set \$r$check_reg\.v4_int32\[0\] = 5"
- gdb_test "print \$r$check_reg.v4_int32\[0\]" \
- ".*= 5.*" \
- "print \$r$check_reg.v4_int32\[0\]"
-
- gdb_test "set \$r$check_reg\.v4_int32\[1\] = 6" \
- "" \
- "set \$r$check_reg\.v4_int32\[1\] = 6"
- gdb_test "print \$r$check_reg.v4_int32\[1\]" \
- ".*= 6.*" \
- "print \$r$check_reg.v4_int32\[1\]"
-
- gdb_test "set \$r$check_reg\.v4_int32\[2\] = 7" \
- "" \
- "set \$r$check_reg\.v4_int32\[2\] = 7"
- gdb_test "print \$r$check_reg.v4_int32\[2\]" \
- ".*= 7.*" \
- "print \$r$check_reg.v4_int32\[2\]"
-
- gdb_test "set \$r$check_reg\.v4_int32\[3\] = 8" \
- "" \
- "set \$r$check_reg\.v4_int32\[3\] = 8"
- gdb_test "print \$r$check_reg.v4_int32\[3\]" \
- ".*= 8.*" \
- "print \$r$check_reg.v4_int32\[3\]"
-
- # Now there should be {5, 6, 7, 8} in that array.
- gdb_test "print \$r$check_reg\.v4_int32" \
- ".*= \{.*5, 6, 7, 8.*\}" \
- "print \$r$check_reg\.v4_int32"
-}
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/registers.exp b/gdb/testsuite/gdb.cell/registers.exp
deleted file mode 100644
index c4d271098b..0000000000
--- a/gdb/testsuite/gdb.cell/registers.exp
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase tests registers on PPU and SPU.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no registers should be available.
-gdb_test "info all-registers" \
- "The program has no registers now." \
- "info all-registers"
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Check registers in PPU thread.
-gdb_test "info reg r0" "r0.*" "info register r0"
-gdb_test "info reg r31" "r31.*" "info register r31"
-gdb_test "info reg r32" "Invalid register.*r32.*" "(invalid) info register r32"
-gdb_test "info reg pc" "pc.*" "info register pc"
-gdb_test "info reg cr" "cr.*" "info register cr"
-gdb_test "info reg lr" "lr.*" "info register lr"
-gdb_test "info reg ctr" "ctr.*" "info register ctr"
-gdb_test "info reg xer" "xer.*" "info register xer"
-
-# Continue to SPU thread.
-cont_spu_main
-
-# In SPU thread, check SPU registers.
-for {set check_reg 0} {$check_reg < 128} {incr check_reg} {
- gdb_test "info reg r$check_reg" \
- "r$check_reg.*uint128.*=.*v2\_int64.*v4\_int32.*v8\_int16.*v16\_int8.*v2\_double.*v4\_float.*" \
- "info register r$check_reg"
-}
-gdb_test "info reg r128" \
- "Invalid register.*r128.*" \
- "(invalid) info register r128"
-
-gdb_test "info reg pc" "pc.*main.*" "info register pc"
-gdb_test "info reg id" "id.*" "info register id"
-gdb_test "info reg sp" "sp.*" "info register sp"
-gdb_test "info reg fpscr" "fpscr.*" "info register fpscr"
-gdb_test "info reg srr0" "srr0.*" "info register srr0"
-gdb_test "info reg lslr" "lslr.*" "info register lslr"
-gdb_test "info reg decr" "decr.*" "info register decr"
-gdb_test "info reg decr_status" "decr_status.*" "info register decr-status"
-
-gdb_test "info reg cr" "Invalid register.*cr.*" "info register cr"
-gdb_test "info reg lr" "Invalid register.*lr.*" "info register lr"
-gdb_test "info reg ctr" "Invalid register.*ctr.*" "info register ctr"
-gdb_test "info reg xer" "Invalid register.*xer.*" "info register xer"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/size-spu.c b/gdb/testsuite/gdb.cell/size-spu.c
deleted file mode 100644
index 4d8b8815e8..0000000000
--- a/gdb/testsuite/gdb.cell/size-spu.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-
-
-int
-main (unsigned long long speid, unsigned long long argp,
- unsigned long long envp)
-{
- int c = sizeof (char); /* Break here. */
- printf ("sizeof(char)=%d\n", c);
-
- int s = sizeof (short);
- printf ("sizeof(short)=%d\n", s);
-
- int i = sizeof (int);
- printf ("sizeof(int)=%d\n", i);
-
- int l = sizeof (long);
- printf ("sizeof(long)=%d\n", l);
-
- int ll = sizeof (long long);
- printf ("sizeof(long long)=%d\n", ll);
-
- int f = sizeof (float);
- printf ("sizeof(float)=%d\n", f);
-
- int d = sizeof (double);
- printf ("sizeof(double)=%d\n", d);
-
- int ld = sizeof (long double);
- printf ("sizeof(long double)=%d\n", ld);
-
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.cell/size.c b/gdb/testsuite/gdb.cell/size.c
deleted file mode 100644
index be9c8d33b2..0000000000
--- a/gdb/testsuite/gdb.cell/size.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* This testcase is part of GDB, the GNU debugger.
-
- Copyright 2009-2019 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Contributed by Markus Deuling <deuling@de.ibm.com> */
-
-#include <stdio.h>
-#include <libspe2.h>
-#include <pthread.h>
-#include <sys/wait.h>
-
-extern spe_program_handle_t size_spu;
-#define nr_t 1
-
-void *
-spe_thread (void *arg)
-{
- int flags = 0;
- unsigned int entry = SPE_DEFAULT_ENTRY;
- spe_context_ptr_t *ctx = (spe_context_ptr_t *) arg;
-
- spe_program_load (*ctx, &size_spu);
- spe_context_run (*ctx, &entry, flags, NULL, NULL, NULL);
-
- pthread_exit (NULL);
-}
-
-int
-main (void)
-{
- int thread_id[nr_t];
- pthread_t pts[nr_t];
- spe_context_ptr_t ctx[nr_t];
- int cnt;
-
- int c = sizeof (char);
- printf ("sizeof(char)=%d\n", c);
-
- int s = sizeof (short);
- printf ("sizeof(short)=%d\n", s);
-
- int i = sizeof (int);
- printf ("sizeof(int)=%d\n", i);
-
- int l = sizeof (long);
- printf ("sizeof(long)=%d\n", l);
-
- int ll = sizeof (long long);
- printf ("sizeof(long long)=%d\n", ll);
-
- int f = sizeof (float);
- printf ("sizeof(float)=%d\n", f);
-
- int d = sizeof (double);
- printf ("sizeof(double)=%d\n", d);
-
- int ld = sizeof (long double);
- printf ("sizeof(long double)=%d\n", ld);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- {
- ctx[cnt] = spe_context_create (0, NULL);
- thread_id[cnt]
- = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
- }
-
- for (cnt = 0; cnt < nr_t; cnt++)
- pthread_join (pts[cnt], NULL);
-
- for (cnt = 0; cnt < nr_t; cnt++)
- spe_context_destroy (ctx[cnt]);
-
- return 0;
-}
diff --git a/gdb/testsuite/gdb.cell/sizeof.exp b/gdb/testsuite/gdb.cell/sizeof.exp
deleted file mode 100644
index 8ea69e67fa..0000000000
--- a/gdb/testsuite/gdb.cell/sizeof.exp
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Check size of data types both on PPU and SPU.
-
-load_lib cell.exp
-
-set ppu_file "size"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "size-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-
-# Ask GDB about the sizes of data types. This has
-# to be done in PPU thread and SPU thread.
-proc get_gdb_size { type } {
- global gdb_prompt
-
- set val "0"
- gdb_test_multiple "print/d sizeof(${type})" "get sizeof(${type})" {
- -re "\\$\[0-9\]* = (\[-\]*\[0-9\]*).*$gdb_prompt $" {
- set val $expect_out(1,string)
- pass "get sizeof ($type) = $val"
- }
- }
- return ${val}
-}
-
-# Compare sizes from GDB and sizeof().
-proc size_compare { type gdb_size } {
- set expr [string_to_regexp "sizeof(${type})=${gdb_size}"]
- gdb_test "next" \
- ".*" \
- "next"
- # Checks against string_to_regexp fails in remote testing.
- if ![is_remote target] {
- gdb_test "next" \
- "${expr}.*" \
- "check sizeof \"$type\" \"$gdb_size\" "
- } else {
- gdb_test "next" ".*" "check sizeof deactivate in remote testing"
- }
-}
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Compare sizes.
-size_compare "char" [get_gdb_size "char"]
-size_compare "short" [get_gdb_size "short"]
-size_compare "int" [get_gdb_size "int"]
-size_compare "long" [get_gdb_size "long"]
-size_compare "long long" [get_gdb_size "long long"]
-size_compare "float" [get_gdb_size "float"]
-size_compare "double" [get_gdb_size "double"]
-size_compare "long double" [get_gdb_size "long double"]
-
-# Continue to SPU thread.
-cont_spu_main
-check_spu_arch ""
-
-# Compare sizes in SPU thread.
-size_compare "char" [get_gdb_size "char"]
-size_compare "short" [get_gdb_size "short"]
-size_compare "int" [get_gdb_size "int"]
-size_compare "long" [get_gdb_size "long"]
-size_compare "long long" [get_gdb_size "long long"]
-size_compare "float" [get_gdb_size "float"]
-size_compare "double" [get_gdb_size "double"]
-size_compare "long double" [get_gdb_size "long double"]
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/solib-symbol.exp b/gdb/testsuite/gdb.cell/solib-symbol.exp
deleted file mode 100644
index 685ccf5c14..0000000000
--- a/gdb/testsuite/gdb.cell/solib-symbol.exp
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# Testcase for multiple symbol disambiguation patch.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Symbol resolved in PPU thread.
-gdb_test "info symbol foo" \
- "foo in section \.text of .*$ppu_file\[\r\n\]+.*" \
- "info symbol foo in break"
-
-# Continue to SPU
-cont_spu_main
-check_spu_arch ""
-
-# Symbol resolved in SPU thread.
-gdb_test "info symbol foo" \
- "foo in section \.text of .*$spu_file@.*" \
- "info symbol foo in break-spu"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cell/solib.exp b/gdb/testsuite/gdb.cell/solib.exp
deleted file mode 100644
index d6ed65daf2..0000000000
--- a/gdb/testsuite/gdb.cell/solib.exp
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Testsuite for Cell Broadband Engine combined debugger
-# This testcase checks 'info sharedlibrary ' command.
-
-load_lib cell.exp
-
-set ppu_file "break"
-set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin [standard_output_file ${ppu_file}]
-set spu_file "break-spu"
-set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin [standard_output_file ${spu_file}]
-
-if {[skip_cell_tests]} {
- return 0
-}
-
-# Compile SPU binary.
-if { [gdb_compile_cell_spu $spu_src $spu_bin executable {debug}] != "" } {
- unsupported "compiling spu binary failed."
- return -1
-}
-# Compile PPU binary.
-if { [gdb_cell_embedspu $spu_bin $spu_bin-embed.o {debug}] != "" } {
- unsupported "embedding spu binary failed."
- return -1
-}
-if { [gdb_compile_cell_ppu [list $ppu_src $spu_bin-embed.o] $ppu_bin executable {debug}] != "" } {
- unsupported "compiling ppu binary failed."
- return -1
-}
-
-if [get_compiler_info] {
- return -1
-}
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${ppu_bin}
-
-# No programm running, no libraries should be loaded.
-gdb_test "info sharedlibrary" \
- "No shared libraries loaded at this time." \
- "no shared library is loaded"
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-# Standing in PPU thread, now some libs should be loaded
-# including libspe library.
-gdb_test "info sharedlibrary" \
- "From.*To.*Syms Read.*Shared Object Library.*libspe.*" \
- "binary started, some libraries loaded"
-
-# Continue to SPU
-cont_spu_main
-check_spu_arch ""
-
-# In SPU thread now, the SPU binary should now appear in the list
-# of shared libraries.
-gdb_test "info sharedlibrary" \
- "From.*To.*Syms Read.*Shared Object Library.*libspe.*$spu_bin.*@.*x.*" \
- "spu thread, spu binary as shared library"
-
-gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.cp/bs15503.exp b/gdb/testsuite/gdb.cp/bs15503.exp
index 920b02a84a..f238f5188a 100644
--- a/gdb/testsuite/gdb.cp/bs15503.exp
+++ b/gdb/testsuite/gdb.cp/bs15503.exp
@@ -19,11 +19,6 @@
if { [skip_stl_tests] } { continue }
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
if [get_compiler_info] {
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp b/gdb/testsuite/gdb.cp/cpexprs.exp
index ecf3a2fbc8..d7decaf542 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp
@@ -681,11 +681,6 @@ add {policyd5::function} \
# Start the test
if {[skip_cplus_tests]} { continue }
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
#
# test running programs
#
diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp
index 0be382ba98..13631df129 100644
--- a/gdb/testsuite/gdb.cp/exception.exp
+++ b/gdb/testsuite/gdb.cp/exception.exp
@@ -35,11 +35,6 @@ set nl "\[\r\n\]+"
if { [skip_stl_tests] } { continue }
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.cp/gdb2495.exp b/gdb/testsuite/gdb.cp/gdb2495.exp
index bcb6c5eb6d..a7de2ccbc2 100644
--- a/gdb/testsuite/gdb.cp/gdb2495.exp
+++ b/gdb/testsuite/gdb.cp/gdb2495.exp
@@ -38,11 +38,6 @@ if [target_info exists gdb,nosignals] {
continue
}
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
# Create and source the file that provides information about the compiler
diff --git a/gdb/testsuite/gdb.cp/mb-templates.exp b/gdb/testsuite/gdb.cp/mb-templates.exp
index ad42ef6e39..5946c0b25c 100644
--- a/gdb/testsuite/gdb.cp/mb-templates.exp
+++ b/gdb/testsuite/gdb.cp/mb-templates.exp
@@ -18,11 +18,6 @@
if { [skip_stl_tests] } { continue }
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
diff --git a/gdb/testsuite/gdb.cp/pr9167.exp b/gdb/testsuite/gdb.cp/pr9167.exp
index e8a7722cb4..214225233a 100644
--- a/gdb/testsuite/gdb.cp/pr9167.exp
+++ b/gdb/testsuite/gdb.cp/pr9167.exp
@@ -13,11 +13,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.cp/userdef.exp b/gdb/testsuite/gdb.cp/userdef.exp
index dad9be36ad..7907593ec3 100644
--- a/gdb/testsuite/gdb.cp/userdef.exp
+++ b/gdb/testsuite/gdb.cp/userdef.exp
@@ -21,11 +21,6 @@
if { [skip_stl_tests] } { continue }
-# On SPU this test fails because the executable exceeds local storage size.
-if { [istarget "spu*-*-*"] } {
- return 0
-}
-
standard_testfile .cc
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp
index 35fcc0005d..efd2227dd5 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -69,16 +69,6 @@ switch -glob -- [istarget] {
set regdir "sparc/"
set core-regs {sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml}
}
- "spu*-*-*" {
- # This may be either the spu-linux-nat target, or the Cell/B.E.
- # multi-architecture debugger in SPU standalone executable mode.
- # We do not support XML register sets on SPU in either case.
- # However, the multi-arch debugger will accept XML registers sets
- # (on the PowerPC side), hence the test below would fail.
- # Simply return unconditionally here.
- unsupported "register tests"
- return 0
- }
"tic6x-*-*" {
set core-regs {tic6x-core.xml}
}
diff --git a/gdb/testsuite/lib/cell.exp b/gdb/testsuite/lib/cell.exp
deleted file mode 100644
index 4a32805ead..0000000000
--- a/gdb/testsuite/lib/cell.exp
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright 2009-2019 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# Contributed by Markus Deuling <deuling@de.ibm.com>.
-#
-# Support library for testing the combined debugger for Linux
-# on the Cell Broadband Engine.
-
-# Compile SPU objects.
-proc gdb_compile_cell_spu {source dest type options} {
- global board
-
- # Save and unset multilib flags; these are not appropriate
- # for the SPU compiler.
- set board [target_info name]
- set save_multilib_flag [board_info $board multilib_flags]
- unset_board_info "multilib_flags"
-
- set options_spu [concat $options [list compiler=spu-gcc]]
- set ccout [gdb_compile $source $dest $type $options_spu]
-
- set_board_info multilib_flags $save_multilib_flag
- return $ccout
-}
-
-# Compile PPU objects. This is just like gdb_compile_pthreads, except that we
-# always add the libspe2 library for compiling Cell/B.E. programs.
-proc gdb_compile_cell_ppu {source dest type options} {
- # We do not need to try multiple names for the pthread library
- # -lpthread works on all Cell/B.E. systems
- set lib "-lspe2 -lpthread"
- set options_ppu [concat $options [list libs=$lib]]
- return [gdb_compile $source $dest $type $options_ppu]
-}
-
-# Embed SPU executable into a PPU object.
-proc gdb_cell_embedspu {source dest options} {
- global CC_FOR_TARGET
-
- if [info exists CC_FOR_TARGET] {
- set compiler $CC_FOR_TARGET
- } else {
- set compiler [board_info [target_info name] compiler]
- }
-
- # We assume the PPU compiler is called gcc or ppu-gcc,
- # and find the appropriate embedspu based on that.
- regsub gcc "$compiler" embedspu embedspu
-
- # Determine default embedded symbol name from source filename.
- set path [split "$source" /]
- set filename [lindex $path [expr [llength $path] - 1]]
- regsub -all -- "\[-\.\]" "$filename" "_" symbol
-
- set options_embed [concat $options [list compiler=$embedspu]]
- return [gdb_compile "$symbol $source $dest" "" none $options_embed]
-}
-
-# Run a test on the target to see if it supports Cell/B.E. hardware.
-# Return 0 if so, 1 if it does not.
-gdb_caching_proc skip_cell_tests {
- global srcdir subdir gdb_prompt inferior_exited_re
-
- set me "skip_cell_tests"
-
- # Set up, compile, and execute a combined Cell/B.E. test program.
- # Include the current process ID in the file names to prevent conflicts
- # with invocations for multiple testsuites.
- set src [standard_temp_file cell[pid].c]
- set exe [standard_temp_file cell[pid].x]
- set src_spu [standard_temp_file cell[pid]-spu.c]
- set exe_spu [standard_temp_file cell[pid]-spu.x]
-
- set f [open $src "w"]
- puts $f "#include <libspe2.h>"
- puts $f "extern spe_program_handle_t cell[pid]_spu_x;"
- puts $f "int main (void) {"
- puts $f "unsigned int entry = SPE_DEFAULT_ENTRY;"
- puts $f "spe_context_ptr_t ctx = spe_context_create (0, NULL);"
- puts $f "spe_program_load (ctx, &cell[pid]_spu_x);"
- puts $f "return spe_context_run (ctx, &entry, 0, NULL, NULL, NULL); }"
- close $f
-
- set f [open $src_spu "w"]
- puts $f "int main (void) { return 0; }"
- close $f
-
- verbose "$me: compiling testfile $src" 2
- set compile_flags {debug nowarnings quiet}
-
- set skip 0
- if { [gdb_compile_cell_spu $src_spu $exe_spu executable $compile_flags] != "" } {
- verbose "$me: compiling spu binary failed, returning 1" 2
- set skip 1
- }
- if { ! $skip && [gdb_cell_embedspu $exe_spu $exe_spu-embed.o $compile_flags] != "" } {
- verbose "$me: embedding spu binary failed, returning 1" 2
- set skip 1
- }
- if { ! $skip && [gdb_compile_cell_ppu [list $src $exe_spu-embed.o] $exe executable $compile_flags] != "" } {
- verbose "$me: compiling ppu binary failed, returning 1" 2
- set skip 1
- }
- file delete $src
- file delete $src_spu
- file delete $exe_spu
- file delete $exe_spu-embed.o
-
- if { $skip } {
- return 1
- }
-
- # Compilation succeeded so now run it via gdb.
-
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load "$exe"
- gdb_run_cmd
- gdb_expect {
- -re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
- verbose -log "\n$me: Cell/B.E. hardware detected"
- set result 0
- }
- -re ".*$inferior_exited_re with code.*${gdb_prompt} $" {
- verbose -log "\n$me: Cell/B.E. hardware not detected"
- set result 1
- }
- default {
- unresolved "$me: unexpected failure"
- set result 1
- }
- }
- gdb_exit
- remote_file build delete $exe
-
- verbose "$me: returning $result" 2
- return $result
-}
-
-# Delete all breakpoints and stop on the next new SPU thread
-proc cont_spu_main { } {
- delete_breakpoints
- gdb_test "set spu stop-on-load on"
- gdb_test "continue" \
- "Continuing.*Temporary breakpoint .*main .*" \
- "continue to SPU main"
-}
-
-# Continue to MARKER
-proc c_to { marker srcfile } {
- set line [gdb_get_line_number $marker $srcfile]
- gdb_test "break $line" \
- "Breakpoint.*at.*file.*$srcfile.*line $line.*" \
- "break $line"
- gdb_test "continue" \
- "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \
- "continue to $line"
-}
-
-# Check if the current thread has SPU architecture
-proc check_spu_arch { msg } {
- if { $msg == "" } {
- set msg "spu architecture is spu256K"
- }
- gdb_test "show architecture" \
- "The target architecture is set automatically.*currently spu:256K.*" \
- $msg
-}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] RISC-V: Optimize lui and auipc relaxations for undefweak symbol.
@ 2019-09-21 1:31 gdb-buildbot
2019-09-21 1:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 1:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d1da81b261a20050ef2ad01a5b4c8cf78404222 ***
commit 9d1da81b261a20050ef2ad01a5b4c8cf78404222
Author: Jim Wilson <jimw@sifive.com>
AuthorDate: Fri Sep 20 15:01:20 2019 -0700
Commit: Jim Wilson <jimw@sifive.com>
CommitDate: Fri Sep 20 15:01:20 2019 -0700
RISC-V: Optimize lui and auipc relaxations for undefweak symbol.
For the lui and auipc relaxations, since the symbol value of an undefined weak
symbol is always be zero, we can optimize the patterns into a single LI/MV/ADDI
instruction.
bfd/
* elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
(riscv_record_pcgp_hi_reloc): New parameter undefined_weak.
Set undefined_weak field from it.
(relax_func_t): New parameter undefined_weak.
(_bfd_riscv_relax_call): New ignored parameter undefined_weak.
(_bfd_riscv_relax_tls_le): Likewise.
(_bfd_riscv_relax_align): Likewise.
(_bfd_riscv_relax_delete): Likewise.
(_bfd_riscv_relax_lui): New parameter undefined_weak. If true,
allow relaxing. For LO12* relocs, set rs1 to x0 when undefined_weak.
(_bfd_riscv_relax_pc): New parameter undefined_weak. For LO12* relocs,
set undefined_weak from hi_reloc. If true, allow relaxing. For LO12*
relocs, set rs1 to x0 when undefined_weak and change to non-pcrel
reloc.
(_bfd_riscv_relax_section): New local undefined_weak. Set for
undef weak relocs that can be relaxed. Pass to relax_func call.
ld/
* testsuite/ld-riscv-elf/weakref32.s: Add relaxable undef weak code.
* testsuite/ld-riscv-elf/weakref64.s: Likewise.
* testsuite/ld-riscv-elf/weakref32.d: Updated.
* testsuite/ld-riscv-elf/weakref64.d: Updated.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 080c628fee..b1a4aebd21 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,22 @@
+2019-09-20 Nelson Chu <nelson.chu@sifive.com>
+
+ * elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
+ (riscv_record_pcgp_hi_reloc): New parameter undefined_weak.
+ Set undefined_weak field from it.
+ (relax_func_t): New parameter undefined_weak.
+ (_bfd_riscv_relax_call): New ignored parameter undefined_weak.
+ (_bfd_riscv_relax_tls_le): Likewise.
+ (_bfd_riscv_relax_align): Likewise.
+ (_bfd_riscv_relax_delete): Likewise.
+ (_bfd_riscv_relax_lui): New parameter undefined_weak. If true,
+ allow relaxing. For LO12* relocs, set rs1 to x0 when undefined_weak.
+ (_bfd_riscv_relax_pc): New parameter undefined_weak. For LO12* relocs,
+ set undefined_weak from hi_reloc. If true, allow relaxing. For LO12*
+ relocs, set rs1 to x0 when undefined_weak and change to non-pcrel
+ reloc.
+ (_bfd_riscv_relax_section): New local undefined_weak. Set for
+ undef weak relocs that can be relaxed. Pass to relax_func call.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_section_name, bfd_section_size, bfd_section_vma),
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index ccf904af1b..4ffe6a36e6 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -3319,6 +3319,7 @@ struct riscv_pcgp_hi_reloc
bfd_vma hi_addr;
unsigned hi_sym;
asection *sym_sec;
+ bfd_boolean undefined_weak;
riscv_pcgp_hi_reloc *next;
};
@@ -3377,7 +3378,8 @@ riscv_free_pcgp_relocs (riscv_pcgp_relocs *p,
static bfd_boolean
riscv_record_pcgp_hi_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off,
bfd_vma hi_addend, bfd_vma hi_addr,
- unsigned hi_sym, asection *sym_sec)
+ unsigned hi_sym, asection *sym_sec,
+ bfd_boolean undefined_weak)
{
riscv_pcgp_hi_reloc *new = bfd_malloc (sizeof(*new));
if (!new)
@@ -3387,6 +3389,7 @@ riscv_record_pcgp_hi_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off,
new->hi_addr = hi_addr;
new->hi_sym = hi_sym;
new->sym_sec = sym_sec;
+ new->undefined_weak = undefined_weak;
new->next = p->hi;
p->hi = new;
return TRUE;
@@ -3439,7 +3442,8 @@ typedef bfd_boolean (*relax_func_t) (bfd *, asection *, asection *,
struct bfd_link_info *,
Elf_Internal_Rela *,
bfd_vma, bfd_vma, bfd_vma, bfd_boolean *,
- riscv_pcgp_relocs *);
+ riscv_pcgp_relocs *,
+ bfd_boolean undefined_weak);
/* Relax AUIPC + JALR into JAL. */
@@ -3451,7 +3455,8 @@ _bfd_riscv_relax_call (bfd *abfd, asection *sec, asection *sym_sec,
bfd_vma max_alignment,
bfd_vma reserve_size ATTRIBUTE_UNUSED,
bfd_boolean *again,
- riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+ riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+ bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
{
bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
bfd_signed_vma foff = symval - (sec_addr (sec) + rel->r_offset);
@@ -3539,7 +3544,8 @@ _bfd_riscv_relax_lui (bfd *abfd,
bfd_vma max_alignment,
bfd_vma reserve_size,
bfd_boolean *again,
- riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+ riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+ bfd_boolean undefined_weak)
{
bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
bfd_vma gp = riscv_global_pointer_value (link_info);
@@ -3561,21 +3567,38 @@ _bfd_riscv_relax_lui (bfd *abfd,
/* Is the reference in range of x0 or gp?
Valid gp range conservatively because of alignment issue. */
- if (VALID_ITYPE_IMM (symval)
- || (symval >= gp
- && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
- || (symval < gp
- && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size)))
+ if (undefined_weak
+ || (VALID_ITYPE_IMM (symval)
+ || (symval >= gp
+ && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
+ || (symval < gp
+ && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size))))
{
unsigned sym = ELFNN_R_SYM (rel->r_info);
switch (ELFNN_R_TYPE (rel->r_info))
{
case R_RISCV_LO12_I:
- rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
+ if (undefined_weak)
+ {
+ /* Change the RS1 to zero. */
+ bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+ insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+ bfd_put_32 (abfd, insn, contents + rel->r_offset);
+ }
+ else
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
return TRUE;
case R_RISCV_LO12_S:
- rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
+ if (undefined_weak)
+ {
+ /* Change the RS1 to zero. */
+ bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+ insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+ bfd_put_32 (abfd, insn, contents + rel->r_offset);
+ }
+ else
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
return TRUE;
case R_RISCV_HI20:
@@ -3634,7 +3657,8 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
bfd_vma max_alignment ATTRIBUTE_UNUSED,
bfd_vma reserve_size ATTRIBUTE_UNUSED,
bfd_boolean *again,
- riscv_pcgp_relocs *prcel_relocs ATTRIBUTE_UNUSED)
+ riscv_pcgp_relocs *prcel_relocs ATTRIBUTE_UNUSED,
+ bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
{
/* See if this symbol is in range of tp. */
if (RISCV_CONST_HIGH_PART (tpoff (link_info, symval)) != 0)
@@ -3674,7 +3698,8 @@ _bfd_riscv_relax_align (bfd *abfd, asection *sec,
bfd_vma max_alignment ATTRIBUTE_UNUSED,
bfd_vma reserve_size ATTRIBUTE_UNUSED,
bfd_boolean *again ATTRIBUTE_UNUSED,
- riscv_pcgp_relocs *pcrel_relocs ATTRIBUTE_UNUSED)
+ riscv_pcgp_relocs *pcrel_relocs ATTRIBUTE_UNUSED,
+ bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
{
bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
bfd_vma alignment = 1, pos;
@@ -3732,8 +3757,10 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED,
bfd_vma max_alignment,
bfd_vma reserve_size,
bfd_boolean *again ATTRIBUTE_UNUSED,
- riscv_pcgp_relocs *pcgp_relocs)
+ riscv_pcgp_relocs *pcgp_relocs,
+ bfd_boolean undefined_weak)
{
+ bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
bfd_vma gp = riscv_global_pointer_value (link_info);
BFD_ASSERT (rel->r_offset + 4 <= sec->size);
@@ -3763,12 +3790,19 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED,
hi_reloc = *hi;
symval = hi_reloc.hi_addr;
sym_sec = hi_reloc.sym_sec;
+
+ /* We can not know whether the undefined weak symbol is referenced
+ according to the information of R_RISCV_PCREL_LO12_I/S. Therefore,
+ we have to record the 'undefined_weak' flag when handling the
+ corresponding R_RISCV_HI20 reloc in riscv_record_pcgp_hi_reloc. */
+ undefined_weak = hi_reloc.undefined_weak;
}
break;
case R_RISCV_PCREL_HI20:
/* Mergeable symbols and code might later move out of range. */
- if (sym_sec->flags & (SEC_MERGE | SEC_CODE))
+ if (! undefined_weak
+ && sym_sec->flags & (SEC_MERGE | SEC_CODE))
return TRUE;
/* If the cooresponding lo relocation has already been seen then it's not
@@ -3796,23 +3830,50 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED,
/* Is the reference in range of x0 or gp?
Valid gp range conservatively because of alignment issue. */
- if (VALID_ITYPE_IMM (symval)
- || (symval >= gp
- && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
- || (symval < gp
- && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size)))
+ if (undefined_weak
+ || (VALID_ITYPE_IMM (symval)
+ || (symval >= gp
+ && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
+ || (symval < gp
+ && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size))))
{
unsigned sym = hi_reloc.hi_sym;
switch (ELFNN_R_TYPE (rel->r_info))
{
case R_RISCV_PCREL_LO12_I:
- rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
- rel->r_addend += hi_reloc.hi_addend;
+ if (undefined_weak)
+ {
+ /* Change the RS1 to zero, and then modify the relocation
+ type to R_RISCV_LO12_I. */
+ bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+ insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+ bfd_put_32 (abfd, insn, contents + rel->r_offset);
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_LO12_I);
+ rel->r_addend = hi_reloc.hi_addend;
+ }
+ else
+ {
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
+ rel->r_addend += hi_reloc.hi_addend;
+ }
return TRUE;
case R_RISCV_PCREL_LO12_S:
- rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
- rel->r_addend += hi_reloc.hi_addend;
+ if (undefined_weak)
+ {
+ /* Change the RS1 to zero, and then modify the relocation
+ type to R_RISCV_LO12_S. */
+ bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset);
+ insn &= ~(OP_MASK_RS1 << OP_SH_RS1);
+ bfd_put_32 (abfd, insn, contents + rel->r_offset);
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_LO12_S);
+ rel->r_addend = hi_reloc.hi_addend;
+ }
+ else
+ {
+ rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
+ rel->r_addend += hi_reloc.hi_addend;
+ }
return TRUE;
case R_RISCV_PCREL_HI20:
@@ -3821,7 +3882,8 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED,
rel->r_addend,
symval,
ELFNN_R_SYM(rel->r_info),
- sym_sec);
+ sym_sec,
+ undefined_weak);
/* We can delete the unnecessary AUIPC and reloc. */
rel->r_info = ELFNN_R_INFO (0, R_RISCV_DELETE);
rel->r_addend = 4;
@@ -3847,7 +3909,8 @@ _bfd_riscv_relax_delete (bfd *abfd,
bfd_vma max_alignment ATTRIBUTE_UNUSED,
bfd_vma reserve_size ATTRIBUTE_UNUSED,
bfd_boolean *again ATTRIBUTE_UNUSED,
- riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+ riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED,
+ bfd_boolean undefined_weak ATTRIBUTE_UNUSED)
{
if (!riscv_relax_delete_bytes(abfd, sec, rel->r_offset, rel->r_addend,
link_info))
@@ -3914,6 +3977,7 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
int type = ELFNN_R_TYPE (rel->r_info);
bfd_vma symval;
char symtype;
+ bfd_boolean undefined_weak = FALSE;
relax_func = NULL;
if (info->relax_pass == 0)
@@ -4008,11 +4072,36 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ if (h->root.type == bfd_link_hash_undefweak
+ && (relax_func == _bfd_riscv_relax_lui
+ || relax_func == _bfd_riscv_relax_pc))
+ {
+ /* For the lui and auipc relaxations, since the symbol
+ value of an undefined weak symbol is always be zero,
+ we can optimize the patterns into a single LI/MV/ADDI
+ instruction.
+
+ Note that, creating shared libraries and pie output may
+ break the rule above. Fortunately, since we do not relax
+ pc relocs when creating shared libraries and pie output,
+ and the absolute address access for R_RISCV_HI20 isn't
+ allowed when "-fPIC" is set, the problem of creating shared
+ libraries can not happen currently. Once we support the
+ auipc relaxations when creating shared libraries, then we will
+ need the more rigorous checking for this optimization. */
+ undefined_weak = TRUE;
+ }
+
if (h->plt.offset != MINUS_ONE)
{
sym_sec = htab->elf.splt;
symval = h->plt.offset;
}
+ else if (undefined_weak)
+ {
+ symval = 0;
+ sym_sec = bfd_und_section_ptr;
+ }
else if (h->root.u.def.section->output_section == NULL
|| (h->root.type != bfd_link_hash_defined
&& h->root.type != bfd_link_hash_defweak))
@@ -4065,7 +4154,7 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
if (!relax_func (abfd, sec, sym_sec, info, rel, symval,
max_alignment, reserve_size, again,
- &pcgp_relocs))
+ &pcgp_relocs, undefined_weak))
goto fail;
}
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 3f62dad9cc..57d4df713a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20 Nelson Chu <nelson.chu@sifive.com>
+
+ * testsuite/ld-riscv-elf/weakref32.s: Add relaxable undef weak code.
+ * testsuite/ld-riscv-elf/weakref64.s: Likewise.
+ * testsuite/ld-riscv-elf/weakref32.d: Updated.
+ * testsuite/ld-riscv-elf/weakref64.d: Updated.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* emultempl/xtensaelf.em (xtensa_get_section_deps): Comment.
diff --git a/ld/testsuite/ld-riscv-elf/weakref32.d b/ld/testsuite/ld-riscv-elf/weakref32.d
index 5ede7cb7f6..eaeb6dae7e 100644
--- a/ld/testsuite/ld-riscv-elf/weakref32.d
+++ b/ld/testsuite/ld-riscv-elf/weakref32.d
@@ -5,15 +5,16 @@
Disassembly of section \.text:
90000000 <_start>:
-90000000: 70000797 auipc a5,0x70000
-90000004: 00078793 mv a5,a5
-90000008: 02078263 beqz a5,9000002c <_start\+0x2c>
-9000000c: ff010113 addi sp,sp,-16
-90000010: 00112623 sw ra,12\(sp\)
-90000014: 00000097 auipc ra,0x0
-90000018: 000000e7 jalr zero # 0 <_start\-0x90000000>
-9000001c: 00c12083 lw ra,12\(sp\)
-90000020: 01010113 addi sp,sp,16
-90000024: 00000317 auipc t1,0x0
-90000028: 00000067 jr zero # 0 <_start\-0x90000000>
-9000002c: 00008067 ret
+90000000: 00000793 li a5,0
+90000004: 02078663 beqz a5,90000030 <_start\+0x30>
+90000008: 00000793 li a5,0
+9000000c: 02078263 beqz a5,90000030 <_start\+0x30>
+90000010: ff010113 addi sp,sp,-16
+90000014: 00112623 sw ra,12\(sp\)
+90000018: 00000097 auipc ra,0x0
+9000001c: 000000e7 jalr zero # 0 <_start\-0x90000000>
+90000020: 00c12083 lw ra,12\(sp\)
+90000024: 01010113 addi sp,sp,16
+90000028: 00000317 auipc t1,0x0
+9000002c: 00000067 jr zero # 0 <_start\-0x90000000>
+90000030: 00008067 ret
diff --git a/ld/testsuite/ld-riscv-elf/weakref32.s b/ld/testsuite/ld-riscv-elf/weakref32.s
index 14df041218..6c3d84de5f 100644
--- a/ld/testsuite/ld-riscv-elf/weakref32.s
+++ b/ld/testsuite/ld-riscv-elf/weakref32.s
@@ -4,6 +4,9 @@
.globl _start
.type _start, @function
_start:
+ lui a5,%hi(f)
+ addi a5,a5,%lo(f)
+ beq a5,zero,.L1
lla a5,f
beqz a5,.L1
addi sp,sp,-16
diff --git a/ld/testsuite/ld-riscv-elf/weakref64.d b/ld/testsuite/ld-riscv-elf/weakref64.d
index 52db9c2d0c..cc718a91a3 100644
--- a/ld/testsuite/ld-riscv-elf/weakref64.d
+++ b/ld/testsuite/ld-riscv-elf/weakref64.d
@@ -5,15 +5,16 @@
Disassembly of section \.text:
0000000090000000 <_start>:
- 90000000: 000007b7 lui a5,0x0
- 90000004: 00078793 mv a5,a5
- 90000008: 02078263 beqz a5,9000002c <_start\+0x2c>
- 9000000c: ff010113 addi sp,sp,-16
- 90000010: 00113423 sd ra,8\(sp\)
- 90000014: 00000097 auipc ra,0x0
- 90000018: 000000e7 jalr zero # 0 <_start\-0x90000000>
- 9000001c: 00813083 ld ra,8\(sp\)
- 90000020: 01010113 addi sp,sp,16
- 90000024: 00000317 auipc t1,0x0
- 90000028: 00000067 jr zero # 0 <_start\-0x90000000>
- 9000002c: 00008067 ret
+ 90000000: 00000793 li a5,0
+ 90000004: 02078663 beqz a5,90000030 <_start\+0x30>
+ 90000008: 00000793 li a5,0
+ 9000000c: 02078263 beqz a5,90000030 <_start\+0x30>
+ 90000010: ff010113 addi sp,sp,-16
+ 90000014: 00113423 sd ra,8\(sp\)
+ 90000018: 00000097 auipc ra,0x0
+ 9000001c: 000000e7 jalr zero # 0 <_start\-0x90000000>
+ 90000020: 00813083 ld ra,8\(sp\)
+ 90000024: 01010113 addi sp,sp,16
+ 90000028: 00000317 auipc t1,0x0
+ 9000002c: 00000067 jr zero # 0 <_start\-0x90000000>
+ 90000030: 00008067 ret
diff --git a/ld/testsuite/ld-riscv-elf/weakref64.s b/ld/testsuite/ld-riscv-elf/weakref64.s
index 5872626665..83bcd28563 100644
--- a/ld/testsuite/ld-riscv-elf/weakref64.s
+++ b/ld/testsuite/ld-riscv-elf/weakref64.s
@@ -4,6 +4,9 @@
.globl _start
.type _start, @function
_start:
+ lui a5,%hi(f)
+ addi a5,a5,%lo(f)
+ beq a5,zero,.L1
lla a5,f
beqz a5,.L1
addi sp,sp,-16
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3
@ 2019-09-21 2:11 gdb-buildbot
2019-09-21 2:06 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 2:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5a3a0d6304b400f55d60b2e9199da04fe1c7d8e4 ***
commit 5a3a0d6304b400f55d60b2e9199da04fe1c7d8e4
Author: Joel Brobecker <brobecker@adacore.com>
AuthorDate: Fri Sep 20 16:23:15 2019 -0700
Commit: Joel Brobecker <brobecker@adacore.com>
CommitDate: Fri Sep 20 16:23:15 2019 -0700
gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3
This is a followup on the following commit...
commit b4be1b0648608a2578bbed39841c8ee411773edd
Date: Wed Mar 13 15:13:03 2019 -0400
Subject: Fix MI output for multi-location breakpoints
... which mistakenly added NEWS entries in the "in gdb-8.3" section,
rather than in the "since gdb-8.3" one.
gdb/ChangeLog:
* NEWS: Move entries about default MI version now being
version 3, and about the GDB/MI fix for multi-location
breakpoints to the "since GDB 8.3" section.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5ac98cd0c2..67aba3ed2d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-20 Joel Brobecker <brobecker@adacore.com>
+
+ * NEWS: Move entries about default MI version now being
+ version 3, and about the GDB/MI fix for multi-location
+ breakpoints to the "since GDB 8.3" section.
+
2019-09-20 Joel Brobecker <brobecker@adacore.com>
GDB 8.3.1 released.
diff --git a/gdb/NEWS b/gdb/NEWS
index 35b48d9cb3..8f9b1d8ac4 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -304,6 +304,20 @@ focus, winheight, +, -, >, <
* Other MI changes
+ ** The default version of the MI interpreter is now 3 (-i=mi3).
+
+ ** The output of information about multi-location breakpoints (which is
+ syntactically incorrect in MI 2) has changed in MI 3. This affects
+ the following commands and events:
+
+ - -break-insert
+ - -break-info
+ - =breakpoint-created
+ - =breakpoint-modified
+
+ The -fix-multi-location-breakpoint-output command can be used to enable
+ this behavior with previous MI versions.
+
** Backtraces and frames include a new optional field addr_flags which is
given after the addr field. On AArch64 this contains PAC if the address
has been masked in the frame. On all other targets the field is not
@@ -501,8 +515,6 @@ set style address intensity VALUE
* MI changes
- ** The default version of the MI interpreter is now 3 (-i=mi3).
-
** The '-data-disassemble' MI command now accepts an '-a' option to
disassemble the whole function surrounding the given program
counter value or function name. Support for this feature can be
@@ -512,18 +524,6 @@ set style address intensity VALUE
** Command responses and notifications that include a frame now include
the frame's architecture in a new "arch" attribute.
- ** The output of information about multi-location breakpoints (which is
- syntactically incorrect in MI 2) has changed in MI 3. This affects
- the following commands and events:
-
- - -break-insert
- - -break-info
- - =breakpoint-created
- - =breakpoint-modified
-
- The -fix-multi-location-breakpoint-output command can be used to enable
- this behavior with previous MI versions.
-
* New native configurations
GNU/Linux/RISC-V riscv*-*-linux*
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Move declarations of debug_threads and using_threads to header
@ 2019-09-21 2:32 gdb-buildbot
2019-09-21 2:27 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 2:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f9d949fb7b85323e3f307884a4a3cef6ba52607b ***
commit f9d949fb7b85323e3f307884a4a3cef6ba52607b
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Sep 20 11:40:09 2019 +0900
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Sep 21 11:00:50 2019 +0900
Move declarations of debug_threads and using_threads to header
Instead of declaring debug_threads and using_threads in several
.c files, declare them in debug.h.
gdb/gdbserver/ChangeLog:
2019-09-20 Christian Biesinger <cbiesinger@google.com>
* debug.c (debug_threads): Remove comment in favor of the header.
* debug.h (using_threads): Add declaration.
(debug_threads): Add comment.
* linux-aarch64-low.c: Include debug.h and remove declaration of
debug_threads.
* nto-low.c: Likewise.
* remote-utils.c: Likewise.
* thread-db.c: Likewise.
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 5c76167014..c0c6f51a06 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-20 Christian Biesinger <cbiesinger@google.com>
+
+ * debug.c (debug_threads): Remove comment in favor of the header.
+ * debug.h (using_threads): Add declaration.
+ (debug_threads): Add comment.
+ * linux-aarch64-low.c: Include debug.h and remove declaration of
+ debug_threads.
+ * nto-low.c: Likewise.
+ * remote-utils.c: Likewise.
+ * thread-db.c: Likewise.
+
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o
diff --git a/gdb/gdbserver/debug.c b/gdb/gdbserver/debug.c
index 19f11fc17c..a764df7688 100644
--- a/gdb/gdbserver/debug.c
+++ b/gdb/gdbserver/debug.c
@@ -26,8 +26,7 @@ int remote_debug = 0;
/* Output file for debugging. Default to standard error. */
FILE *debug_file = stderr;
-/* Enable miscellaneous debugging output. The name is historical - it
- was originally used to debug LinuxThreads support. */
+/* See debug.h. */
int debug_threads;
/* Include timestamps in debugging output. */
diff --git a/gdb/gdbserver/debug.h b/gdb/gdbserver/debug.h
index 07e94eac6e..c136b9c224 100644
--- a/gdb/gdbserver/debug.h
+++ b/gdb/gdbserver/debug.h
@@ -28,7 +28,13 @@ extern int remote_debug;
void debug_set_output (const char *debug_file);
#endif
+extern int using_threads;
+
+/* Enable miscellaneous debugging output. The name is historical - it
+ was originally used to debug LinuxThreads support. */
+
extern int debug_threads;
+
extern int debug_timestamp;
void debug_flush (void);
diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c
index 33095ea752..ad04817145 100644
--- a/gdb/gdbserver/linux-aarch64-low.c
+++ b/gdb/gdbserver/linux-aarch64-low.c
@@ -28,6 +28,7 @@
#include "elf/common.h"
#include "ax.h"
#include "tracepoint.h"
+#include "debug.h"
#include <signal.h>
#include <sys/user.h>
@@ -153,10 +154,6 @@ aarch64_store_pauthregset (struct regcache *regcache, const void *buf)
&pauth_regset[1]);
}
-/* Enable miscellaneous debugging output. The name is historical - it
- was originally used to debug LinuxThreads support. */
-extern int debug_threads;
-
/* Implementation of linux_target_ops method "get_pc". */
static CORE_ADDR
diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c
index 3c1130680f..d77fda54b8 100644
--- a/gdb/gdbserver/nto-low.c
+++ b/gdb/gdbserver/nto-low.c
@@ -22,6 +22,7 @@
#include "gdbthread.h"
#include "nto-low.h"
#include "hostio.h"
+#include "debug.h"
#include <limits.h>
#include <fcntl.h>
@@ -32,7 +33,6 @@
#include <sys/neutrino.h>
-extern int using_threads;
int using_threads = 1;
const struct target_desc *nto_tdesc;
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c
index 665fc66c53..d7da4b7aed 100644
--- a/gdb/gdbserver/remote-utils.c
+++ b/gdb/gdbserver/remote-utils.c
@@ -23,6 +23,7 @@
#include "target.h"
#include "gdbthread.h"
#include "tdesc.h"
+#include "debug.h"
#include "dll.h"
#include "gdbsupport/rsp-low.h"
#include "gdbsupport/netstuff.h"
@@ -109,10 +110,6 @@ static int remote_is_stdio = 0;
static gdb_fildes_t remote_desc = INVALID_DESCRIPTOR;
static gdb_fildes_t listen_desc = INVALID_DESCRIPTOR;
-/* FIXME headerize? */
-extern int using_threads;
-extern int debug_threads;
-
#ifdef USE_WIN32API
# define read(fd, buf, len) recv (fd, (char *) buf, len, 0)
# define write(fd, buf, len) send (fd, (char *) buf, len, 0)
diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c
index b2791b0513..c6b43a06cc 100644
--- a/gdb/gdbserver/thread-db.c
+++ b/gdb/gdbserver/thread-db.c
@@ -22,8 +22,7 @@
#include "linux-low.h"
-extern int debug_threads;
-
+#include "debug.h"
#include "gdb_proc_service.h"
#include "nat/gdb_thread_db.h"
#include "gdbsupport/gdb_vecs.h"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order
@ 2019-09-21 2:52 gdb-buildbot
2019-09-21 2:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-21 2:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 626ca2c06f7b5a5441d512ce334bb2daf5587259 ***
commit 626ca2c06f7b5a5441d512ce334bb2daf5587259
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Thu Aug 1 11:53:03 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Fri Sep 20 21:09:15 2019 -0500
Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order
All implementations of either function use it for the same purpose (except
Darwin, which is a no-op): to prefer a symbol in the current objfile over
symbols with the same name in other objfiles. There does not seem to be a
reason to have both mechanisms for that purpose.
gdb/ChangeLog:
2019-09-20 Christian Biesinger <cbiesinger@google.com>
* solib-darwin.c (darwin_lookup_lib_symbol): Remove.
(_initialize_darwin_solib): Don't set
darwin_so_ops.lookup_lib_global_symbol.
* solib-svr4.c (set_solib_svr4_fetch_link_map_offsets): Call
set_gdbarch_iterate_over_objfiles_in_search_order.
(elf_lookup_lib_symbol): Rename to...
(svr4_iterate_over_objfiles_in_search_order): this, and update
to iterate semantics.
(_initialize_svr4_solib): Don't set lookup_lib_global_symbol.
* solib.c (solib_global_lookup): Remove.
* solist.h (struct target_so_ops): Remove lookup_lib_global_symbol.
(solib_global_lookup): Remove.
* symtab.c (lookup_global_or_static_symbol): Remove call to
solib_global_lookup.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 67aba3ed2d..3d0975afd8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,20 @@
+2019-09-20 Christian Biesinger <cbiesinger@google.com>
+
+ * solib-darwin.c (darwin_lookup_lib_symbol): Remove.
+ (_initialize_darwin_solib): Don't set
+ darwin_so_ops.lookup_lib_global_symbol.
+ * solib-svr4.c (set_solib_svr4_fetch_link_map_offsets): Call
+ set_gdbarch_iterate_over_objfiles_in_search_order.
+ (elf_lookup_lib_symbol): Rename to...
+ (svr4_iterate_over_objfiles_in_search_order): this, and update
+ to iterate semantics.
+ (_initialize_svr4_solib): Don't set lookup_lib_global_symbol.
+ * solib.c (solib_global_lookup): Remove.
+ * solist.h (struct target_so_ops): Remove lookup_lib_global_symbol.
+ (solib_global_lookup): Remove.
+ * symtab.c (lookup_global_or_static_symbol): Remove call to
+ solib_global_lookup.
+
2019-09-20 Joel Brobecker <brobecker@adacore.com>
* NEWS: Move entries about default MI version now being
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 778c6d9f61..286e38558f 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -638,14 +638,6 @@ darwin_relocate_section_addresses (struct so_list *so,
so->addr_low = sec->addr;
}
\f
-static struct block_symbol
-darwin_lookup_lib_symbol (struct objfile *objfile,
- const char *name,
- const domain_enum domain)
-{
- return {};
-}
-
static gdb_bfd_ref_ptr
darwin_bfd_open (const char *pathname)
{
@@ -687,6 +679,5 @@ _initialize_darwin_solib (void)
darwin_so_ops.current_sos = darwin_current_sos;
darwin_so_ops.open_symbol_file_object = open_symbol_file_object;
darwin_so_ops.in_dynsym_resolve_code = darwin_in_dynsym_resolve_code;
- darwin_so_ops.lookup_lib_global_symbol = darwin_lookup_lib_symbol;
darwin_so_ops.bfd_open = darwin_bfd_open;
}
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index e04fde942d..dc63549105 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -51,6 +51,10 @@ static int svr4_have_link_map_offsets (void);
static void svr4_relocate_main_executable (void);
static void svr4_free_library_list (void *p_list);
static void probes_table_remove_objfile_probes (struct objfile *objfile);
+static void svr4_iterate_over_objfiles_in_search_order (
+ struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb,
+ void *cb_data, struct objfile *objfile);
+
/* On SVR4 systems, a list of symbols in the dynamic linker where
GDB can try to place a breakpoint to monitor shared library
@@ -3102,6 +3106,8 @@ set_solib_svr4_fetch_link_map_offsets (struct gdbarch *gdbarch,
ops->fetch_link_map_offsets = flmo;
set_solib_ops (gdbarch, &svr4_so_ops);
+ set_gdbarch_iterate_over_objfiles_in_search_order
+ (gdbarch, svr4_iterate_over_objfiles_in_search_order);
}
/* Fetch a link_map_offsets structure using the architecture-specific
@@ -3200,32 +3206,45 @@ svr4_lp64_fetch_link_map_offsets (void)
struct target_so_ops svr4_so_ops;
-/* Lookup global symbol for ELF DSOs linked with -Bsymbolic. Those DSOs have a
+/* Search order for ELF DSOs linked with -Bsymbolic. Those DSOs have a
different rule for symbol lookup. The lookup begins here in the DSO, not in
the main executable. */
-static struct block_symbol
-elf_lookup_lib_symbol (struct objfile *objfile,
- const char *name,
- const domain_enum domain)
+static void
+svr4_iterate_over_objfiles_in_search_order
+ (struct gdbarch *gdbarch,
+ iterate_over_objfiles_in_search_order_cb_ftype *cb,
+ void *cb_data, struct objfile *current_objfile)
{
- bfd *abfd;
-
- if (objfile == symfile_objfile)
- abfd = exec_bfd;
- else
+ bool checked_current_objfile = false;
+ if (current_objfile != nullptr)
{
- /* OBJFILE should have been passed as the non-debug one. */
- gdb_assert (objfile->separate_debug_objfile_backlink == NULL);
+ bfd *abfd;
- abfd = objfile->obfd;
- }
+ if (current_objfile->separate_debug_objfile_backlink != nullptr)
+ current_objfile = current_objfile->separate_debug_objfile_backlink;
- if (abfd == NULL || scan_dyntag (DT_SYMBOLIC, abfd, NULL, NULL) != 1)
- return {};
+ if (current_objfile == symfile_objfile)
+ abfd = exec_bfd;
+ else
+ abfd = current_objfile->obfd;
+
+ if (abfd != nullptr &&
+ scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
+ {
+ checked_current_objfile = true;
+ if (cb (current_objfile, cb_data) != 0)
+ return;
+ }
+ }
- return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
- domain);
+ for (objfile *objfile : current_program_space->objfiles ())
+ {
+ if (checked_current_objfile && objfile == current_objfile)
+ continue;
+ if (cb (objfile, cb_data) != 0)
+ return;
+ }
}
void
@@ -3242,7 +3261,6 @@ _initialize_svr4_solib (void)
svr4_so_ops.open_symbol_file_object = open_symbol_file_object;
svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
svr4_so_ops.bfd_open = solib_bfd_open;
- svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
svr4_so_ops.same = svr4_same;
svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core;
svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints;
diff --git a/gdb/solib.c b/gdb/solib.c
index b9a61e265b..5b1246929b 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1441,21 +1441,6 @@ show_auto_solib_add (struct ui_file *file, int from_tty,
}
-/* Handler for library-specific lookup of global symbol NAME in OBJFILE. Call
- the library-specific handler if it is installed for the current target. */
-
-struct block_symbol
-solib_global_lookup (struct objfile *objfile,
- const char *name,
- const domain_enum domain)
-{
- const struct target_so_ops *ops = solib_ops (target_gdbarch ());
-
- if (ops->lookup_lib_global_symbol != NULL)
- return ops->lookup_lib_global_symbol (objfile, name, domain);
- return {};
-}
-
/* Lookup the value for a specific symbol from dynamic symbol table. Look
up symbol from ABFD. MATCH_SYM is a callback function to determine
whether to pick up a symbol. DATA is the input of this callback
diff --git a/gdb/solist.h b/gdb/solist.h
index e1410c2b79..ee99fc815b 100644
--- a/gdb/solist.h
+++ b/gdb/solist.h
@@ -139,12 +139,6 @@ struct target_so_ops
unsigned o_flags,
gdb::unique_xmalloc_ptr<char> *temp_pathname);
- /* Hook for looking up global symbols in a library-specific way. */
- struct block_symbol (*lookup_lib_global_symbol)
- (struct objfile *objfile,
- const char *name,
- const domain_enum domain);
-
/* Given two so_list objects, one from the GDB thread list
and another from the list returned by current_sos, return 1
if they represent the same library.
@@ -209,9 +203,4 @@ extern gdb_bfd_ref_ptr solib_bfd_open (const char *in_pathname);
/* FIXME: gdbarch needs to control this variable. */
extern struct target_so_ops *current_target_so_ops;
-/* Handler for library-specific global symbol lookup in solib.c. */
-struct block_symbol solib_global_lookup (struct objfile *objfile,
- const char *name,
- const domain_enum domain);
-
#endif
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 35eab08cb3..54c7ed9c7c 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2634,11 +2634,7 @@ lookup_global_or_static_symbol (const char *name,
return result;
}
- /* Call library-specific lookup procedure. */
- if (objfile != NULL)
- result = solib_global_lookup (objfile, name, domain);
-
- /* If that didn't work go a global search (of global blocks, heh). */
+ /* Do a global search (of global blocks, heh). */
if (result.symbol == NULL)
{
memset (&lookup_data, 0, sizeof (lookup_data));
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: change "nonzero" to "true" in comments
@ 2019-09-22 0:17 gdb-buildbot
2019-09-22 0:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-22 0:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9252448ba984203cb5d0f15494ce9d942bb20c74 ***
commit 9252448ba984203cb5d0f15494ce9d942bb20c74
Author: Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 19:45:12 2019 -0400
Commit: Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 19:47:22 2019 -0400
gdb: change "nonzero" to "true" in comments
These int fields have been converted to bool, so their doc should say
"true" and not "nonzero".
gdb/ChangeLog:
* breakpoint.h (bp_location) <inserted, permanent, duplicate>:
Change "nonzero" to "true" in documentation.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3d0975afd8..48f90186ff 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-21 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * breakpoint.h (bp_location) <inserted, permanent, duplicate>:
+ Change "nonzero" to "true" in documentation.
+
2019-09-20 Christian Biesinger <cbiesinger@google.com>
* solib-darwin.c (darwin_lookup_lib_symbol): Remove.
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 49380e30c2..80bb11c141 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -387,17 +387,17 @@ public:
/* Is this particular location enabled. */
bool enabled = false;
- /* Nonzero if this breakpoint is now inserted. */
+ /* True if this breakpoint is now inserted. */
bool inserted = false;
- /* Nonzero if this is a permanent breakpoint. There is a breakpoint
+ /* True if this is a permanent breakpoint. There is a breakpoint
instruction hard-wired into the target's code. Don't try to
write another breakpoint instruction on top of it, or restore its
value. Step over it using the architecture's
gdbarch_skip_permanent_breakpoint method. */
bool permanent = false;
- /* Nonzero if this is not the first breakpoint in the list
+ /* True if this is not the first breakpoint in the list
for the given address. location of tracepoint can _never_
be duplicated with other locations of tracepoints and other
kinds of breakpoints, because two locations at the same
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: make watchpoint::val_valid a bool
@ 2019-09-22 0:41 gdb-buildbot
2019-09-22 0:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-22 0:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4c1d86d9a8f7ddfbf7ff095a88a59497c8f6ddc9 ***
commit 4c1d86d9a8f7ddfbf7ff095a88a59497c8f6ddc9
Author: Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 19:50:40 2019 -0400
Commit: Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 20:03:08 2019 -0400
gdb: make watchpoint::val_valid a bool
gdb/ChangeLog:
* breakpoint.h (struct watchpoint) <val_valid>: Change type to
bool.
* breakpoint.c (update_watchpoint): Assign false instead of 0,
true instead of 1.
(breakpoint_init_inferior): Likewise.
(watchpoint_check): Likewise.
(watch_command_1): Likewise.
(invalidate_bp_value_on_memory_change): Likewise.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 8ef3aac0c1..838c9d136f 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1727,7 +1727,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
to the user when the old value and the new value may actually
be completely different objects. */
b->val = NULL;
- b->val_valid = 0;
+ b->val_valid = false;
/* Note that unlike with breakpoints, the watchpoint's condition
expression is stored in the breakpoint object, not in the
@@ -1780,7 +1780,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
if (b->val_bitsize != 0)
v = extract_bitfield_from_watchpoint_value (b, v);
b->val = release_value (v);
- b->val_valid = 1;
+ b->val_valid = true;
}
frame_pspace = get_frame_program_space (get_selected_frame (NULL));
@@ -3900,7 +3900,7 @@ breakpoint_init_inferior (enum inf_context context)
/* Reset val field to force reread of starting value in
insert_breakpoints. */
w->val.reset (nullptr);
- w->val_valid = 0;
+ w->val_valid = false;
}
}
}
@@ -4877,7 +4877,7 @@ watchpoint_check (bpstat bs)
{
bs->old_val = b->val;
b->val = release_value (new_val);
- b->val_valid = 1;
+ b->val_valid = true;
if (new_val != NULL)
value_free_to_mark (mark);
return WP_VALUE_CHANGED;
@@ -10717,7 +10717,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty,
w->val = val;
w->val_bitpos = saved_bitpos;
w->val_bitsize = saved_bitsize;
- w->val_valid = 1;
+ w->val_valid = true;
}
if (cond_start)
@@ -14375,7 +14375,7 @@ invalidate_bp_value_on_memory_change (struct inferior *inferior,
&& addr + len > loc->address)
{
wp->val = NULL;
- wp->val_valid = 0;
+ wp->val_valid = false;
}
}
}
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 80bb11c141..9791032c5e 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -817,9 +817,10 @@ struct watchpoint : public breakpoint
we do not know the value yet or the value was not readable. VAL
is never lazy. */
value_ref_ptr val;
- /* Nonzero if VAL is valid. If VAL_VALID is set but VAL is NULL,
+
+ /* True if VAL is valid. If VAL_VALID is set but VAL is NULL,
then an error occurred reading the value. */
- int val_valid;
+ bool val_valid;
/* When watching the location of a bitfield, contains the offset and size of
the bitfield. Otherwise contains 0. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb: fix formatting in solib-svr4.c
@ 2019-09-22 2:47 gdb-buildbot
2019-09-22 3:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-22 2:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7ab78ccbbb0d0918c293ade07bea59d789ea7d63 ***
commit 7ab78ccbbb0d0918c293ade07bea59d789ea7d63
Author: Simon Marchi <simon.marchi@polymtl.ca>
AuthorDate: Sat Sep 21 22:13:49 2019 -0400
Commit: Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Sat Sep 21 22:13:49 2019 -0400
gdb: fix formatting in solib-svr4.c
gdb/ChangeLog:
* solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
formatting.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 48f90186ff..4374348c8d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-21 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
+ formatting.
+
2019-09-21 Simon Marchi <simon.marchi@polymtl.ca>
* breakpoint.h (bp_location) <inserted, permanent, duplicate>:
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index dc63549105..aa4af346b4 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -3229,8 +3229,8 @@ svr4_iterate_over_objfiles_in_search_order
else
abfd = current_objfile->obfd;
- if (abfd != nullptr &&
- scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
+ if (abfd != nullptr
+ && scan_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
{
checked_current_objfile = true;
if (cb (current_objfile, cb_data) != 0)
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported
@ 2019-09-22 5:10 gdb-buildbot
2019-09-22 5:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-22 5:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 77d036789aab73c90dc7f4c798f34748b03de726 ***
commit 77d036789aab73c90dc7f4c798f34748b03de726
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Sun Sep 22 06:14:29 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Sun Sep 22 06:14:29 2019 +0200
[gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported
We currently run into:
...
248 n = callee1 (n + l5);
(gdb) PASS: gdb.base/restore.exp: caller5 calls callee1; return callee now
print l1
$51 = <optimized out>
(gdb) FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l1 \
to 32492
...
The problem is that we try to access the value of l1 in function caller5, but
variable l1 has no DW_AT_location attribute. Since l1 is declared using the
register keyword, it's valid for gcc to emit no DW_AT_location at -O0.
Change the FAIL into an UNSUPPORTED.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-22 Tom de Vries <tdevries@suse.de>
* gdb.base/restore.exp: Allow register variables to be optimized out at
-O0.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 64c7d38861..37e323f747 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-22 Tom de Vries <tdevries@suse.de>
+
+ * gdb.base/restore.exp: Allow register variables to be optimized out at
+ -O0.
+
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.arch/spu-info.exp: Remove file.
diff --git a/gdb/testsuite/gdb.base/restore.exp b/gdb/testsuite/gdb.base/restore.exp
index 947fe58be4..56c2f5e3dc 100644
--- a/gdb/testsuite/gdb.base/restore.exp
+++ b/gdb/testsuite/gdb.base/restore.exp
@@ -73,8 +73,17 @@ proc restore_tests { } {
# they should be.
for {set var 1} {$var <= $c} {incr var} {
set expected [expr 0x7eeb + $var]
- gdb_test "print l$var" " = $expected" \
- "caller$c calls callee$e; return restored l$var to $expected"
+ set test "caller$c calls callee$e; return restored l$var to $expected"
+ set pass_pattern " = $expected"
+ set unsupported_pattern " = <optimized out>"
+ gdb_test_multiple "print l$var" $test {
+ -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+ pass $test
+ }
+ -re "\[\r\n\]*(?:$unsupported_pattern)\[\r\n\]+$gdb_prompt $" {
+ unsupported $test
+ }
+ }
}
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] csky bfd.h tidy
@ 2019-09-23 1:25 gdb-buildbot
2019-09-23 1:25 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 1:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6e67e6b05abcb29148cda042c1297ad63e6c75f2 ***
commit 6e67e6b05abcb29148cda042c1297ad63e6c75f2
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 09:58:42 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930
csky bfd.h tidy
bfd/
* bfd-in.h: Move csky function declarations to..
* elf32-csky.h: ..here, new file.
* elf32-csky.c: Include elf32-csky.h.
* bfd-in2.h: Regenerate.
ld/
* emultempl/cskyelf.em: Include elf32-csky.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b1a4aebd21..906ff1d2b4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move csky function declarations to..
+ * elf32-csky.h: ..here, new file.
+ * elf32-csky.c: Include elf32-csky.h.
+ * bfd-in2.h: Regenerate.
+
2019-09-20 Nelson Chu <nelson.chu@sifive.com>
* elfnn-riscv.c (riscv_pcgp_hi_reloc): Add new field undefined_weak.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 969a965796..56a006e9cc 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1023,15 +1023,3 @@ extern bfd_boolean v850_elf_set_note
/* MIPS ABI flags data access. For the disassembler. */
struct elf_internal_abiflags_v0;
extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
-
-/* C-SKY functions. */
-extern bfd_boolean elf32_csky_build_stubs
- (struct bfd_link_info *);
-extern bfd_boolean elf32_csky_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section *(*) (const char*, struct bfd_section*),
- void (*) (void));
-extern void elf32_csky_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern int elf32_csky_setup_section_lists
- (bfd *, struct bfd_link_info *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 44bce06191..1aa2975bd4 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1030,18 +1030,6 @@ extern bfd_boolean v850_elf_set_note
/* MIPS ABI flags data access. For the disassembler. */
struct elf_internal_abiflags_v0;
extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
-
-/* C-SKY functions. */
-extern bfd_boolean elf32_csky_build_stubs
- (struct bfd_link_info *);
-extern bfd_boolean elf32_csky_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section *(*) (const char*, struct bfd_section*),
- void (*) (void));
-extern void elf32_csky_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern int elf32_csky_setup_section_lists
- (bfd *, struct bfd_link_info *);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index 16897b3930..85fddf8681 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -28,6 +28,7 @@
#include "opcode/csky.h"
#include <assert.h>
#include "libiberty.h"
+#include "elf32-csky.h"
/* Data structures used for merging different arch variants.
V1 (510/610) and V2 (8xx) processors are incompatible, but
diff --git a/bfd/elf32-csky.h b/bfd/elf32-csky.h
new file mode 100644
index 0000000000..2ca07497f8
--- /dev/null
+++ b/bfd/elf32-csky.h
@@ -0,0 +1,30 @@
+/* 32-bit ELF support for C-SKY.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean elf32_csky_build_stubs
+ (struct bfd_link_info *);
+extern bfd_boolean elf32_csky_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section *(*) (const char*, struct bfd_section*),
+ void (*) (void));
+extern void elf32_csky_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern int elf32_csky_setup_section_lists
+ (bfd *, struct bfd_link_info *);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index eb7981ea48..56fc0a2d92 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/cskyelf.em: Include elf32-csky.h.
+
2019-09-22 Alan Modra <amodra@gmail.com>
* testsuite/ld-srec/sr3.cc (FOO_MSG_LEN): Set to 4.
diff --git a/ld/emultempl/cskyelf.em b/ld/emultempl/cskyelf.em
index 9184808655..9215824c34 100644
--- a/ld/emultempl/cskyelf.em
+++ b/ld/emultempl/cskyelf.em
@@ -25,6 +25,7 @@ fragment <<EOF
#include "ldctor.h"
#include "elf/csky.h"
+#include "elf32-csky.h"
/* To use branch stub or not. */
extern bfd_boolean use_branch_stub;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] mips bfd.h tidy
@ 2019-09-23 1:37 gdb-buildbot
2019-09-23 1:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 1:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7beeaeb8c6d84ecc899b9454d9b92521e515fe4a ***
commit 7beeaeb8c6d84ecc899b9454d9b92521e515fe4a
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:00:21 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930
mips bfd.h tidy
bfd/
* bfd-in.h: Move mips function declaration to..
* elfxx-mips.h: ..here.
* bfd-in2.h: Regenerate.
opcodes/
* mips-dis.c: Include elfxx-mips.h. Move "elf-bfd.h" and
"elf/mips.h" earlier.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 906ff1d2b4..d5521fb6dc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move mips function declaration to..
+ * elfxx-mips.h: ..here.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move csky function declarations to..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 56a006e9cc..c2105e3a94 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1019,7 +1019,3 @@ extern bfd_boolean v850_elf_create_sections
extern bfd_boolean v850_elf_set_note
(bfd *, unsigned int, unsigned int);
-
-/* MIPS ABI flags data access. For the disassembler. */
-struct elf_internal_abiflags_v0;
-extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 1aa2975bd4..9960163e27 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1026,10 +1026,6 @@ extern bfd_boolean v850_elf_create_sections
extern bfd_boolean v850_elf_set_note
(bfd *, unsigned int, unsigned int);
-
-/* MIPS ABI flags data access. For the disassembler. */
-struct elf_internal_abiflags_v0;
-extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/elfxx-mips.h b/bfd/elfxx-mips.h
index 8e796a99d9..fe0e50ff39 100644
--- a/bfd/elfxx-mips.h
+++ b/bfd/elfxx-mips.h
@@ -176,6 +176,9 @@ extern int _bfd_mips_elf_cant_unwind_opcode (struct bfd_link_info *);
extern void _bfd_mips_elf_record_xhash_symbol
(struct elf_link_hash_entry *h, bfd_vma xlat_loc);
+/* MIPS ABI flags data access. For the disassembler. */
+extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
+
static inline bfd_boolean
gprel16_reloc_p (unsigned int r_type)
{
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0043d4eb16..91b084ef8a 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * mips-dis.c: Include elfxx-mips.h. Move "elf-bfd.h" and
+ "elf/mips.h" earlier.
+
2018-09-20 Jan Beulich <jbeulich@suse.com>
PR gas/25012
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 5bf33d9f8f..8418841842 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -24,6 +24,9 @@
#include "libiberty.h"
#include "opcode/mips.h"
#include "opintl.h"
+#include "elf-bfd.h"
+#include "elf/mips.h"
+#include "elfxx-mips.h"
/* FIXME: These are needed to figure out if the code is mips16 or
not. The low bit of the address is often a good indicator. No
@@ -32,8 +35,6 @@
#if !defined(EMBEDDED_ENV)
#define SYMTAB_AVAILABLE 1
-#include "elf-bfd.h"
-#include "elf/mips.h"
#endif
/* Mips instructions are at maximum this many bytes long. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] v850 bfd.h tidy
@ 2019-09-23 1:59 gdb-buildbot
2019-09-23 1:58 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 1:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d48d68b618f0950f63bdf2842a550384c0c58bc3 ***
commit d48d68b618f0950f63bdf2842a550384c0c58bc3
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:01:31 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:20 2019 +0930
v850 bfd.h tidy
bfd/
* bfd-in.h: Move v850 function declarations..
* elf32-v850.h: ..to here, new file.
* elf32-v850.c: Include elf32-v850.h.
* bfd-in2.h: Regenerate.
ld/
* emultempl/v850elf.em: Include elf32-v850.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d5521fb6dc..61d31aaf97 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move v850 function declarations..
+ * elf32-v850.h: ..to here, new file.
+ * elf32-v850.c: Include elf32-v850.h.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move mips function declaration to..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c2105e3a94..fe5e168128 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1012,10 +1012,3 @@ extern void bfd_elf32_ia64_after_parse
extern void bfd_elf64_ia64_after_parse
(int);
-
-/* V850 Note manipulation routines. */
-extern bfd_boolean v850_elf_create_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean v850_elf_set_note
- (bfd *, unsigned int, unsigned int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 9960163e27..6d92b89e2a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1019,13 +1019,6 @@ extern void bfd_elf32_ia64_after_parse
extern void bfd_elf64_ia64_after_parse
(int);
-
-/* V850 Note manipulation routines. */
-extern bfd_boolean v850_elf_create_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean v850_elf_set_note
- (bfd *, unsigned int, unsigned int);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 21df3c8b9a..c8a97ed129 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -29,6 +29,7 @@
#include "elf-bfd.h"
#include "elf/v850.h"
#include "libiberty.h"
+#include "elf32-v850.h"
/* Sign-extend a 17-bit number. */
#define SEXT17(x) ((((x) & 0x1ffff) ^ 0x10000) - 0x10000)
diff --git a/bfd/elf32-v850.h b/bfd/elf32-v850.h
new file mode 100644
index 0000000000..0ed5871cce
--- /dev/null
+++ b/bfd/elf32-v850.h
@@ -0,0 +1,25 @@
+/* V850 Note manipulation routines.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean v850_elf_create_sections
+ (struct bfd_link_info *);
+
+extern bfd_boolean v850_elf_set_note
+ (bfd *, unsigned int, unsigned int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 56fc0a2d92..fa5913e7be 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/v850elf.em: Include elf32-v850.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/cskyelf.em: Include elf32-csky.h.
diff --git a/ld/emultempl/v850elf.em b/ld/emultempl/v850elf.em
index ac7051f3b7..3e3e09d4bb 100644
--- a/ld/emultempl/v850elf.em
+++ b/ld/emultempl/v850elf.em
@@ -24,6 +24,7 @@
#
fragment <<EOF
#include "ldctor.h"
+#include "elf32-v850.h"
static bfd_boolean
is_v850_target (void)
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 1:59 [binutils-gdb] v850 bfd.h tidy gdb-buildbot
@ 2019-09-23 1:58 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 1:58 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/139
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
d48d68b618f0950f63bdf2842a550384c0c58bc3
Subject of commit:
v850 bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d48d68b618f0950f63bdf2842a550384c0c58bc3/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 1: continue
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 1: p libvar
PASS -> FAIL: gdb.server/sysroot.exp: sysroot=local: connect to remote and read binary
PASS -> FAIL: gdb.server/sysroot.exp: sysroot=local: continue to main
new FAIL: gdb.server/sysroot.exp: sysroot=local: setting breakpoint at main
new FAIL: gdb.server/sysroot.exp: sysroot=local: setting breakpoint at printf
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d48d68b618f0950f63bdf2842a550384c0c58bc3//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/d4/d48d68b618f0950f63bdf2842a550384c0c58bc3//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] ia64 bfd.h tidy
@ 2019-09-23 2:01 gdb-buildbot
2019-09-23 2:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3352ae9900037b231f9838e088af450a19bade17 ***
commit 3352ae9900037b231f9838e088af450a19bade17
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:02:25 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
ia64 bfd.h tidy
bfd/
* bfd-in.h: Move ia64 function declarations..
* elfxx-ia64.h: ..to here.
* bfd-in2.h: Regenerate.
ld/
* emultempl/ia64elf.em: Include elfxx-ia64.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 61d31aaf97..a08cd7e20f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move ia64 function declarations..
+ * elfxx-ia64.h: ..to here.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move v850 function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index fe5e168128..1d0262ffae 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1005,10 +1005,3 @@ extern int bfd_ticoff_get_section_load_page
/* H8/300 functions. */
extern bfd_vma bfd_h8300_pad_address
(bfd *, bfd_vma);
-
-/* IA64 Itanium code generation. Called from linker. */
-extern void bfd_elf32_ia64_after_parse
- (int);
-
-extern void bfd_elf64_ia64_after_parse
- (int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 6d92b89e2a..88ca55011a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1012,13 +1012,6 @@ extern int bfd_ticoff_get_section_load_page
/* H8/300 functions. */
extern bfd_vma bfd_h8300_pad_address
(bfd *, bfd_vma);
-
-/* IA64 Itanium code generation. Called from linker. */
-extern void bfd_elf32_ia64_after_parse
- (int);
-
-extern void bfd_elf64_ia64_after_parse
- (int);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/elfxx-ia64.h b/bfd/elfxx-ia64.h
index 915df82089..628cbf6a13 100644
--- a/bfd/elfxx-ia64.h
+++ b/bfd/elfxx-ia64.h
@@ -31,3 +31,10 @@ void ia64_elf_relax_ldxmov (bfd_byte *contents, bfd_vma off);
bfd_reloc_status_type ia64_elf_install_value (bfd_byte *hit_addr, bfd_vma v,
unsigned int r_type);
+
+/* IA64 Itanium code generation. Called from linker. */
+extern void bfd_elf32_ia64_after_parse
+ (int);
+
+extern void bfd_elf64_ia64_after_parse
+ (int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index fa5913e7be..3eddd55ddf 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/ia64elf.em: Include elfxx-ia64.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/v850elf.em: Include elf32-v850.h.
diff --git a/ld/emultempl/ia64elf.em b/ld/emultempl/ia64elf.em
index 59e1d8da79..ae45956d77 100644
--- a/ld/emultempl/ia64elf.em
+++ b/ld/emultempl/ia64elf.em
@@ -27,6 +27,8 @@
#
fragment <<EOF
+#include "elfxx-ia64.h"
+
/* None zero if generating binary for Intel Itanium processor. */
static int itanium = 0;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] h8300 bfd.h tidy
@ 2019-09-23 2:13 gdb-buildbot
2019-09-23 2:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca437b1b5fe3d3dd7987ddf6c373bc2221c0726e ***
commit ca437b1b5fe3d3dd7987ddf6c373bc2221c0726e
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:03:04 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
h8300 bfd.h tidy
* bfd-in.h: Move h8300 function declaration to..
* cpu-h8300.h: ..here, new file.
* cpu-h8300.c: Include cpu-h8300.h.
* elf32-h8300.c: Likewise.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a08cd7e20f..9130fd510b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move h8300 function declaration to..
+ * cpu-h8300.h: ..here, new file.
+ * cpu-h8300.c: Include cpu-h8300.h.
+ * elf32-h8300.c: Likewise.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move ia64 function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 1d0262ffae..4216808c2a 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1001,7 +1001,3 @@ extern void bfd_ticoff_set_section_load_page
extern int bfd_ticoff_get_section_load_page
(struct bfd_section *);
-
-/* H8/300 functions. */
-extern bfd_vma bfd_h8300_pad_address
- (bfd *, bfd_vma);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 88ca55011a..a5c0f5806d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1008,10 +1008,6 @@ extern void bfd_ticoff_set_section_load_page
extern int bfd_ticoff_get_section_load_page
(struct bfd_section *);
-
-/* H8/300 functions. */
-extern bfd_vma bfd_h8300_pad_address
- (bfd *, bfd_vma);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index 53dd4ec52b..3dc2ac7c1b 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -22,6 +22,7 @@
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
+#include "cpu-h8300.h"
static bfd_boolean
h8300_scan (const struct bfd_arch_info *info, const char *string)
diff --git a/bfd/cpu-h8300.h b/bfd/cpu-h8300.h
new file mode 100644
index 0000000000..9a51089c93
--- /dev/null
+++ b/bfd/cpu-h8300.h
@@ -0,0 +1,22 @@
+/* H8/300 functions.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_vma bfd_h8300_pad_address
+ (bfd *, bfd_vma);
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index ba7c8b2062..f0a04e222d 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -23,6 +23,7 @@
#include "libbfd.h"
#include "elf-bfd.h"
#include "elf/h8.h"
+#include "cpu-h8300.h"
static reloc_howto_type *elf32_h8_reloc_type_lookup
(bfd *abfd, bfd_reloc_code_real_type code);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] tic54x bfd.h tidy
@ 2019-09-23 2:32 gdb-buildbot
2019-09-23 2:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c348479ddd10079b8b8714598d8e1458d25e095d ***
commit c348479ddd10079b8b8714598d8e1458d25e095d
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:03:37 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
tic54x bfd.h tidy
* bfd-in.h: Delete ticoff function declarations.
* coff-tic54x.c (bfd_ticoff_set_section_load_page),
(bfd_ticoff_get_section_load_page): Make static.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9130fd510b..d42ead0b57 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Delete ticoff function declarations.
+ * coff-tic54x.c (bfd_ticoff_set_section_load_page),
+ (bfd_ticoff_get_section_load_page): Make static.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move h8300 function declaration to..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 4216808c2a..7080fbe970 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -993,11 +993,3 @@ extern bfd_boolean elf32_aarch64_size_stubs
void (*) (void));
extern bfd_boolean elf32_aarch64_build_stubs
(struct bfd_link_info *);
-
-
-/* TI COFF load page support. */
-extern void bfd_ticoff_set_section_load_page
- (struct bfd_section *, int);
-
-extern int bfd_ticoff_get_section_load_page
- (struct bfd_section *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index a5c0f5806d..90d9fc9c07 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1000,14 +1000,6 @@ extern bfd_boolean elf32_aarch64_size_stubs
void (*) (void));
extern bfd_boolean elf32_aarch64_build_stubs
(struct bfd_link_info *);
-
-
-/* TI COFF load page support. */
-extern void bfd_ticoff_set_section_load_page
- (struct bfd_section *, int);
-
-extern int bfd_ticoff_get_section_load_page
- (struct bfd_section *);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/coff-tic54x.c b/bfd/coff-tic54x.c
index 6c7acb4045..0c3e56ad8d 100644
--- a/bfd/coff-tic54x.c
+++ b/bfd/coff-tic54x.c
@@ -82,14 +82,14 @@ tic54x_getl_signed_32 (const void *p)
#define coff_get_section_load_page bfd_ticoff_get_section_load_page
#define coff_set_section_load_page bfd_ticoff_set_section_load_page
-void
+static void
bfd_ticoff_set_section_load_page (asection *sect,
int page)
{
sect->lma = (sect->lma & ADDR_MASK) | PG_TO_FLAG(page);
}
-int
+static int
bfd_ticoff_get_section_load_page (asection *sect)
{
int page;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] aarch64 bfd.h tidy
@ 2019-09-23 2:37 gdb-buildbot
2019-09-23 2:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a8bfaadbb40406dc795d410d198a4be9d452c177 ***
commit a8bfaadbb40406dc795d410d198a4be9d452c177
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:04:50 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
aarch64 bfd.h tidy
bfd/
* bfd-in.h: Move aarch64 declarations and defines..
* cpu-aarch64.h: ..to here, new file..
* elfxx-aarch64.h: ..and here.
* cpu-aarch64.c: Include cpu-aarch64.h.
* elfnn-aarch64.c: Likewise.
* bfd-in2.h: Regenerate.
ld/
* emultempl/aarch64elf.em: Include elfxx-aarch64.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d42ead0b57..a72a63dbb5 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move aarch64 declarations and defines..
+ * cpu-aarch64.h: ..to here, new file..
+ * elfxx-aarch64.h: ..and here.
+ * cpu-aarch64.c: Include cpu-aarch64.h.
+ * elfnn-aarch64.c: Likewise.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Delete ticoff function declarations.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 7080fbe970..ed8e47f8a4 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -907,89 +907,3 @@ extern bfd_boolean elf32_arm_fix_exidx_coverage
/* C6x unwind section editing support. */
extern bfd_boolean elf32_tic6x_fix_exidx_coverage
(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-extern void bfd_elf64_aarch64_init_maps
- (bfd *);
-
-extern void bfd_elf32_aarch64_init_maps
- (bfd *);
-
-/* Types of PLTs based on the level of security. This would be a
- bit-mask to denote which of the combinations of security features
- are enabled:
- - No security feature PLTs
- - PLTs with BTI instruction
- - PLTs with PAC instruction
-*/
-typedef enum
-{
- PLT_NORMAL = 0x0, /* Normal plts. */
- PLT_BTI = 0x1, /* plts with bti. */
- PLT_PAC = 0x2, /* plts with pointer authentication. */
- PLT_BTI_PAC = PLT_BTI | PLT_PAC
-} aarch64_plt_type;
-
-/* To indicate if BTI is enabled with/without warning. */
-typedef enum
-{
- BTI_NONE = 0, /* BTI is not enabled. */
- BTI_WARN = 1, /* BTI is enabled with -z force-bti. */
-} aarch64_enable_bti_type;
-
-/* A structure to encompass all information coming from BTI or PAC
- related command line options. This involves the "PLT_TYPE" to determine
- which version of PLTs to pick and "BTI_TYPE" to determine if
- BTI should be turned on with any warnings. */
-typedef struct
-{
- aarch64_plt_type plt_type;
- aarch64_enable_bti_type bti_type;
-} aarch64_bti_pac_info;
-
-/* An enum to define what kind of erratum fixes we should apply. This gives the
- user a bit more control over the sequences we generate. */
-typedef enum
-{
- ERRAT_NONE = (1 << 0), /* No erratum workarounds allowed. */
- ERRAT_ADR = (1 << 1), /* Erratum workarounds using ADR allowed. */
- ERRAT_ADRP = (1 << 2), /* Erratum workarounds using ADRP are allowed. */
-} erratum_84319_opts;
-
-extern void bfd_elf64_aarch64_set_options
- (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
- aarch64_bti_pac_info);
-
-extern void bfd_elf32_aarch64_set_options
- (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
- aarch64_bti_pac_info);
-
-/* ELF AArch64 mapping symbol support. */
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_TAG (1 << 1)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER (1 << 2)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_ANY (~0)
-extern bfd_boolean bfd_is_aarch64_special_symbol_name
- (const char * name, int type);
-
-/* AArch64 stub generation support for ELF64. Called from the linker. */
-extern int elf64_aarch64_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf64_aarch64_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf64_aarch64_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *),
- void (*) (void));
-extern bfd_boolean elf64_aarch64_build_stubs
- (struct bfd_link_info *);
-/* AArch64 stub generation support for ELF32. Called from the linker. */
-extern int elf32_aarch64_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf32_aarch64_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_aarch64_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *),
- void (*) (void));
-extern bfd_boolean elf32_aarch64_build_stubs
- (struct bfd_link_info *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 90d9fc9c07..8cc6201644 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -914,92 +914,6 @@ extern bfd_boolean elf32_arm_fix_exidx_coverage
/* C6x unwind section editing support. */
extern bfd_boolean elf32_tic6x_fix_exidx_coverage
(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-extern void bfd_elf64_aarch64_init_maps
- (bfd *);
-
-extern void bfd_elf32_aarch64_init_maps
- (bfd *);
-
-/* Types of PLTs based on the level of security. This would be a
- bit-mask to denote which of the combinations of security features
- are enabled:
- - No security feature PLTs
- - PLTs with BTI instruction
- - PLTs with PAC instruction
-*/
-typedef enum
-{
- PLT_NORMAL = 0x0, /* Normal plts. */
- PLT_BTI = 0x1, /* plts with bti. */
- PLT_PAC = 0x2, /* plts with pointer authentication. */
- PLT_BTI_PAC = PLT_BTI | PLT_PAC
-} aarch64_plt_type;
-
-/* To indicate if BTI is enabled with/without warning. */
-typedef enum
-{
- BTI_NONE = 0, /* BTI is not enabled. */
- BTI_WARN = 1, /* BTI is enabled with -z force-bti. */
-} aarch64_enable_bti_type;
-
-/* A structure to encompass all information coming from BTI or PAC
- related command line options. This involves the "PLT_TYPE" to determine
- which version of PLTs to pick and "BTI_TYPE" to determine if
- BTI should be turned on with any warnings. */
-typedef struct
-{
- aarch64_plt_type plt_type;
- aarch64_enable_bti_type bti_type;
-} aarch64_bti_pac_info;
-
-/* An enum to define what kind of erratum fixes we should apply. This gives the
- user a bit more control over the sequences we generate. */
-typedef enum
-{
- ERRAT_NONE = (1 << 0), /* No erratum workarounds allowed. */
- ERRAT_ADR = (1 << 1), /* Erratum workarounds using ADR allowed. */
- ERRAT_ADRP = (1 << 2), /* Erratum workarounds using ADRP are allowed. */
-} erratum_84319_opts;
-
-extern void bfd_elf64_aarch64_set_options
- (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
- aarch64_bti_pac_info);
-
-extern void bfd_elf32_aarch64_set_options
- (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
- aarch64_bti_pac_info);
-
-/* ELF AArch64 mapping symbol support. */
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_TAG (1 << 1)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER (1 << 2)
-#define BFD_AARCH64_SPECIAL_SYM_TYPE_ANY (~0)
-extern bfd_boolean bfd_is_aarch64_special_symbol_name
- (const char * name, int type);
-
-/* AArch64 stub generation support for ELF64. Called from the linker. */
-extern int elf64_aarch64_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf64_aarch64_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf64_aarch64_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *),
- void (*) (void));
-extern bfd_boolean elf64_aarch64_build_stubs
- (struct bfd_link_info *);
-/* AArch64 stub generation support for ELF32. Called from the linker. */
-extern int elf32_aarch64_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf32_aarch64_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_aarch64_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *),
- void (*) (void));
-extern bfd_boolean elf32_aarch64_build_stubs
- (struct bfd_link_info *);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
index fbffb79b63..617b7e66c9 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -22,6 +22,7 @@
#include "bfd.h"
#include "libbfd.h"
#include "libiberty.h"
+#include "cpu-aarch64.h"
/* This routine is provided two arch_infos and works out which Aarch64
machine which would be compatible with both and returns a pointer
diff --git a/bfd/cpu-aarch64.h b/bfd/cpu-aarch64.h
new file mode 100644
index 0000000000..01acb1ffe2
--- /dev/null
+++ b/bfd/cpu-aarch64.h
@@ -0,0 +1,25 @@
+/* ELF AArch64 mapping symbol support
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING3. If not,
+ see <http://www.gnu.org/licenses/>. */
+
+#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0)
+#define BFD_AARCH64_SPECIAL_SYM_TYPE_TAG (1 << 1)
+#define BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER (1 << 2)
+#define BFD_AARCH64_SPECIAL_SYM_TYPE_ANY (~0)
+extern bfd_boolean bfd_is_aarch64_special_symbol_name
+ (const char * name, int type);
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 6f3bd0d565..666f6a75f6 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -144,6 +144,7 @@
#include "objalloc.h"
#include "elf/aarch64.h"
#include "elfxx-aarch64.h"
+#include "cpu-aarch64.h"
#define ARCH_SIZE NN
diff --git a/bfd/elfxx-aarch64.h b/bfd/elfxx-aarch64.h
index f5988529d7..0d91dae261 100644
--- a/bfd/elfxx-aarch64.h
+++ b/bfd/elfxx-aarch64.h
@@ -18,6 +18,84 @@
along with this program; see the file COPYING3. If not,
see <http://www.gnu.org/licenses/>. */
+extern void bfd_elf64_aarch64_init_maps
+ (bfd *);
+
+extern void bfd_elf32_aarch64_init_maps
+ (bfd *);
+
+/* Types of PLTs based on the level of security. This would be a
+ bit-mask to denote which of the combinations of security features
+ are enabled:
+ - No security feature PLTs
+ - PLTs with BTI instruction
+ - PLTs with PAC instruction
+*/
+typedef enum
+{
+ PLT_NORMAL = 0x0, /* Normal plts. */
+ PLT_BTI = 0x1, /* plts with bti. */
+ PLT_PAC = 0x2, /* plts with pointer authentication. */
+ PLT_BTI_PAC = PLT_BTI | PLT_PAC
+} aarch64_plt_type;
+
+/* To indicate if BTI is enabled with/without warning. */
+typedef enum
+{
+ BTI_NONE = 0, /* BTI is not enabled. */
+ BTI_WARN = 1, /* BTI is enabled with -z force-bti. */
+} aarch64_enable_bti_type;
+
+/* A structure to encompass all information coming from BTI or PAC
+ related command line options. This involves the "PLT_TYPE" to determine
+ which version of PLTs to pick and "BTI_TYPE" to determine if
+ BTI should be turned on with any warnings. */
+typedef struct
+{
+ aarch64_plt_type plt_type;
+ aarch64_enable_bti_type bti_type;
+} aarch64_bti_pac_info;
+
+/* An enum to define what kind of erratum fixes we should apply. This gives the
+ user a bit more control over the sequences we generate. */
+typedef enum
+{
+ ERRAT_NONE = (1 << 0), /* No erratum workarounds allowed. */
+ ERRAT_ADR = (1 << 1), /* Erratum workarounds using ADR allowed. */
+ ERRAT_ADRP = (1 << 2), /* Erratum workarounds using ADRP are allowed. */
+} erratum_84319_opts;
+
+extern void bfd_elf64_aarch64_set_options
+ (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
+ aarch64_bti_pac_info);
+
+extern void bfd_elf32_aarch64_set_options
+ (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int,
+ aarch64_bti_pac_info);
+
+/* AArch64 stub generation support for ELF64. Called from the linker. */
+extern int elf64_aarch64_setup_section_lists
+ (bfd *, struct bfd_link_info *);
+extern void elf64_aarch64_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern bfd_boolean elf64_aarch64_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section * (*) (const char *, struct bfd_section *),
+ void (*) (void));
+extern bfd_boolean elf64_aarch64_build_stubs
+ (struct bfd_link_info *);
+/* AArch64 stub generation support for ELF32. Called from the linker. */
+extern int elf32_aarch64_setup_section_lists
+ (bfd *, struct bfd_link_info *);
+extern void elf32_aarch64_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern bfd_boolean elf32_aarch64_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section * (*) (const char *, struct bfd_section *),
+ void (*) (void));
+extern bfd_boolean elf32_aarch64_build_stubs
+ (struct bfd_link_info *);
+
/* Take the PAGE component of an address or offset. */
#define PG(x) ((x) & ~ (bfd_vma) 0xfff)
#define PG_OFFSET(x) ((x) & (bfd_vma) 0xfff)
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 3eddd55ddf..378fcea064 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/aarch64elf.em: Include elfxx-aarch64.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/ia64elf.em: Include elfxx-ia64.h.
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 208d169404..f4baf50895 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -26,6 +26,7 @@ fragment <<EOF
#include "ldctor.h"
#include "elf/aarch64.h"
+#include "elfxx-aarch64.h"
static int no_enum_size_warning = 0;
static int no_wchar_size_warning = 0;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 2:37 [binutils-gdb] aarch64 bfd.h tidy gdb-buildbot
@ 2019-09-23 2:36 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:36 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/143
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
a8bfaadbb40406dc795d410d198a4be9d452c177
Subject of commit:
aarch64 bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/a8/a8bfaadbb40406dc795d410d198a4be9d452c177/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: connect
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=3: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=5: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/a8/a8bfaadbb40406dc795d410d198a4be9d452c177//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/a8/a8bfaadbb40406dc795d410d198a4be9d452c177//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] tic6x bfd.h tidy
@ 2019-09-23 2:50 gdb-buildbot
2019-09-23 2:50 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 2:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 79c2ce54e1e52e5d63d96af56c544de778036a12 ***
commit 79c2ce54e1e52e5d63d96af56c544de778036a12
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:05:43 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
tic6x bfd.h tidy
* bfd-in.h: Move tic6x function declaration..
* elf32-tic6x.h: ..to here.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a72a63dbb5..06b09a16ab 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move tic6x function declaration..
+ * elf32-tic6x.h: ..to here.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move aarch64 declarations and defines..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index ed8e47f8a4..c923e54f5d 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -903,7 +903,3 @@ extern bfd_boolean elf32_arm_build_stubs
/* ARM unwind section editing support. */
extern bfd_boolean elf32_arm_fix_exidx_coverage
(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-/* C6x unwind section editing support. */
-extern bfd_boolean elf32_tic6x_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 8cc6201644..74aaf3c5aa 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -910,10 +910,6 @@ extern bfd_boolean elf32_arm_build_stubs
/* ARM unwind section editing support. */
extern bfd_boolean elf32_arm_fix_exidx_coverage
(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
-
-/* C6x unwind section editing support. */
-extern bfd_boolean elf32_tic6x_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/elf32-tic6x.h b/bfd/elf32-tic6x.h
index 2198f67cae..24a280fbb7 100644
--- a/bfd/elf32-tic6x.h
+++ b/bfd/elf32-tic6x.h
@@ -37,6 +37,11 @@ struct elf32_tic6x_params
extern void elf32_tic6x_setup (struct bfd_link_info *,
struct elf32_tic6x_params *);
+/* C6x unwind section editing support. */
+extern bfd_boolean elf32_tic6x_fix_exidx_coverage (struct bfd_section **,
+ unsigned int,
+ struct bfd_link_info *,
+ bfd_boolean);
#ifdef __cplusplus
}
#endif
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] arm bfd.h tidy
@ 2019-09-23 3:03 gdb-buildbot
2019-09-23 3:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f37164d78b0d9600862b7038b896922127749b52 ***
commit f37164d78b0d9600862b7038b896922127749b52
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:06:45 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
arm bfd.h tidy
bfd/
* bfd-in.h: Move arm declaraions..
* cpu-arm.h: ..to here, new file..
* coff-arm.h: ..and here, new file..
* elf32-arm.h: ..and here, new file.
* cpu-arm.c: Include cpu-arm.h.
* coff-arm.c: Include cpu-arm.h and coff-arm.h.
* elf32-arm.c: Include cpu-arm.h and elf32-arm.h.
* pe-arm.c: Move function rename defines later.
* pe-arm-wince.c: Likewise and include sysdep.h and bfd.h early.
* bfd-in2.h: Regenerate.
gas/
* config/tc-arm.c: Include cpu-arm.h.
ld/
* emultempl/armelf.em: Include elf32-arm.h.
* emultempl/pe.em: Move func defines later and include coff-arm.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 06b09a16ab..c1f82cda92 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,16 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move arm declaraions..
+ * cpu-arm.h: ..to here, new file..
+ * coff-arm.h: ..and here, new file..
+ * elf32-arm.h: ..and here, new file.
+ * cpu-arm.c: Include cpu-arm.h.
+ * coff-arm.c: Include cpu-arm.h and coff-arm.h.
+ * elf32-arm.c: Include cpu-arm.h and elf32-arm.h.
+ * pe-arm.c: Move function rename defines later.
+ * pe-arm-wince.c: Likewise and include sysdep.h and bfd.h early.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move tic6x function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c923e54f5d..124a0c2b81 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -763,143 +763,3 @@ union internal_auxent;
extern bfd_boolean bfd_coff_set_symbol_class
(bfd *, struct bfd_symbol *, unsigned int);
-
-/* ARM VFP11 erratum workaround support. */
-typedef enum
-{
- BFD_ARM_VFP11_FIX_DEFAULT,
- BFD_ARM_VFP11_FIX_NONE,
- BFD_ARM_VFP11_FIX_SCALAR,
- BFD_ARM_VFP11_FIX_VECTOR
-} bfd_arm_vfp11_fix;
-
-extern void bfd_elf32_arm_init_maps
- (bfd *);
-
-extern void bfd_elf32_arm_set_vfp11_fix
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_set_cortex_a8_fix
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_vfp11_fix_veneer_locations
- (bfd *, struct bfd_link_info *);
-
-/* ARM STM STM32L4XX erratum workaround support. */
-typedef enum
-{
- BFD_ARM_STM32L4XX_FIX_NONE,
- BFD_ARM_STM32L4XX_FIX_DEFAULT,
- BFD_ARM_STM32L4XX_FIX_ALL
-} bfd_arm_stm32l4xx_fix;
-
-extern void bfd_elf32_arm_set_stm32l4xx_fix
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
- (bfd *, struct bfd_link_info *);
-
-/* ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_arm_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_process_before_allocation
- (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-/* PE ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_pe_process_before_allocation
- (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-/* ELF ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_process_before_allocation
- (bfd *, struct bfd_link_info *);
-
-struct elf32_arm_params {
- char *thumb_entry_symbol;
- int byteswap_code;
- int target1_is_rel;
- char * target2_type;
- int fix_v4bx;
- int use_blx;
- bfd_arm_vfp11_fix vfp11_denorm_fix;
- bfd_arm_stm32l4xx_fix stm32l4xx_fix;
- int no_enum_size_warning;
- int no_wchar_size_warning;
- int pic_veneer;
- int fix_cortex_a8;
- int fix_arm1176;
- int merge_exidx_entries;
- int cmse_implib;
- bfd *in_implib_bfd;
-};
-
-void bfd_elf32_arm_set_target_params
- (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
-
-extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_keep_private_stub_output_sections
- (struct bfd_link_info *);
-
-/* ELF ARM mapping symbol support. */
-#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
-#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
-#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
-
-extern bfd_boolean bfd_is_arm_special_symbol_name
- (const char *, int);
-
-extern void bfd_elf32_arm_set_byteswap_code
- (struct bfd_link_info *, int);
-
-extern void bfd_elf32_arm_use_long_plt (void);
-
-/* ARM Note section processing. */
-extern bfd_boolean bfd_arm_merge_machines
- (bfd *, bfd *);
-
-extern bfd_boolean bfd_arm_update_notes
- (bfd *, const char *);
-
-extern unsigned int bfd_arm_get_mach_from_notes
- (bfd *, const char *);
-
-/* ARM stub generation support. Called from the linker. */
-extern int elf32_arm_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf32_arm_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_arm_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *,
- struct bfd_section *, unsigned int),
- void (*) (void));
-extern bfd_boolean elf32_arm_build_stubs
- (struct bfd_link_info *);
-
-/* ARM unwind section editing support. */
-extern bfd_boolean elf32_arm_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 74aaf3c5aa..052a826176 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -770,146 +770,6 @@ union internal_auxent;
extern bfd_boolean bfd_coff_set_symbol_class
(bfd *, struct bfd_symbol *, unsigned int);
-
-/* ARM VFP11 erratum workaround support. */
-typedef enum
-{
- BFD_ARM_VFP11_FIX_DEFAULT,
- BFD_ARM_VFP11_FIX_NONE,
- BFD_ARM_VFP11_FIX_SCALAR,
- BFD_ARM_VFP11_FIX_VECTOR
-} bfd_arm_vfp11_fix;
-
-extern void bfd_elf32_arm_init_maps
- (bfd *);
-
-extern void bfd_elf32_arm_set_vfp11_fix
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_set_cortex_a8_fix
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_vfp11_fix_veneer_locations
- (bfd *, struct bfd_link_info *);
-
-/* ARM STM STM32L4XX erratum workaround support. */
-typedef enum
-{
- BFD_ARM_STM32L4XX_FIX_NONE,
- BFD_ARM_STM32L4XX_FIX_DEFAULT,
- BFD_ARM_STM32L4XX_FIX_ALL
-} bfd_arm_stm32l4xx_fix;
-
-extern void bfd_elf32_arm_set_stm32l4xx_fix
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
- (bfd *, struct bfd_link_info *);
-
-/* ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_arm_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_process_before_allocation
- (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-/* PE ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_arm_pe_process_before_allocation
- (bfd *, struct bfd_link_info *, int);
-
-extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-/* ELF ARM Interworking support. Called from linker. */
-extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
- (struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_process_before_allocation
- (bfd *, struct bfd_link_info *);
-
-struct elf32_arm_params {
- char *thumb_entry_symbol;
- int byteswap_code;
- int target1_is_rel;
- char * target2_type;
- int fix_v4bx;
- int use_blx;
- bfd_arm_vfp11_fix vfp11_denorm_fix;
- bfd_arm_stm32l4xx_fix stm32l4xx_fix;
- int no_enum_size_warning;
- int no_wchar_size_warning;
- int pic_veneer;
- int fix_cortex_a8;
- int fix_arm1176;
- int merge_exidx_entries;
- int cmse_implib;
- bfd *in_implib_bfd;
-};
-
-void bfd_elf32_arm_set_target_params
- (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
-
-extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
- (bfd *, struct bfd_link_info *);
-
-extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
- (bfd *, struct bfd_link_info *);
-
-extern void bfd_elf32_arm_keep_private_stub_output_sections
- (struct bfd_link_info *);
-
-/* ELF ARM mapping symbol support. */
-#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
-#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
-#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
-
-extern bfd_boolean bfd_is_arm_special_symbol_name
- (const char *, int);
-
-extern void bfd_elf32_arm_set_byteswap_code
- (struct bfd_link_info *, int);
-
-extern void bfd_elf32_arm_use_long_plt (void);
-
-/* ARM Note section processing. */
-extern bfd_boolean bfd_arm_merge_machines
- (bfd *, bfd *);
-
-extern bfd_boolean bfd_arm_update_notes
- (bfd *, const char *);
-
-extern unsigned int bfd_arm_get_mach_from_notes
- (bfd *, const char *);
-
-/* ARM stub generation support. Called from the linker. */
-extern int elf32_arm_setup_section_lists
- (bfd *, struct bfd_link_info *);
-extern void elf32_arm_next_input_section
- (struct bfd_link_info *, struct bfd_section *);
-extern bfd_boolean elf32_arm_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
- struct bfd_section * (*) (const char *, struct bfd_section *,
- struct bfd_section *, unsigned int),
- void (*) (void));
-extern bfd_boolean elf32_arm_build_stubs
- (struct bfd_link_info *);
-
-/* ARM unwind section editing support. */
-extern bfd_boolean elf32_arm_fix_exidx_coverage
-(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index cbc5257e9f..c9a7c098f5 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -24,6 +24,8 @@
#include "libbfd.h"
#include "coff/arm.h"
#include "coff/internal.h"
+#include "cpu-arm.h"
+#include "coff-arm.h"
#ifdef COFF_WITH_PE
#include "coff/pe.h"
diff --git a/bfd/coff-arm.h b/bfd/coff-arm.h
new file mode 100644
index 0000000000..e0a93d6182
--- /dev/null
+++ b/bfd/coff-arm.h
@@ -0,0 +1,29 @@
+/* BFD back-end for ARM COFF files.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* ARM Interworking support. Called from linker. */
+extern bfd_boolean bfd_arm_allocate_interworking_sections
+ (struct bfd_link_info *);
+
+extern bfd_boolean bfd_arm_process_before_allocation
+ (bfd *, struct bfd_link_info *, int);
+
+extern bfd_boolean bfd_arm_get_bfd_for_interworking
+ (bfd *, struct bfd_link_info *);
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 71a78daf11..4a8c340f70 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -23,6 +23,7 @@
#include "bfd.h"
#include "libbfd.h"
#include "libiberty.h"
+#include "cpu-arm.h"
/* This routine is provided two arch_infos and works out which ARM
machine which would be compatible with both and returns a pointer
diff --git a/bfd/cpu-arm.h b/bfd/cpu-arm.h
new file mode 100644
index 0000000000..116b040e12
--- /dev/null
+++ b/bfd/cpu-arm.h
@@ -0,0 +1,39 @@
+/* BFD support for the ARM processor
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* ARM Note section processing. */
+extern bfd_boolean bfd_arm_merge_machines
+ (bfd *, bfd *);
+
+extern bfd_boolean bfd_arm_update_notes
+ (bfd *, const char *);
+
+extern unsigned int bfd_arm_get_mach_from_notes
+ (bfd *, const char *);
+
+/* ELF ARM mapping symbol support. */
+#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
+#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
+#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
+
+extern bfd_boolean bfd_is_arm_special_symbol_name
+ (const char *, int);
+
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 1c4887a034..bb53e039e3 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -28,6 +28,8 @@
#include "elf-nacl.h"
#include "elf-vxworks.h"
#include "elf/arm.h"
+#include "elf32-arm.h"
+#include "cpu-arm.h"
/* Return the relocation section associated with NAME. HTAB is the
bfd's elf32_arm_link_hash_entry. */
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
new file mode 100644
index 0000000000..ba6c2367c4
--- /dev/null
+++ b/bfd/elf32-arm.h
@@ -0,0 +1,121 @@
+/* 32-bit ELF support for ARM
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+
+/* ARM VFP11 erratum workaround support. */
+typedef enum
+{
+ BFD_ARM_VFP11_FIX_DEFAULT,
+ BFD_ARM_VFP11_FIX_NONE,
+ BFD_ARM_VFP11_FIX_SCALAR,
+ BFD_ARM_VFP11_FIX_VECTOR
+} bfd_arm_vfp11_fix;
+
+extern void bfd_elf32_arm_init_maps
+ (bfd *);
+
+extern void bfd_elf32_arm_set_vfp11_fix
+ (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_set_cortex_a8_fix
+ (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan
+ (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_vfp11_fix_veneer_locations
+ (bfd *, struct bfd_link_info *);
+
+/* ARM STM STM32L4XX erratum workaround support. */
+typedef enum
+{
+ BFD_ARM_STM32L4XX_FIX_NONE,
+ BFD_ARM_STM32L4XX_FIX_DEFAULT,
+ BFD_ARM_STM32L4XX_FIX_ALL
+} bfd_arm_stm32l4xx_fix;
+
+extern void bfd_elf32_arm_set_stm32l4xx_fix
+ (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
+ (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
+ (bfd *, struct bfd_link_info *);
+
+/* ELF ARM Interworking support. Called from linker. */
+extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
+ (struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_process_before_allocation
+ (bfd *, struct bfd_link_info *);
+
+struct elf32_arm_params {
+ char *thumb_entry_symbol;
+ int byteswap_code;
+ int target1_is_rel;
+ char * target2_type;
+ int fix_v4bx;
+ int use_blx;
+ bfd_arm_vfp11_fix vfp11_denorm_fix;
+ bfd_arm_stm32l4xx_fix stm32l4xx_fix;
+ int no_enum_size_warning;
+ int no_wchar_size_warning;
+ int pic_veneer;
+ int fix_cortex_a8;
+ int fix_arm1176;
+ int merge_exidx_entries;
+ int cmse_implib;
+ bfd *in_implib_bfd;
+};
+
+void bfd_elf32_arm_set_target_params
+ (bfd *, struct bfd_link_info *, struct elf32_arm_params *);
+
+extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
+ (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
+ (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_keep_private_stub_output_sections
+ (struct bfd_link_info *);
+
+extern void bfd_elf32_arm_set_byteswap_code
+ (struct bfd_link_info *, int);
+
+extern void bfd_elf32_arm_use_long_plt (void);
+
+/* ARM stub generation support. Called from the linker. */
+extern int elf32_arm_setup_section_lists
+ (bfd *, struct bfd_link_info *);
+extern void elf32_arm_next_input_section
+ (struct bfd_link_info *, struct bfd_section *);
+extern bfd_boolean elf32_arm_size_stubs
+ (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ struct bfd_section * (*) (const char *, struct bfd_section *,
+ struct bfd_section *, unsigned int),
+ void (*) (void));
+extern bfd_boolean elf32_arm_build_stubs
+ (struct bfd_link_info *);
+
+/* ARM unwind section editing support. */
+extern bfd_boolean elf32_arm_fix_exidx_coverage
+(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
diff --git a/bfd/pe-arm-wince.c b/bfd/pe-arm-wince.c
index d3d52ee520..733b8380f5 100644
--- a/bfd/pe-arm-wince.c
+++ b/bfd/pe-arm-wince.c
@@ -18,6 +18,9 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
+#include "sysdep.h"
+#include "bfd.h"
+
#define TARGET_UNDERSCORE 0
#define USER_LABEL_PREFIX ""
@@ -26,6 +29,11 @@
#define TARGET_BIG_SYM arm_pe_wince_be_vec
#define TARGET_BIG_NAME "pe-arm-wince-big"
+#define LOCAL_LABEL_PREFIX "."
+
+#undef bfd_pe_print_pdata
+#define bfd_pe_print_pdata _bfd_pe_print_ce_compressed_pdata
+
#define bfd_arm_allocate_interworking_sections \
bfd_arm_wince_pe_allocate_interworking_sections
#define bfd_arm_get_bfd_for_interworking \
@@ -33,13 +41,4 @@
#define bfd_arm_process_before_allocation \
bfd_arm_wince_pe_process_before_allocation
-#define LOCAL_LABEL_PREFIX "."
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#undef bfd_pe_print_pdata
-#define bfd_pe_print_pdata _bfd_pe_print_ce_compressed_pdata
-
#include "pe-arm.c"
-
diff --git a/bfd/pe-arm.c b/bfd/pe-arm.c
index 2d1b7ead1f..4667046108 100644
--- a/bfd/pe-arm.c
+++ b/bfd/pe-arm.c
@@ -18,18 +18,6 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
-/* Do this before including bfd.h, so we prototype the right functions. */
-
-#ifndef bfd_arm_allocate_interworking_sections
-#define bfd_arm_allocate_interworking_sections \
- bfd_armpe_allocate_interworking_sections
-#define bfd_arm_get_bfd_for_interworking \
- bfd_armpe_get_bfd_for_interworking
-#define bfd_arm_process_before_allocation \
- bfd_armpe_process_before_allocation
-#endif
-
#include "sysdep.h"
#include "bfd.h"
@@ -64,4 +52,13 @@
{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
+#ifndef bfd_arm_allocate_interworking_sections
+#define bfd_arm_allocate_interworking_sections \
+ bfd_armpe_allocate_interworking_sections
+#define bfd_arm_get_bfd_for_interworking \
+ bfd_armpe_get_bfd_for_interworking
+#define bfd_arm_process_before_allocation \
+ bfd_armpe_process_before_allocation
+#endif
+
#include "coff-arm.c"
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 39537f8129..cab918a49c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * config/tc-arm.c: Include cpu-arm.h.
+
2019-09-21 Alan Modra <amodra@gmail.com>
* config/tc-i386.c (md_parse_option): Fix warning on vexwig assignment.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index b0f1507c36..7760d1807d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -32,6 +32,7 @@
#include "obstack.h"
#include "libiberty.h"
#include "opcode/arm.h"
+#include "cpu-arm.h"
#ifdef OBJ_ELF
#include "elf/arm.h"
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 378fcea064..f0fcd202e9 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/armelf.em: Include elf32-arm.h.
+ * emultempl/pe.em: Move func defines later and include coff-arm.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/aarch64elf.em: Include elfxx-aarch64.h.
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index 0cbfcc70b3..9a1bc9a04b 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -27,6 +27,7 @@ fragment <<EOF
#include "ldctor.h"
#include "elf/arm.h"
+#include "elf32-arm.h"
static struct elf32_arm_params params =
{
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 150c98296f..c1932d79ad 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -37,18 +37,6 @@ fragment <<EOF
#define TARGET_IS_${EMULATION_NAME}
-/* Do this before including bfd.h, so we prototype the right functions. */
-
-#if defined(TARGET_IS_armpe) \
- || defined(TARGET_IS_arm_wince_pe)
-#define bfd_arm_allocate_interworking_sections \
- bfd_${EMULATION_NAME}_allocate_interworking_sections
-#define bfd_arm_get_bfd_for_interworking \
- bfd_${EMULATION_NAME}_get_bfd_for_interworking
-#define bfd_arm_process_before_allocation \
- bfd_${EMULATION_NAME}_process_before_allocation
-#endif
-
#include "sysdep.h"
#include "bfd.h"
#include "bfdlink.h"
@@ -78,6 +66,17 @@ fragment <<EOF
#include "../bfd/libcoff.h"
#include "../bfd/libpei.h"
+#if defined(TARGET_IS_armpe) \
+ || defined(TARGET_IS_arm_wince_pe)
+#define bfd_arm_allocate_interworking_sections \
+ bfd_${EMULATION_NAME}_allocate_interworking_sections
+#define bfd_arm_get_bfd_for_interworking \
+ bfd_${EMULATION_NAME}_get_bfd_for_interworking
+#define bfd_arm_process_before_allocation \
+ bfd_${EMULATION_NAME}_process_before_allocation
+#include "coff-arm.h"
+#endif
+
#include "deffile.h"
#include "pe-dll.h"
#include "safe-ctype.h"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] coff bfd.h tidy
@ 2019-09-23 3:14 gdb-buildbot
2019-09-23 3:15 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aa739c59d3db95d1709b0417cdf7d082bfdea911 ***
commit aa739c59d3db95d1709b0417cdf7d082bfdea911
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:07:40 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
coff bfd.h tidy
bfd/
* bfd-in.h: Delete coff forward refs and move coff declaration..
* coff-bfd.h: ..to here.
* bfd-in2.h: Regenerate.
binutils/
* dlltool.c: Include coff-bfd.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c1f82cda92..696eeacc55 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Delete coff forward refs and move coff declaration..
+ * coff-bfd.h: ..to here.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move arm declaraions..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 124a0c2b81..a629a8430d 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -753,13 +753,3 @@ extern bfd_boolean bfd_xcoff_link_generate_rtinit
/* XCOFF support routines for ar. */
extern bfd_boolean bfd_xcoff_ar_archive_set_magic
(bfd *, char *);
-
-/* Externally visible COFF routines. */
-
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct internal_syment;
-union internal_auxent;
-#endif
-
-extern bfd_boolean bfd_coff_set_symbol_class
- (bfd *, struct bfd_symbol *, unsigned int);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 052a826176..e7537f7eaf 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -760,16 +760,6 @@ extern bfd_boolean bfd_xcoff_link_generate_rtinit
/* XCOFF support routines for ar. */
extern bfd_boolean bfd_xcoff_ar_archive_set_magic
(bfd *, char *);
-
-/* Externally visible COFF routines. */
-
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct internal_syment;
-union internal_auxent;
-#endif
-
-extern bfd_boolean bfd_coff_set_symbol_class
- (bfd *, struct bfd_symbol *, unsigned int);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/coff-bfd.h b/bfd/coff-bfd.h
index 20c2a44e33..b88c5bee02 100644
--- a/bfd/coff-bfd.h
+++ b/bfd/coff-bfd.h
@@ -86,3 +86,6 @@ extern bfd_boolean bfd_coff_get_syment
extern bfd_boolean bfd_coff_get_auxent
(bfd *, struct bfd_symbol *, int, union internal_auxent *);
+
+extern bfd_boolean bfd_coff_set_symbol_class
+ (bfd *, struct bfd_symbol *, unsigned int);
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a2ac2b752d..45817f41ec 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * dlltool.c: Include coff-bfd.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
PR 25018
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index 85304d0c37..6c4737e709 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -240,6 +240,7 @@
#include "bucomm.h"
#include "dlltool.h"
#include "safe-ctype.h"
+#include "coff-bfd.h"
#include <time.h>
#include <assert.h>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 3:14 [binutils-gdb] coff bfd.h tidy gdb-buildbot
@ 2019-09-23 3:15 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:15 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/146
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
aa739c59d3db95d1709b0417cdf7d082bfdea911
Subject of commit:
coff bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/aa/aa739c59d3db95d1709b0417cdf7d082bfdea911/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: continue
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: p libvar
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: sharedlibrary
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: get integer valueof "mypid"
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/aa/aa739c59d3db95d1709b0417cdf7d082bfdea911//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/aa/aa739c59d3db95d1709b0417cdf7d082bfdea911//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] xcoff bfd.h tidy
@ 2019-09-23 3:27 gdb-buildbot
2019-09-23 3:26 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6ea7de3237f0780065e6c17cd2d123792410c16b ***
commit 6ea7de3237f0780065e6c17cd2d123792410c16b
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:08:33 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
xcoff bfd.h tidy
bfd/
* bfd-in.h: Move xcoff function declarations..
* xcofflink.h: ..to here, new file.
* xcofflink.c: Include xcofflink.h.
* coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func.
* bfd-in2.h: Regenerate.
ld/
* emultempl/aix.em: Include xcofflink.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 696eeacc55..3d30d759a1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move xcoff function declarations..
+ * xcofflink.h: ..to here, new file.
+ * xcofflink.c: Include xcofflink.h.
+ * coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Delete coff forward refs and move coff declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a629a8430d..45858e08b9 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -725,31 +725,3 @@ extern void bfd_free_window
(bfd_window *);
extern bfd_boolean bfd_get_file_window
(bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
-
-/* XCOFF support routines for the linker. */
-
-extern bfd_boolean bfd_xcoff_split_import_path
- (bfd *, const char *, const char **, const char **);
-extern bfd_boolean bfd_xcoff_set_archive_import_path
- (struct bfd_link_info *, bfd *, const char *);
-extern bfd_boolean bfd_xcoff_link_record_set
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
-extern bfd_boolean bfd_xcoff_import_symbol
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
- const char *, const char *, const char *, unsigned int);
-extern bfd_boolean bfd_xcoff_export_symbol
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
-extern bfd_boolean bfd_xcoff_link_count_reloc
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_size_dynamic_sections
- (bfd *, struct bfd_link_info *, const char *, const char *,
- unsigned long, unsigned long, unsigned long, bfd_boolean,
- int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
-extern bfd_boolean bfd_xcoff_link_generate_rtinit
- (bfd *, const char *, const char *, bfd_boolean);
-
-/* XCOFF support routines for ar. */
-extern bfd_boolean bfd_xcoff_ar_archive_set_magic
- (bfd *, char *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index e7537f7eaf..d78fab3b6c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -732,34 +732,6 @@ extern void bfd_free_window
(bfd_window *);
extern bfd_boolean bfd_get_file_window
(bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
-
-/* XCOFF support routines for the linker. */
-
-extern bfd_boolean bfd_xcoff_split_import_path
- (bfd *, const char *, const char **, const char **);
-extern bfd_boolean bfd_xcoff_set_archive_import_path
- (struct bfd_link_info *, bfd *, const char *);
-extern bfd_boolean bfd_xcoff_link_record_set
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
-extern bfd_boolean bfd_xcoff_import_symbol
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
- const char *, const char *, const char *, unsigned int);
-extern bfd_boolean bfd_xcoff_export_symbol
- (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
-extern bfd_boolean bfd_xcoff_link_count_reloc
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_xcoff_size_dynamic_sections
- (bfd *, struct bfd_link_info *, const char *, const char *,
- unsigned long, unsigned long, unsigned long, bfd_boolean,
- int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
-extern bfd_boolean bfd_xcoff_link_generate_rtinit
- (bfd *, const char *, const char *, bfd_boolean);
-
-/* XCOFF support routines for ar. */
-extern bfd_boolean bfd_xcoff_ar_archive_set_magic
- (bfd *, char *);
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index bdbb499a4a..86cf9e3e2a 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1169,20 +1169,6 @@ _bfd_xcoff_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
to take care that we are not generating the new form of archives
on AIX 4.2 or earlier systems. */
-/* XCOFF archives use this as a magic string. Note that both strings
- have the same length. */
-
-/* Set the magic for archive. */
-
-bfd_boolean
-bfd_xcoff_ar_archive_set_magic (bfd *abfd ATTRIBUTE_UNUSED,
- char *magic ATTRIBUTE_UNUSED)
-{
- /* Not supported yet. */
- return FALSE;
- /* bfd_xcoff_archive_set_magic (abfd, magic); */
-}
-
/* PR 21786: The PE/COFF standard does not require NUL termination for any of
the ASCII fields in the archive headers. So in order to be able to extract
numerical values we provide our own versions of strtol and strtoll which
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 52691720ae..91e0041ea1 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -28,6 +28,7 @@
#include "libcoff.h"
#include "libxcoff.h"
#include "libiberty.h"
+#include "xcofflink.h"
/* This file holds the XCOFF linker code. */
diff --git a/bfd/xcofflink.h b/bfd/xcofflink.h
new file mode 100644
index 0000000000..5d1792e962
--- /dev/null
+++ b/bfd/xcofflink.h
@@ -0,0 +1,41 @@
+/* POWER/PowerPC XCOFF linker support.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean bfd_xcoff_split_import_path
+ (bfd *, const char *, const char **, const char **);
+extern bfd_boolean bfd_xcoff_set_archive_import_path
+ (struct bfd_link_info *, bfd *, const char *);
+extern bfd_boolean bfd_xcoff_link_record_set
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
+extern bfd_boolean bfd_xcoff_import_symbol
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
+ const char *, const char *, const char *, unsigned int);
+extern bfd_boolean bfd_xcoff_export_symbol
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
+extern bfd_boolean bfd_xcoff_link_count_reloc
+ (bfd *, struct bfd_link_info *, const char *);
+extern bfd_boolean bfd_xcoff_record_link_assignment
+ (bfd *, struct bfd_link_info *, const char *);
+extern bfd_boolean bfd_xcoff_size_dynamic_sections
+ (bfd *, struct bfd_link_info *, const char *, const char *,
+ unsigned long, unsigned long, unsigned long, bfd_boolean,
+ int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean);
+extern bfd_boolean bfd_xcoff_link_generate_rtinit
+ (bfd *, const char *, const char *, bfd_boolean);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index f0fcd202e9..5a20bf06cc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/aix.em: Include xcofflink.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/armelf.em: Include elf32-arm.h.
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index 1ce8376a52..96e84f9e62 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -55,6 +55,7 @@ fragment <<EOF
#include "coff/xcoff.h"
#include "libcoff.h"
#include "libxcoff.h"
+#include "xcofflink.h"
static void gld${EMULATION_NAME}_read_file (const char *, bfd_boolean);
static void gld${EMULATION_NAME}_free (void *);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] obsoleted bfd.h tidy
@ 2019-09-23 3:37 gdb-buildbot
2019-09-23 3:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 530f61204cdba76413645c22065d453e814c7cd4 ***
commit 530f61204cdba76413645c22065d453e814c7cd4
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:09:07 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
obsoleted bfd.h tidy
* bfd-in.h (bfd_sunos_get_needed_list),
(bfd_sunos_record_link_assignment),
(bfd_sunos_size_dynamic_sections),
(bfd_i386linux_size_dynamic_sections),
(bfd_sparclinux_size_dynamic_sections): Delete obsolete decls.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3d30d759a1..57cefe1f78 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_sunos_get_needed_list),
+ (bfd_sunos_record_link_assignment),
+ (bfd_sunos_size_dynamic_sections),
+ (bfd_i386linux_size_dynamic_sections),
+ (bfd_sparclinux_size_dynamic_sections): Delete obsolete decls.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move xcoff function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 45858e08b9..a01f80d023 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -682,23 +682,6 @@ extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
(bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
char **);
-/* SunOS shared library support routines for the linker. */
-
-extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sunos_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_sunos_size_dynamic_sections
- (bfd *, struct bfd_link_info *, struct bfd_section **,
- struct bfd_section **, struct bfd_section **);
-
-/* Linux shared library support routines for the linker. */
-
-extern bfd_boolean bfd_i386linux_size_dynamic_sections
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sparclinux_size_dynamic_sections
- (bfd *, struct bfd_link_info *);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index d78fab3b6c..47df9e37f2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -689,23 +689,6 @@ extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
(bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
char **);
-/* SunOS shared library support routines for the linker. */
-
-extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sunos_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_sunos_size_dynamic_sections
- (bfd *, struct bfd_link_info *, struct bfd_section **,
- struct bfd_section **, struct bfd_section **);
-
-/* Linux shared library support routines for the linker. */
-
-extern bfd_boolean bfd_i386linux_size_dynamic_sections
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_sparclinux_size_dynamic_sections
- (bfd *, struct bfd_link_info *);
-
/* mmap hacks */
struct _bfd_window_internal;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 3:37 [binutils-gdb] obsoleted bfd.h tidy gdb-buildbot
@ 2019-09-23 3:37 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:37 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/148
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
530f61204cdba76413645c22065d453e814c7cd4
Subject of commit:
obsoleted bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/53/530f61204cdba76413645c22065d453e814c7cd4/
*** Diff to previous build ***
==============================================
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/53/530f61204cdba76413645c22065d453e814c7cd4//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/53/530f61204cdba76413645c22065d453e814c7cd4//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] cr16 bfd.h tidy
@ 2019-09-23 3:51 gdb-buildbot
2019-09-23 3:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 3:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ca05ca5e2d8c1628c37a335635dab4714f0d3bfe ***
commit ca05ca5e2d8c1628c37a335635dab4714f0d3bfe
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:09:47 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
cr16 bfd.h tidy
bfd/
* bfd-in.h: Move cr16 function declaration..
* elf32-cr16.h: ..to here, new file.
* elf32-cr16.c: Include elf32-cr16.h.
* bfd-in2.h: Regenerate.
ld/
* emultempl/cr16elf.em: Include elf32-cr16.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 57cefe1f78..0b5ef9786f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move cr16 function declaration..
+ * elf32-cr16.h: ..to here, new file.
+ * elf32-cr16.c: Include elf32-cr16.h.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_sunos_get_needed_list),
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index a01f80d023..61992feacb 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -678,10 +678,6 @@ extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
(bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
char **);
-extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 47df9e37f2..257f9307cc 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -685,10 +685,6 @@ extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
(bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
char **);
-extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index 72642e532c..1a6bbbccda 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -25,6 +25,7 @@
#include "libiberty.h"
#include "elf-bfd.h"
#include "elf/cr16.h"
+#include "elf32-cr16.h"
/* The cr16 linker needs to keep track of the number of relocs that
it decides to copy in check_relocs for each symbol. This is so
diff --git a/bfd/elf32-cr16.h b/bfd/elf32-cr16.h
new file mode 100644
index 0000000000..6680c6e27d
--- /dev/null
+++ b/bfd/elf32-cr16.h
@@ -0,0 +1,22 @@
+/* BFD back-end for National Semiconductor's CR16 ELF
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+
+extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs
+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+ char **);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5a20bf06cc..60a1fd6f02 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/cr16elf.em: Include elf32-cr16.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/aix.em: Include xcofflink.h.
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
index 9cdd356e35..eb068804f9 100644
--- a/ld/emultempl/cr16elf.em
+++ b/ld/emultempl/cr16elf.em
@@ -26,6 +26,7 @@
fragment <<EOF
#include "ldctor.h"
+#include "elf32-cr16.h"
static void check_sections (bfd *, asection *, void *);
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfin bfd.h tidy
@ 2019-09-23 4:12 gdb-buildbot
2019-09-23 4:07 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8410a6589d7fd1e02489e7ab57bda0fcba305dba ***
commit 8410a6589d7fd1e02489e7ab57bda0fcba305dba
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:10:28 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:21 2019 +0930
bfin bfd.h tidy
bfd/
* bfd-in.h: Move bfin function declaration..
* elf32-bfin.h: ..to here, new file.
* elf32-bfin.c: Include elf32-bfin.h.
* bfd-in2.h: Regenerate.
ld/
* emultempl/bfin.em: Include elf32-bfin.h.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0b5ef9786f..36a3c61974 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move bfin function declaration..
+ * elf32-bfin.h: ..to here, new file.
+ * elf32-bfin.c: Include elf32-bfin.h.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move cr16 function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 61992feacb..7cc35d9985 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -674,10 +674,6 @@ extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 257f9307cc..424c27b53d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -681,10 +681,6 @@ extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 6efee04c8b..c4f8874b24 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -25,6 +25,7 @@
#include "elf/bfin.h"
#include "dwarf2.h"
#include "hashtab.h"
+#include "elf32-bfin.h"
/* FUNCTION : bfin_pltpc_reloc
ABSTRACT : TODO : figure out how to handle pltpc relocs. */
diff --git a/bfd/elf32-bfin.h b/bfd/elf32-bfin.h
new file mode 100644
index 0000000000..1f294e8f39
--- /dev/null
+++ b/bfd/elf32-bfin.h
@@ -0,0 +1,23 @@
+/* ADI Blackfin BFD support for 32-bit ELF.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+ char **);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 60a1fd6f02..1cea946ce4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/bfin.em: Include elf32-bfin.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/cr16elf.em: Include elf32-cr16.h.
diff --git a/ld/emultempl/bfin.em b/ld/emultempl/bfin.em
index c6b3ae007d..75aa36b54a 100644
--- a/ld/emultempl/bfin.em
+++ b/ld/emultempl/bfin.em
@@ -25,6 +25,7 @@
fragment <<EOF
#include "elf-bfd.h"
+#include "elf32-bfin.h"
/* Whether to put code in Blackfin L1 SRAM. */
extern bfd_boolean elf32_bfin_code_in_l1;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] m68k bfd.h tidy
@ 2019-09-23 4:13 gdb-buildbot
2019-09-23 4:24 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a ***
commit f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:11:29 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930
m68k bfd.h tidy
bfd/
* bfd-in.h: Move m68k function declaration..
* cpu-m68k.h: ..to here, new file..
* elf32-m68k.h: ..and here, new file.
* elf32-m68k.c: Include cpu-m68k.h and elf32-m68k.h.
* bfd-in2.h: Regenerate.
ld/
* emultempl/m68kelf.em: Include elf32-m68k.h.
opcodes/
* m68k-dis.c: Include cpu-m68k.h
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 36a3c61974..fa67c70f7d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move m68k function declaration..
+ * cpu-m68k.h: ..to here, new file..
+ * elf32-m68k.h: ..and here, new file.
+ * elf32-m68k.c: Include cpu-m68k.h and elf32-m68k.h.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move bfin function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 7cc35d9985..d61467b593 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -664,16 +664,6 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
extern void _bfd_fix_excluded_sec_syms
(bfd *, struct bfd_link_info *);
-extern unsigned bfd_m68k_mach_to_features (int);
-
-extern int bfd_m68k_features_to_mach (unsigned);
-
-extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
-extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 424c27b53d..4d2707621f 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -671,16 +671,6 @@ _bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
extern void _bfd_fix_excluded_sec_syms
(bfd *, struct bfd_link_info *);
-extern unsigned bfd_m68k_mach_to_features (int);
-
-extern int bfd_m68k_features_to_mach (unsigned);
-
-extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
- (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
- char **);
-
-extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
-
/* mmap hacks */
struct _bfd_window_internal;
diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c
index b3d3358ede..bfd32e3b20 100644
--- a/bfd/cpu-m68k.c
+++ b/bfd/cpu-m68k.c
@@ -23,6 +23,7 @@
#include "bfd.h"
#include "libbfd.h"
#include "opcode/m68k.h"
+#include "cpu-m68k.h"
static const bfd_arch_info_type *
bfd_m68k_compatible (const bfd_arch_info_type *a,
diff --git a/bfd/cpu-m68k.h b/bfd/cpu-m68k.h
new file mode 100644
index 0000000000..aed97db210
--- /dev/null
+++ b/bfd/cpu-m68k.h
@@ -0,0 +1,23 @@
+/* BFD library support routines.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern unsigned bfd_m68k_mach_to_features (int);
+
+extern int bfd_m68k_features_to_mach (unsigned);
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 559578d818..9b8652f67c 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -25,6 +25,8 @@
#include "elf-bfd.h"
#include "elf/m68k.h"
#include "opcode/m68k.h"
+#include "cpu-m68k.h"
+#include "elf32-m68k.h"
static bfd_boolean
elf_m68k_discard_copies (struct elf_link_hash_entry *, void *);
diff --git a/bfd/elf32-m68k.h b/bfd/elf32-m68k.h
new file mode 100644
index 0000000000..63ce667dc2
--- /dev/null
+++ b/bfd/elf32-m68k.h
@@ -0,0 +1,25 @@
+/* Motorola 68k series support for 32-bit ELF
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
+ (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
+ char **);
+
+extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 1cea946ce4..07e4611e00 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * emultempl/m68kelf.em: Include elf32-m68k.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/bfin.em: Include elf32-bfin.h.
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
index c8d9eea934..570891f883 100644
--- a/ld/emultempl/m68kelf.em
+++ b/ld/emultempl/m68kelf.em
@@ -45,6 +45,8 @@ esac
fragment <<EOF
+#include "elf32-m68k.h"
+
#define GOT_HANDLING_SINGLE (0)
#define GOT_HANDLING_NEGATIVE (1)
#define GOT_HANDLING_MULTIGOT (2)
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 91b084ef8a..ef50402da8 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * m68k-dis.c: Include cpu-m68k.h
+
2019-09-23 Alan Modra <amodra@gmail.com>
* mips-dis.c: Include elfxx-mips.h. Move "elf-bfd.h" and
diff --git a/opcodes/m68k-dis.c b/opcodes/m68k-dis.c
index 45af5ff7e2..7584541402 100644
--- a/opcodes/m68k-dis.c
+++ b/opcodes/m68k-dis.c
@@ -23,7 +23,7 @@
#include "floatformat.h"
#include "libiberty.h"
#include "opintl.h"
-
+#include "cpu-m68k.h"
#include "opcode/m68k.h"
/* Local function prototypes. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 4:13 [binutils-gdb] m68k bfd.h tidy gdb-buildbot
@ 2019-09-23 4:24 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:24 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/151
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a
Subject of commit:
m68k bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f5/f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
PASS -> FAIL: gdb.server/stop-reply-no-thread.exp: continue to main
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f5/f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/f5/f5c5b7c124934b464b67c7c3c53a1c62a7f4e98a//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] elf bfd.h tidy
@ 2019-09-23 4:36 gdb-buildbot
2019-09-23 4:27 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0b4453c791106ab62011b59f97611f9ff21cda9f ***
commit 0b4453c791106ab62011b59f97611f9ff21cda9f
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:12:31 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930
elf bfd.h tidy
bfd/
* bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
Move most other elf declarations..
* elf-bfd.h: ..to here.
* bfd-in2.h: Regenerate.
include/
* bfdlink.h (enum notice_asneeded_action): Define.
ld/
* deffilep.y: Include bfdlink.h.
* ldelf.c: Likewise.
* ldelfgen.c: Likewise.
* ldver.c: Likewise.
* mri.c: Likewise.
* emultempl/irix.em: Don't include ld.h, ldmain.h, libiberty.h.
Comment.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fa67c70f7d..62115f25c6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
+ Move most other elf declarations..
+ * elf-bfd.h: ..to here.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move m68k function declaration..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index d61467b593..de8479cf72 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -570,72 +570,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
/* Externally visible ELF routines. */
-struct bfd_link_needed_list
-{
- struct bfd_link_needed_list *next;
- bfd *by;
- const char *name;
-};
-
-enum dynamic_lib_link_class {
- DYN_NORMAL = 0,
- DYN_AS_NEEDED = 1,
- DYN_DT_NEEDED = 2,
- DYN_NO_ADD_NEEDED = 4,
- DYN_NO_NEEDED = 8
-};
-
-enum notice_asneeded_action {
- notice_as_needed,
- notice_not_needed,
- notice_needed
-};
-
-extern bfd_boolean bfd_elf_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
- bfd_boolean);
-extern struct bfd_link_needed_list *bfd_elf_get_needed_list
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_get_bfd_needed_list
- (bfd *, struct bfd_link_needed_list **);
-extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
- const char *, bfd_vma);
-extern bfd_boolean bfd_elf_size_dynamic_sections
- (bfd *, const char *, const char *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct bfd_section **);
-extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
- (bfd *, struct bfd_link_info *);
-extern void bfd_elf_set_dt_needed_name
- (bfd *, const char *);
-extern const char *bfd_elf_get_dt_soname
- (bfd *);
-extern void bfd_elf_set_dyn_lib_class
- (bfd *, enum dynamic_lib_link_class);
-extern int bfd_elf_get_dyn_lib_class
- (bfd *);
-extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
- (bfd *, struct bfd_link_info *);
-extern int bfd_elf_discard_info
- (bfd *, struct bfd_link_info *);
-extern unsigned int _bfd_elf_default_action_discarded
- (struct bfd_section *);
-
-/* Return an upper bound on the number of bytes required to store a
- copy of ABFD's program header table entries. Return -1 if an error
- occurs; bfd_get_error will return an appropriate code. */
-extern long bfd_get_elf_phdr_upper_bound
- (bfd *abfd);
-
-/* Copy ABFD's program header table entries to *PHDRS. The entries
- will be stored as an array of Elf_Internal_Phdr structures, as
- defined in include/elf/internal.h. To find out how large the
- buffer needs to be, call bfd_get_elf_phdr_upper_bound.
-
- Return the number of program header table entries read, or -1 if an
- error occurs; bfd_get_error will return an appropriate code. */
-extern int bfd_get_elf_phdrs
- (bfd *abfd, void *phdrs);
-
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote
memory based on the ELF file header at EHDR_VMA and the ELF program
@@ -655,9 +589,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len));
-extern struct bfd_section *_bfd_elf_tls_setup
- (bfd *, struct bfd_link_info *);
-
extern struct bfd_section *
_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4d2707621f..30b2685a83 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -577,72 +577,6 @@ extern bfd_boolean bfd_ecoff_write_accumulated_debug
/* Externally visible ELF routines. */
-struct bfd_link_needed_list
-{
- struct bfd_link_needed_list *next;
- bfd *by;
- const char *name;
-};
-
-enum dynamic_lib_link_class {
- DYN_NORMAL = 0,
- DYN_AS_NEEDED = 1,
- DYN_DT_NEEDED = 2,
- DYN_NO_ADD_NEEDED = 4,
- DYN_NO_NEEDED = 8
-};
-
-enum notice_asneeded_action {
- notice_as_needed,
- notice_not_needed,
- notice_needed
-};
-
-extern bfd_boolean bfd_elf_record_link_assignment
- (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
- bfd_boolean);
-extern struct bfd_link_needed_list *bfd_elf_get_needed_list
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_get_bfd_needed_list
- (bfd *, struct bfd_link_needed_list **);
-extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
- const char *, bfd_vma);
-extern bfd_boolean bfd_elf_size_dynamic_sections
- (bfd *, const char *, const char *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct bfd_section **);
-extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
- (bfd *, struct bfd_link_info *);
-extern void bfd_elf_set_dt_needed_name
- (bfd *, const char *);
-extern const char *bfd_elf_get_dt_soname
- (bfd *);
-extern void bfd_elf_set_dyn_lib_class
- (bfd *, enum dynamic_lib_link_class);
-extern int bfd_elf_get_dyn_lib_class
- (bfd *);
-extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
- (bfd *, struct bfd_link_info *);
-extern int bfd_elf_discard_info
- (bfd *, struct bfd_link_info *);
-extern unsigned int _bfd_elf_default_action_discarded
- (struct bfd_section *);
-
-/* Return an upper bound on the number of bytes required to store a
- copy of ABFD's program header table entries. Return -1 if an error
- occurs; bfd_get_error will return an appropriate code. */
-extern long bfd_get_elf_phdr_upper_bound
- (bfd *abfd);
-
-/* Copy ABFD's program header table entries to *PHDRS. The entries
- will be stored as an array of Elf_Internal_Phdr structures, as
- defined in include/elf/internal.h. To find out how large the
- buffer needs to be, call bfd_get_elf_phdr_upper_bound.
-
- Return the number of program header table entries read, or -1 if an
- error occurs; bfd_get_error will return an appropriate code. */
-extern int bfd_get_elf_phdrs
- (bfd *abfd, void *phdrs);
-
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote
memory based on the ELF file header at EHDR_VMA and the ELF program
@@ -662,9 +596,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len));
-extern struct bfd_section *_bfd_elf_tls_setup
- (bfd *, struct bfd_link_info *);
-
extern struct bfd_section *
_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 4458ff7b2a..0a83c17332 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -529,6 +529,13 @@ struct elf_sym_strtab
unsigned long destshndx_index;
};
+struct bfd_link_needed_list
+{
+ struct bfd_link_needed_list *next;
+ bfd *by;
+ const char *name;
+};
+
/* ELF linker hash table. */
struct elf_link_hash_table
@@ -1828,6 +1835,14 @@ typedef struct elf_section_list
struct elf_section_list * next;
} elf_section_list;
+enum dynamic_lib_link_class {
+ DYN_NORMAL = 0,
+ DYN_AS_NEEDED = 1,
+ DYN_DT_NEEDED = 2,
+ DYN_NO_ADD_NEEDED = 4,
+ DYN_NO_NEEDED = 8
+};
+
/* Some private data is stashed away for future use using the tdata pointer
in the bfd structure. */
@@ -2287,6 +2302,37 @@ extern file_ptr _bfd_elf_assign_file_position_for_section
extern bfd_boolean _bfd_elf_validate_reloc
(bfd *, arelent *);
+extern bfd_boolean bfd_elf_record_link_assignment
+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
+ bfd_boolean);
+extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
+ const char *, bfd_vma);
+extern bfd_boolean bfd_elf_size_dynamic_sections
+ (bfd *, const char *, const char *, const char *, const char *, const char *,
+ const char * const *, struct bfd_link_info *, struct bfd_section **);
+extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
+ (bfd *, struct bfd_link_info *);
+extern bfd_boolean bfd_elf_get_bfd_needed_list
+ (bfd *, struct bfd_link_needed_list **);
+extern struct bfd_link_needed_list *bfd_elf_get_needed_list
+ (bfd *, struct bfd_link_info *);
+extern void bfd_elf_set_dt_needed_name
+ (bfd *, const char *);
+extern const char *bfd_elf_get_dt_soname
+ (bfd *);
+extern void bfd_elf_set_dyn_lib_class
+ (bfd *, enum dynamic_lib_link_class);
+extern int bfd_elf_get_dyn_lib_class
+ (bfd *);
+extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
+ (bfd *, struct bfd_link_info *);
+extern int bfd_elf_discard_info
+ (bfd *, struct bfd_link_info *);
+extern unsigned int _bfd_elf_default_action_discarded
+ (struct bfd_section *);
+extern struct bfd_section *_bfd_elf_tls_setup
+ (bfd *, struct bfd_link_info *);
+
extern bfd_boolean _bfd_elf_link_create_dynamic_sections
(bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_omit_section_dynsym_default
@@ -2557,6 +2603,22 @@ extern bfd_boolean _bfd_elf_ppc_set_arch (bfd *);
extern bfd_boolean _bfd_elf_ppc_merge_fp_attributes
(bfd *, struct bfd_link_info *);
+/* Return an upper bound on the number of bytes required to store a
+ copy of ABFD's program header table entries. Return -1 if an error
+ occurs; bfd_get_error will return an appropriate code. */
+extern long bfd_get_elf_phdr_upper_bound
+ (bfd *abfd);
+
+/* Copy ABFD's program header table entries to *PHDRS. The entries
+ will be stored as an array of Elf_Internal_Phdr structures, as
+ defined in include/elf/internal.h. To find out how large the
+ buffer needs to be, call bfd_get_elf_phdr_upper_bound.
+
+ Return the number of program header table entries read, or -1 if an
+ error occurs; bfd_get_error will return an appropriate code. */
+extern int bfd_get_elf_phdrs
+ (bfd *abfd, void *phdrs);
+
/* Exported interface for writing elf corefile notes. */
extern char *elfcore_write_note
(bfd *, char *, int *, const char *, int, const void *, int);
diff --git a/include/ChangeLog b/include/ChangeLog
index c725bfbbc7..580eeb0047 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfdlink.h (enum notice_asneeded_action): Define.
+
2019-09-17 Maxim Blinov <maxim.blinov@embecosm.com>
* opcode/riscv.h (riscv_insn_class): New enum.
diff --git a/include/bfdlink.h b/include/bfdlink.h
index c35469dd11..bb7909a9e2 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -42,6 +42,12 @@ enum bfd_link_discard
discard_all /* Discard all locals. */
};
+enum notice_asneeded_action {
+ notice_as_needed,
+ notice_not_needed,
+ notice_needed
+};
+
/* Whether to generate ELF common symbols with the STT_COMMON type
during a relocatable link. */
enum bfd_link_elf_stt_common
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 07e4611e00..fe27434bf2 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * deffilep.y: Include bfdlink.h.
+ * ldelf.c: Likewise.
+ * ldelfgen.c: Likewise.
+ * ldver.c: Likewise.
+ * mri.c: Likewise.
+ * emultempl/irix.em: Don't include ld.h, ldmain.h, libiberty.h.
+ Comment.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* emultempl/m68kelf.em: Include elf32-m68k.h.
diff --git a/ld/deffilep.y b/ld/deffilep.y
index 7f74157065..92116e68a8 100644
--- a/ld/deffilep.y
+++ b/ld/deffilep.y
@@ -23,6 +23,7 @@
#include "libiberty.h"
#include "safe-ctype.h"
#include "bfd.h"
+#include "bfdlink.h"
#include "ld.h"
#include "ldmisc.h"
#include "deffile.h"
diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em
index ddd5fd69e5..e52c4a2d69 100644
--- a/ld/emultempl/irix.em
+++ b/ld/emultempl/irix.em
@@ -19,11 +19,10 @@
# MA 02110-1301, USA.
#
-fragment <<EOF
+# This file is sourced from elf.em, and defines extra irix specific
+# functions.
-#include "ld.h"
-#include "ldmain.h"
-#include "libiberty.h"
+fragment <<EOF
/* The native IRIX linker will always create a DT_SONAME for shared objects.
While this shouldn't really be necessary for ABI conformance, some versions
diff --git a/ld/ldelf.c b/ld/ldelf.c
index e43d33d432..3d12e3aa70 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -23,6 +23,7 @@
#include "libiberty.h"
#include "filenames.h"
#include "safe-ctype.h"
+#include "bfdlink.h"
#include "ld.h"
#include "ldmain.h"
#include "ldmisc.h"
diff --git a/ld/ldelfgen.c b/ld/ldelfgen.c
index 98bcecd89f..142a669db9 100644
--- a/ld/ldelfgen.c
+++ b/ld/ldelfgen.c
@@ -20,6 +20,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "bfdlink.h"
#include "ld.h"
#include "ldmain.h"
#include "ldmisc.h"
diff --git a/ld/ldver.c b/ld/ldver.c
index fb2e52f4c5..7be0242ab2 100644
--- a/ld/ldver.c
+++ b/ld/ldver.c
@@ -21,7 +21,7 @@
#include "sysdep.h"
#include "bfd.h"
#include "bfdver.h"
-
+#include "bfdlink.h"
#include "ld.h"
#include "ldver.h"
#include "ldexp.h"
diff --git a/ld/mri.c b/ld/mri.c
index 37821e8f4c..7f8d7064e8 100644
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -25,6 +25,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "bfdlink.h"
#include "ld.h"
#include "ldexp.h"
#include "ldlang.h"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] ecoff bfd.h tidy
@ 2019-09-23 4:36 gdb-buildbot
2019-09-23 4:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ba9378a2ad073524f20e9637dac8369ef06c639 ***
commit 0ba9378a2ad073524f20e9637dac8369ef06c639
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:13:26 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930
ecoff bfd.h tidy
bfd/
* bfd-in.h: Move ecoff function declarations..
* ecoff-bfd.h: ..to here, new file.
* ecoff.c: Include ecoff-bfd.h.
* ecofflink.c: Likewise.
* elf64-alpha.c: Likewise.
* elfxx-mips.c: Likewise.
* bfd-in2.h: Regenerate.
gas/
* config/obj-ecoff.c: Include ecoff-bfd.h.
* config/obj-elf.c: Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 62115f25c6..923adb4ea6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h: Move ecoff function declarations..
+ * ecoff-bfd.h: ..to here, new file.
+ * ecoff.c: Include ecoff-bfd.h.
+ * ecofflink.c: Likewise.
+ * elf64-alpha.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * bfd-in2.h: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h (enum notice_asneeded_action): Move to bfdlink.h.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index de8479cf72..4d2f09f718 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -526,48 +526,6 @@ extern bfd_boolean _bfd_handle_already_linked
(struct bfd_section *, struct bfd_section_already_linked *,
struct bfd_link_info *);
\f
-/* Externally visible ECOFF routines. */
-
-extern bfd_boolean bfd_ecoff_set_gp_value
- (bfd *abfd, bfd_vma gp_value);
-extern bfd_boolean bfd_ecoff_set_regmasks
- (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
- unsigned long *cprmask);
-extern void *bfd_ecoff_debug_init
- (bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern void bfd_ecoff_debug_free
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct ecoff_debug_info *input_debug,
- const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate_other
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_externals
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
- bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
- void (*set_index) (struct bfd_symbol *, bfd_size_type));
-extern bfd_boolean bfd_ecoff_debug_one_external
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, const char *name,
- struct ecoff_extr *esym);
-extern bfd_size_type bfd_ecoff_debug_size
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap);
-extern bfd_boolean bfd_ecoff_write_debug
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, file_ptr where);
-extern bfd_boolean bfd_ecoff_write_accumulated_debug
- (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- struct bfd_link_info *info, file_ptr where);
-
/* Externally visible ELF routines. */
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 30b2685a83..16fa462430 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -533,48 +533,6 @@ extern bfd_boolean _bfd_handle_already_linked
(struct bfd_section *, struct bfd_section_already_linked *,
struct bfd_link_info *);
\f
-/* Externally visible ECOFF routines. */
-
-extern bfd_boolean bfd_ecoff_set_gp_value
- (bfd *abfd, bfd_vma gp_value);
-extern bfd_boolean bfd_ecoff_set_regmasks
- (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
- unsigned long *cprmask);
-extern void *bfd_ecoff_debug_init
- (bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern void bfd_ecoff_debug_free
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct ecoff_debug_info *input_debug,
- const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_accumulate_other
- (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct bfd_link_info *);
-extern bfd_boolean bfd_ecoff_debug_externals
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
- bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
- void (*set_index) (struct bfd_symbol *, bfd_size_type));
-extern bfd_boolean bfd_ecoff_debug_one_external
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, const char *name,
- struct ecoff_extr *esym);
-extern bfd_size_type bfd_ecoff_debug_size
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap);
-extern bfd_boolean bfd_ecoff_write_debug
- (bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, file_ptr where);
-extern bfd_boolean bfd_ecoff_write_accumulated_debug
- (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- struct bfd_link_info *info, file_ptr where);
-
/* Externally visible ELF routines. */
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
diff --git a/bfd/ecoff-bfd.h b/bfd/ecoff-bfd.h
new file mode 100644
index 0000000000..00ecf010f4
--- /dev/null
+++ b/bfd/ecoff-bfd.h
@@ -0,0 +1,59 @@
+/* Externally visible ECOFF routines.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+extern bfd_boolean bfd_ecoff_set_gp_value
+ (bfd *abfd, bfd_vma gp_value);
+extern bfd_boolean bfd_ecoff_set_regmasks
+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
+ unsigned long *cprmask);
+extern void *bfd_ecoff_debug_init
+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
+extern void bfd_ecoff_debug_free
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_accumulate
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct ecoff_debug_info *input_debug,
+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_accumulate_other
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct bfd_link_info *);
+extern bfd_boolean bfd_ecoff_debug_externals
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
+ bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
+ void (*set_index) (struct bfd_symbol *, bfd_size_type));
+extern bfd_boolean bfd_ecoff_debug_one_external
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, const char *name,
+ struct ecoff_extr *esym);
+extern bfd_size_type bfd_ecoff_debug_size
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap);
+extern bfd_boolean bfd_ecoff_write_debug
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, file_ptr where);
+extern bfd_boolean bfd_ecoff_write_accumulated_debug
+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap,
+ struct bfd_link_info *info, file_ptr where);
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 30adba0e6d..be3d42e305 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -24,6 +24,7 @@
#include "bfd.h"
#include "bfdlink.h"
#include "libbfd.h"
+#include "ecoff-bfd.h"
#include "aout/ar.h"
#include "aout/stab_gnu.h"
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c
index 47e210b56e..1345e917ac 100644
--- a/bfd/ecofflink.c
+++ b/bfd/ecofflink.c
@@ -23,6 +23,7 @@
#include "bfd.h"
#include "bfdlink.h"
#include "libbfd.h"
+#include "ecoff-bfd.h"
#include "objalloc.h"
#include "aout/stab_gnu.h"
#include "coff/internal.h"
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 84ec83b74a..3ea1289157 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -27,6 +27,7 @@
#include "bfd.h"
#include "libbfd.h"
#include "elf-bfd.h"
+#include "ecoff-bfd.h"
#include "elf/alpha.h"
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 496e42e7c5..3462c8b151 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -33,6 +33,7 @@
#include "libbfd.h"
#include "libiberty.h"
#include "elf-bfd.h"
+#include "ecoff-bfd.h"
#include "elfxx-mips.h"
#include "elf/mips.h"
#include "elf-vxworks.h"
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cab918a49c..764789bca0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * config/obj-ecoff.c: Include ecoff-bfd.h.
+ * config/obj-elf.c: Likewise.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* config/tc-arm.c: Include cpu-arm.h.
diff --git a/gas/config/obj-ecoff.c b/gas/config/obj-ecoff.c
index a5616f388e..d8e4f400d7 100644
--- a/gas/config/obj-ecoff.c
+++ b/gas/config/obj-ecoff.c
@@ -25,6 +25,7 @@
#include "coff/internal.h"
#include "bfd/libcoff.h"
#include "bfd/libecoff.h"
+#include "bfd/ecoff-bfd.h"
/* Almost all of the ECOFF support is actually in ecoff.c in the main
gas directory. This file mostly just arranges to call that one at
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 56293584a0..ee93628d70 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -33,6 +33,7 @@
#ifdef NEED_ECOFF_DEBUG
#include "ecoff.h"
+#include "bfd/ecoff-bfd.h"
#endif
#ifdef TC_ALPHA
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] linker bfd.h tidy
@ 2019-09-23 4:45 gdb-buildbot
2019-09-23 4:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 640197ac27920a9f0a23283a575dc71f74e8b8ab ***
commit 640197ac27920a9f0a23283a575dc71f74e8b8ab
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:14:20 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930
linker bfd.h tidy
bfd/
* bfd-in.h (bfd_symbol, bfd_section_already_linked),
(bfd_elf_version_tree): Delete forward declarations.
Move other forward decls and remaining elf function decl later.
(bfd_section_already_linked_table_init),
(bfd_section_already_linked_table_free),
(_bfd_handle_already_linked, _bfd_nearby_section),
(_bfd_fix_excluded_sec_syms): Move to bfdlink.h.
include/
* bfdlink.h (struct bfd_section_already_linked): Forward declare.
(bfd_section_already_linked_table_init),
(bfd_section_already_linked_table_free),
(_bfd_handle_already_linked, _bfd_nearby_section),
(_bfd_fix_excluded_sec_syms): Declare.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 923adb4ea6..43544743ce 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfd-in.h (bfd_symbol, bfd_section_already_linked),
+ (bfd_elf_version_tree): Delete forward declarations.
+ Move other forward decls and remaining elf function decl later.
+ (bfd_section_already_linked_table_init),
+ (bfd_section_already_linked_table_free),
+ (_bfd_handle_already_linked, _bfd_nearby_section),
+ (_bfd_fix_excluded_sec_syms): Move to bfdlink.h.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h: Move ecoff function declarations..
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 4d2f09f718..d81cbb791f 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -509,49 +509,6 @@ void bfd_putl16 (bfd_vma, void *);
bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct ecoff_debug_info;
-struct ecoff_debug_swap;
-struct ecoff_extr;
-struct bfd_symbol;
-struct bfd_link_info;
-struct bfd_link_hash_entry;
-struct bfd_section_already_linked;
-struct bfd_elf_version_tree;
-#endif
-
-extern bfd_boolean bfd_section_already_linked_table_init (void);
-extern void bfd_section_already_linked_table_free (void);
-extern bfd_boolean _bfd_handle_already_linked
- (struct bfd_section *, struct bfd_section_already_linked *,
- struct bfd_link_info *);
-\f
-/* Externally visible ELF routines. */
-
-/* Create a new BFD as if by bfd_openr. Rather than opening a file,
- reconstruct an ELF file by reading the segments out of remote
- memory based on the ELF file header at EHDR_VMA and the ELF program
- headers it points to. If non-zero, SIZE is the known extent of the
- object. If not null, *LOADBASEP is filled in with the difference
- between the VMAs from which the segments were read, and the VMAs
- the file headers (and hence BFD's idea of each section's VMA) put
- them at.
-
- The function TARGET_READ_MEMORY is called to copy LEN bytes from
- the remote memory at target address VMA into the local buffer at
- MYADDR; it should return zero on success or an `errno' code on
- failure. TEMPL must be a BFD for a target with the word size and
- byte order found in the remote memory. */
-extern bfd *bfd_elf_bfd_from_remote_memory
- (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
- bfd_size_type len));
-
-extern struct bfd_section *
-_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
-
-extern void _bfd_fix_excluded_sec_syms
- (bfd *, struct bfd_link_info *);
/* mmap hacks */
@@ -579,3 +536,31 @@ extern void bfd_free_window
(bfd_window *);
extern bfd_boolean bfd_get_file_window
(bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
+\f
+/* Externally visible ELF routines. */
+
+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
+ reconstruct an ELF file by reading the segments out of remote
+ memory based on the ELF file header at EHDR_VMA and the ELF program
+ headers it points to. If non-zero, SIZE is the known extent of the
+ object. If not null, *LOADBASEP is filled in with the difference
+ between the VMAs from which the segments were read, and the VMAs
+ the file headers (and hence BFD's idea of each section's VMA) put
+ them at.
+
+ The function TARGET_READ_MEMORY is called to copy LEN bytes from
+ the remote memory at target address VMA into the local buffer at
+ MYADDR; it should return zero on success or an `errno' code on
+ failure. TEMPL must be a BFD for a target with the word size and
+ byte order found in the remote memory. */
+extern bfd *bfd_elf_bfd_from_remote_memory
+ (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
+ bfd_size_type len));
+
+/* Forward declarations. */
+struct ecoff_debug_info;
+struct ecoff_debug_swap;
+struct ecoff_extr;
+struct bfd_link_info;
+struct bfd_link_hash_entry;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 16fa462430..1c468dc68b 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -516,49 +516,6 @@ void bfd_putl16 (bfd_vma, void *);
bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
-#if defined(__STDC__) || defined(ALMOST_STDC)
-struct ecoff_debug_info;
-struct ecoff_debug_swap;
-struct ecoff_extr;
-struct bfd_symbol;
-struct bfd_link_info;
-struct bfd_link_hash_entry;
-struct bfd_section_already_linked;
-struct bfd_elf_version_tree;
-#endif
-
-extern bfd_boolean bfd_section_already_linked_table_init (void);
-extern void bfd_section_already_linked_table_free (void);
-extern bfd_boolean _bfd_handle_already_linked
- (struct bfd_section *, struct bfd_section_already_linked *,
- struct bfd_link_info *);
-\f
-/* Externally visible ELF routines. */
-
-/* Create a new BFD as if by bfd_openr. Rather than opening a file,
- reconstruct an ELF file by reading the segments out of remote
- memory based on the ELF file header at EHDR_VMA and the ELF program
- headers it points to. If non-zero, SIZE is the known extent of the
- object. If not null, *LOADBASEP is filled in with the difference
- between the VMAs from which the segments were read, and the VMAs
- the file headers (and hence BFD's idea of each section's VMA) put
- them at.
-
- The function TARGET_READ_MEMORY is called to copy LEN bytes from
- the remote memory at target address VMA into the local buffer at
- MYADDR; it should return zero on success or an `errno' code on
- failure. TEMPL must be a BFD for a target with the word size and
- byte order found in the remote memory. */
-extern bfd *bfd_elf_bfd_from_remote_memory
- (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
- bfd_size_type len));
-
-extern struct bfd_section *
-_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
-
-extern void _bfd_fix_excluded_sec_syms
- (bfd *, struct bfd_link_info *);
/* mmap hacks */
@@ -586,6 +543,34 @@ extern void bfd_free_window
(bfd_window *);
extern bfd_boolean bfd_get_file_window
(bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
+\f
+/* Externally visible ELF routines. */
+
+/* Create a new BFD as if by bfd_openr. Rather than opening a file,
+ reconstruct an ELF file by reading the segments out of remote
+ memory based on the ELF file header at EHDR_VMA and the ELF program
+ headers it points to. If non-zero, SIZE is the known extent of the
+ object. If not null, *LOADBASEP is filled in with the difference
+ between the VMAs from which the segments were read, and the VMAs
+ the file headers (and hence BFD's idea of each section's VMA) put
+ them at.
+
+ The function TARGET_READ_MEMORY is called to copy LEN bytes from
+ the remote memory at target address VMA into the local buffer at
+ MYADDR; it should return zero on success or an `errno' code on
+ failure. TEMPL must be a BFD for a target with the word size and
+ byte order found in the remote memory. */
+extern bfd *bfd_elf_bfd_from_remote_memory
+ (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
+ bfd_size_type len));
+
+/* Forward declarations. */
+struct ecoff_debug_info;
+struct ecoff_debug_swap;
+struct ecoff_extr;
+struct bfd_link_info;
+struct bfd_link_hash_entry;
/* Extracted from init.c. */
unsigned int bfd_init (void);
diff --git a/include/ChangeLog b/include/ChangeLog
index 580eeb0047..85405429e5 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * bfdlink.h (struct bfd_section_already_linked): Forward declare.
+ (bfd_section_already_linked_table_init),
+ (bfd_section_already_linked_table_free),
+ (_bfd_handle_already_linked, _bfd_nearby_section),
+ (_bfd_fix_excluded_sec_syms): Declare.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfdlink.h (enum notice_asneeded_action): Define.
diff --git a/include/bfdlink.h b/include/bfdlink.h
index bb7909a9e2..68fc17f55e 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -858,6 +858,20 @@ struct bfd_link_order_reloc
/* Allocate a new link_order for a section. */
extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *);
+struct bfd_section_already_linked;
+
+extern bfd_boolean bfd_section_already_linked_table_init (void);
+extern void bfd_section_already_linked_table_free (void);
+extern bfd_boolean _bfd_handle_already_linked
+ (struct bfd_section *, struct bfd_section_already_linked *,
+ struct bfd_link_info *);
+
+extern struct bfd_section *_bfd_nearby_section
+ (bfd *, struct bfd_section *, bfd_vma);
+
+extern void _bfd_fix_excluded_sec_syms
+ (bfd *, struct bfd_link_info *);
+
/* These structures are used to describe version information for the
ELF linker. These structures could be manipulated entirely inside
BFD, but it would be a pain. Instead, the regular linker sets up
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 4:45 [binutils-gdb] linker bfd.h tidy gdb-buildbot
@ 2019-09-23 4:47 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 4:47 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/154
Author:
Alan Modra <amodra@gmail.com>
Commit tested:
640197ac27920a9f0a23283a575dc71f74e8b8ab
Subject of commit:
linker bfd.h tidy
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/64/640197ac27920a9f0a23283a575dc71f74e8b8ab/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=2: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=4: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=8: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/64/640197ac27920a9f0a23283a575dc71f74e8b8ab//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/64/640197ac27920a9f0a23283a575dc71f74e8b8ab//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] bfd Makefile update
@ 2019-09-23 5:57 gdb-buildbot
2019-09-23 5:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 5:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b06252c2b1972d31d3e263ba4a7e79aecec73255 ***
commit b06252c2b1972d31d3e263ba4a7e79aecec73255
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 10:15:02 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 10:27:22 2019 +0930
bfd Makefile update
* Makefile.am (SOURCE_HFILES): Add many missing .h files.
* Makefile.in: Regenerate.
* po/SRC-POTFILES.in: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 43544743ce..1da5d0d48c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * Makefile.am (SOURCE_HFILES): Add many missing .h files.
+ * Makefile.in: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_symbol, bfd_section_already_linked),
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 4703955ee4..f31a734599 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -684,19 +684,35 @@ BUILD_CFILES = \
CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
-## This is a list of all .h files which are in the source tree.
+## This is a list of all .h files in the source tree minus those that
+## are processed to produce other .h files
SOURCE_HFILES = \
- aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
- elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \
- elf64-hppa.h elfcode.h elfcore.h \
+ aout-target.h aoutx.h arc-got.h arc-plt.h \
+ coff-arm.h coff-bfd.h coffcode.h coffswap.h \
+ cpu-aarch64.h cpu-arm.h cpu-h8300.h cpu-m68k.h \
+ ecoff-bfd.h ecoffswap.h \
+ elf32-arm.h elf32-avr.h elf32-bfin.h elf32-cr16.h elf32-csky.h \
+ elf32-dlx.h elf32-hppa.h elf32-m68hc1x.h elf32-m68k.h \
+ elf32-metag.h elf32-nds32.h elf32-nios2.h elf32-ppc.h \
+ elf32-rx.h elf32-score.h elf32-sh-relocs.h elf32-spu.h \
+ elf32-tic6x.h elf32-tilegx.h elf32-tilepro.h elf32-v850.h \
+ elf64-hppa.h elf64-ppc.h elf64-tilegx.h \
+ elf-bfd.h elfcode.h elfcore.h elf-hppa.h elf-linker-x86.h \
+ elf-linux-core.h elf-nacl.h elf-s390.h elf-vxworks.h \
+ elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \
+ elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h \
genlink.h go32stub.h \
libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
- libpei.h libxcoff.h mach-o.h \
+ libpei.h libxcoff.h \
+ mach-o.h \
netbsd.h ns32k.h \
- pef.h pef-traceback.h peicode.h som.h version.h \
- vms.h xsym.h
+ pef.h pef-traceback.h peicode.h plugin.h \
+ som.h sysdep.h \
+ version.h vms.h \
+ wasm-module.h \
+ xcofflink.h xsym.h
-## ... and all .h files which are in the build tree.
+## ... and .h files which are in the build tree, minus config.h and bfd.h
BUILD_HFILES = \
bfdver.h elf32-target.h elf64-target.h targmatch.h bfd_stdint.h
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 9c14721fd8..c1cd371852 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -1108,15 +1108,30 @@ BUILD_CFILES = \
CFILES = $(SOURCE_CFILES) $(BUILD_CFILES)
SOURCE_HFILES = \
- aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \
- elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \
- elf64-hppa.h elfcode.h elfcore.h \
+ aout-target.h aoutx.h arc-got.h arc-plt.h \
+ coff-arm.h coff-bfd.h coffcode.h coffswap.h \
+ cpu-aarch64.h cpu-arm.h cpu-h8300.h cpu-m68k.h \
+ ecoff-bfd.h ecoffswap.h \
+ elf32-arm.h elf32-avr.h elf32-bfin.h elf32-cr16.h elf32-csky.h \
+ elf32-dlx.h elf32-hppa.h elf32-m68hc1x.h elf32-m68k.h \
+ elf32-metag.h elf32-nds32.h elf32-nios2.h elf32-ppc.h \
+ elf32-rx.h elf32-score.h elf32-sh-relocs.h elf32-spu.h \
+ elf32-tic6x.h elf32-tilegx.h elf32-tilepro.h elf32-v850.h \
+ elf64-hppa.h elf64-ppc.h elf64-tilegx.h \
+ elf-bfd.h elfcode.h elfcore.h elf-hppa.h elf-linker-x86.h \
+ elf-linux-core.h elf-nacl.h elf-s390.h elf-vxworks.h \
+ elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \
+ elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h \
genlink.h go32stub.h \
libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \
- libpei.h libxcoff.h mach-o.h \
+ libpei.h libxcoff.h \
+ mach-o.h \
netbsd.h ns32k.h \
- pef.h pef-traceback.h peicode.h som.h version.h \
- vms.h xsym.h
+ pef.h pef-traceback.h peicode.h plugin.h \
+ som.h sysdep.h \
+ version.h vms.h \
+ wasm-module.h \
+ xcofflink.h xsym.h
BUILD_HFILES = \
bfdver.h elf32-target.h elf64-target.h targmatch.h bfd_stdint.h
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index f869c58be3..1c79d72ac4 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -7,6 +7,8 @@ aout-tic30.c
aout32.c
aout64.c
aoutx.h
+arc-got.h
+arc-plt.h
archive.c
archive64.c
archures.c
@@ -18,7 +20,9 @@ cache.c
cf-i386lynx.c
cisco-core.c
coff-alpha.c
+coff-arm.h
coff-bfd.c
+coff-bfd.h
coff-go32.c
coff-i386.c
coff-mips.c
@@ -40,9 +44,11 @@ coffswap.h
compress.c
corefile.c
cpu-aarch64.c
+cpu-aarch64.h
cpu-alpha.c
cpu-arc.c
cpu-arm.c
+cpu-arm.h
cpu-avr.c
cpu-bfin.c
cpu-bpf.c
@@ -59,6 +65,7 @@ cpu-fr30.c
cpu-frv.c
cpu-ft32.c
cpu-h8300.c
+cpu-h8300.h
cpu-hppa.c
cpu-i386.c
cpu-ia64.c
@@ -75,6 +82,7 @@ cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c
+cpu-m68k.h
cpu-m9s12x.c
cpu-m9s12xg.c
cpu-mcore.c
@@ -126,6 +134,7 @@ cpu-z80.c
cpu-z8k.c
dwarf1.c
dwarf2.c
+ecoff-bfd.h
ecoff.c
ecofflink.c
ecoffswap.h
@@ -134,27 +143,37 @@ elf-bfd.h
elf-eh-frame.c
elf-hppa.h
elf-ifunc.c
+elf-linker-x86.h
elf-linux-core.h
elf-m10200.c
elf-m10300.c
elf-nacl.c
+elf-nacl.h
elf-properties.c
+elf-s390.h
elf-strtab.c
elf-vxworks.c
+elf-vxworks.h
elf.c
elf32-am33lin.c
elf32-arc.c
elf32-arm.c
+elf32-arm.h
elf32-avr.c
+elf32-avr.h
elf32-bfin.c
+elf32-bfin.h
elf32-cr16.c
+elf32-cr16.h
elf32-cr16c.c
elf32-cris.c
elf32-crx.c
elf32-csky.c
+elf32-csky.h
elf32-d10v.c
elf32-d30v.c
elf32-dlx.c
+elf32-dlx.h
elf32-epiphany.c
elf32-fr30.c
elf32-frv.c
@@ -172,34 +191,48 @@ elf32-m32r.c
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68hc1x.c
+elf32-m68hc1x.h
elf32-m68k.c
+elf32-m68k.h
elf32-mcore.c
elf32-mep.c
elf32-metag.c
+elf32-metag.h
elf32-microblaze.c
elf32-mips.c
elf32-moxie.c
elf32-msp430.c
elf32-mt.c
elf32-nds32.c
+elf32-nds32.h
elf32-nios2.c
+elf32-nios2.h
elf32-or1k.c
elf32-pj.c
elf32-ppc.c
+elf32-ppc.h
elf32-pru.c
elf32-rl78.c
elf32-rx.c
+elf32-rx.h
elf32-s12z.c
elf32-s390.c
elf32-score.c
+elf32-score.h
elf32-score7.c
+elf32-sh-relocs.h
elf32-sh.c
elf32-sparc.c
elf32-spu.c
+elf32-spu.h
elf32-tic6x.c
+elf32-tic6x.h
elf32-tilegx.c
+elf32-tilegx.h
elf32-tilepro.c
+elf32-tilepro.h
elf32-v850.c
+elf32-v850.h
elf32-vax.c
elf32-visium.c
elf32-wasm32.c
@@ -218,9 +251,11 @@ elf64-mips.c
elf64-mmix.c
elf64-nfp.c
elf64-ppc.c
+elf64-ppc.h
elf64-s390.c
elf64-sparc.c
elf64-tilegx.c
+elf64-tilegx.h
elf64-x86-64.c
elf64.c
elfcode.h
@@ -228,13 +263,20 @@ elfcore.h
elflink.c
elfn32-mips.c
elfxx-aarch64.c
+elfxx-aarch64.h
elfxx-ia64.c
+elfxx-ia64.h
elfxx-mips.c
+elfxx-mips.h
elfxx-riscv.c
+elfxx-riscv.h
elfxx-sparc.c
+elfxx-sparc.h
elfxx-tilegx.c
+elfxx-tilegx.h
elfxx-x86.c
elfxx-x86.c
+elfxx-x86.h
format.c
genlink.h
go32stub.h
@@ -293,6 +335,7 @@ pei-sh.c
pei-x86_64.c
peicode.h
plugin.c
+plugin.h
ppcboot.c
reloc.c
reloc16.c
@@ -306,6 +349,7 @@ srec.c
stab-syms.c
stabs.c
syms.c
+sysdep.h
targets.c
tekhex.c
trad-core.c
@@ -318,7 +362,9 @@ vms-lib.c
vms-misc.c
vms.h
wasm-module.c
+wasm-module.h
xcofflink.c
+xcofflink.h
xsym.c
xsym.h
xtensa-isa.c
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PowerPC64 dynamic symbol tweaks
@ 2019-09-23 15:16 gdb-buildbot
2019-09-23 15:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 15:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec73ddcd43b588924c95f1a997351314ddf84e39 ***
commit ec73ddcd43b588924c95f1a997351314ddf84e39
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 23 16:06:22 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 23 23:49:25 2019 +0930
PowerPC64 dynamic symbol tweaks
In check_relocs, bfd_link_pic true means ld is producing a shared
library or a position independent executable. !bfd_link_pic means a
fixed position (ie. static) executable since the relocatable linking
case is excluded. So it is appropriate to continue using bfd_link_pic
when testing whether non-pcrelative relocations should be dynamic, and
!bfd_link_pic for the special case of ifunc in static executables.
However, -Bsymbolic shouldn't affect PIEs (they are executables so
none of their symbols should be overridden) and PIEs can support copy
relocations, thus bfd_link_executable should be used in those cases
rather than bfd_link_pic.
I've also removed the test of ELIMINATE_COPY_RELOCS in check_relocs.
We can sort out what to do regarding copy relocs later, which allows
the code in check_relocs to be simplified.
* elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
in choosing between different actions for shared library and
non-shared library cases. Delete ELIMINATE_COPY_RELOCS test.
(dec_dynrel_count): Likewise. Account for ifunc special case.
(ppc64_elf_adjust_dynamic_symbol): Copy relocs are for executables,
not non-pic.
(allocate_dynrelocs): Comment fixes. Delete ELIMINATE_COPY_RELOCS
test.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1da5d0d48c..ac0296482b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
+ in choosing between different actions for shared library and
+ non-shared library cases. Delete ELIMINATE_COPY_RELOCS test.
+ (dec_dynrel_count): Likewise. Account for ifunc special case.
+ (ppc64_elf_adjust_dynamic_symbol): Copy relocs are for executables,
+ not non-pic.
+ (allocate_dynrelocs): Comment fixes. Delete ELIMINATE_COPY_RELOCS
+ test.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* Makefile.am (SOURCE_HFILES): Add many missing .h files.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index ed8077586b..d5a46dbf21 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4836,7 +4836,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_TOC16_HA:
case R_PPC64_TOC16_LO_DS:
sec->has_toc_reloc = 1;
- if (h != NULL && !bfd_link_pic (info))
+ if (h != NULL && bfd_link_executable (info))
{
/* We may need a copy reloc. */
h->non_got_ref = 1;
@@ -5076,7 +5076,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_UADDR32:
case R_PPC64_UADDR64:
case R_PPC64_TOC:
- if (h != NULL && !bfd_link_pic (info))
+ if (h != NULL && bfd_link_executable (info))
/* We may need a copy reloc. */
h->non_got_ref = 1;
@@ -5106,17 +5106,14 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
dynamic library if we manage to avoid copy relocs for the
symbol. */
dodyn:
- if ((bfd_link_pic (info)
- && (must_be_dyn_reloc (info, r_type)
- || (h != NULL
- && (!SYMBOLIC_BIND (info, h)
- || h->root.type == bfd_link_hash_defweak
- || !h->def_regular))))
- || (ELIMINATE_COPY_RELOCS
- && !bfd_link_pic (info)
- && h != NULL
- && (h->root.type == bfd_link_hash_defweak
- || !h->def_regular))
+ if ((h != NULL
+ && (h->root.type == bfd_link_hash_defweak
+ || !h->def_regular))
+ || (h != NULL
+ && !bfd_link_executable (info)
+ && !SYMBOLIC_BIND (info, h))
+ || (bfd_link_pic (info)
+ && must_be_dyn_reloc (info, r_type))
|| (!bfd_link_pic (info)
&& ifunc != NULL))
{
@@ -6425,7 +6422,7 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
only references to the symbol are via the global offset table.
For such cases we need not do anything here; the relocations will
be handled correctly by relocate_section. */
- if (bfd_link_pic (info))
+ if (!bfd_link_executable (info))
return TRUE;
/* If there are no references to this symbol that do not use the
@@ -6904,17 +6901,18 @@ dec_dynrel_count (bfd_vma r_info,
return FALSE;
}
- if ((bfd_link_pic (info)
- && (must_be_dyn_reloc (info, r_type)
- || (h != NULL
- && (!SYMBOLIC_BIND (info, h)
- || h->root.type == bfd_link_hash_defweak
- || !h->def_regular))))
- || (ELIMINATE_COPY_RELOCS
- && !bfd_link_pic (info)
- && h != NULL
- && (h->root.type == bfd_link_hash_defweak
- || !h->def_regular)))
+ if ((h != NULL
+ && (h->root.type == bfd_link_hash_defweak
+ || !h->def_regular))
+ || (h != NULL
+ && !bfd_link_executable (info)
+ && !SYMBOLIC_BIND (info, h))
+ || (bfd_link_pic (info)
+ && must_be_dyn_reloc (info, r_type))
+ || (!bfd_link_pic (info)
+ && (h != NULL
+ ? h->type == STT_GNU_IFUNC
+ : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)))
;
else
return TRUE;
@@ -9403,7 +9401,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
for (gent = h->got.glist; gent != NULL; gent = gent->next)
if (!gent->is_indirect)
{
- /* Make sure this symbol is output as a dynamic symbol. */
+ /* Ensure we catch all the cases where this symbol should
+ be made dynamic. */
if (!ensure_undef_dynamic (info, h))
return FALSE;
@@ -9438,7 +9437,6 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
be defined in regular objects. For the normal shared case,
discard space for relocs that have become local due to symbol
visibility changes. */
-
if (bfd_link_pic (info))
{
/* Relocs that use pc_count are those that appear on a call
@@ -9463,24 +9461,27 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
if (eh->dyn_relocs != NULL)
{
- /* Make sure this symbol is output as a dynamic symbol. */
+ /* Ensure we catch all the cases where this symbol
+ should be made dynamic. */
if (!ensure_undef_dynamic (info, h))
return FALSE;
}
}
- else if (ELIMINATE_COPY_RELOCS && h->type != STT_GNU_IFUNC)
+
+ /* For a fixed position executable, discard space for
+ relocs against symbols which are not dynamic. */
+ else if (h->type != STT_GNU_IFUNC)
{
- /* For the non-pic case, discard space for relocs against
- symbols which turn out to need copy relocs or are not
- dynamic. */
if (h->dynamic_adjusted
&& !h->def_regular
&& !ELF_COMMON_DEF_P (h))
{
- /* Make sure this symbol is output as a dynamic symbol. */
+ /* Ensure we catch all the cases where this symbol
+ should be made dynamic. */
if (!ensure_undef_dynamic (info, h))
return FALSE;
+ /* But if that didn't work out, discard dynamic relocs. */
if (h->dynindx == -1)
eh->dyn_relocs = NULL;
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Make ada_decode not use a static buffer
@ 2019-09-23 19:29 gdb-buildbot
2019-09-23 19:23 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 19:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f945dedfd3512bfbca0f1405c8ea85684980e69a ***
commit f945dedfd3512bfbca0f1405c8ea85684980e69a
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Wed Aug 28 15:40:31 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Sep 23 13:36:34 2019 -0500
Make ada_decode not use a static buffer
This makes it safer to use in general, and also allows using it on a
background thread in the future.
Inspired by tromey's patch at:
https://github.com/tromey/gdb/commit/1226cbdfa436297a5dec054d94592c45891afa93
(however, implemented in a different way)
gdb/ChangeLog:
2019-09-23 Christian Biesinger <cbiesinger@google.com>
* ada-exp.y (write_object_remaining): Update.
* ada-lang.c (ada_decode): Return a std::string instead of a char*
and eliminate the static buffer.
(ada_decode_symbol): Update.
(ada_la_decode): Update.
(ada_sniff_from_mangled_name): Update.
(is_valid_name_for_wild_match): Update.
(ada_lookup_name_info::matches): Update and simplify.
(name_matches_regex): Update.
(ada_add_global_exceptions): Update.
* ada-lang.h (ada_decode): Update signature.
* ada-varobj.c (ada_varobj_describe_simple_array_child): Update.
* dwarf-index-write.c (debug_names::insert): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4374348c8d..33951b88c6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,19 @@
+2019-09-23 Christian Biesinger <cbiesinger@google.com>
+
+ * ada-exp.y (write_object_remaining): Update.
+ * ada-lang.c (ada_decode): Return a std::string instead of a char*
+ and eliminate the static buffer.
+ (ada_decode_symbol): Update.
+ (ada_la_decode): Update.
+ (ada_sniff_from_mangled_name): Update.
+ (is_valid_name_for_wild_match): Update.
+ (ada_lookup_name_info::matches): Update and simplify.
+ (name_matches_regex): Update.
+ (ada_add_global_exceptions): Update.
+ * ada-lang.h (ada_decode): Update signature.
+ * ada-varobj.c (ada_varobj_describe_simple_array_child): Update.
+ * dwarf-index-write.c (debug_names::insert): Update.
+
2019-09-21 Simon Marchi <simon.marchi@polymtl.ca>
* solib-svr4.c (svr4_iterate_over_objfiles_in_search_order): Fix
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index c8a7b9c9c7..160e64bc05 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -816,7 +816,7 @@ write_object_renaming (struct parser_state *par_state,
renamed_entity_len);
ada_lookup_encoded_symbol (name, orig_left_context, VAR_DOMAIN, &sym_info);
if (sym_info.symbol == NULL)
- error (_("Could not find renamed variable: %s"), ada_decode (name));
+ error (_("Could not find renamed variable: %s"), ada_decode (name).c_str ());
else if (SYMBOL_CLASS (sym_info.symbol) == LOC_TYPEDEF)
/* We have a renaming of an old-style renaming symbol. Don't
trust the block information. */
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index c34733e754..063b98bde5 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -1105,22 +1105,16 @@ ada_remove_po_subprogram_suffix (const char *encoded, int *len)
/* If ENCODED follows the GNAT entity encoding conventions, then return
the decoded form of ENCODED. Otherwise, return "<%s>" where "%s" is
- replaced by ENCODED.
+ replaced by ENCODED. */
- The resulting string is valid until the next call of ada_decode.
- If the string is unchanged by decoding, the original string pointer
- is returned. */
-
-const char *
+std::string
ada_decode (const char *encoded)
{
int i, j;
int len0;
const char *p;
- char *decoded;
int at_start_name;
- static char *decoding_buffer = NULL;
- static size_t decoding_buffer_size = 0;
+ std::string decoded;
/* With function descriptors on PPC64, the value of a symbol named
".FN", if it exists, is the entry point of the function "FN". */
@@ -1179,8 +1173,7 @@ ada_decode (const char *encoded)
/* Make decoded big enough for possible expansion by operator name. */
- GROW_VECT (decoding_buffer, decoding_buffer_size, 2 * len0 + 1);
- decoded = decoding_buffer;
+ decoded.resize (2 * len0 + 1, 'X');
/* Remove trailing __{digit}+ or trailing ${digit}+. */
@@ -1217,7 +1210,7 @@ ada_decode (const char *encoded)
op_len - 1) == 0)
&& !isalnum (encoded[i + op_len]))
{
- strcpy (decoded + j, ada_opname_table[k].decoded);
+ strcpy (&decoded.front() + j, ada_opname_table[k].decoded);
at_start_name = 0;
i += op_len;
j += strlen (ada_opname_table[k].decoded);
@@ -1338,27 +1331,22 @@ ada_decode (const char *encoded)
j += 1;
}
}
- decoded[j] = '\000';
+ decoded.resize (j);
/* Decoded names should never contain any uppercase character.
Double-check this, and abort the decoding if we find one. */
- for (i = 0; decoded[i] != '\0'; i += 1)
+ for (i = 0; i < decoded.length(); ++i)
if (isupper (decoded[i]) || decoded[i] == ' ')
goto Suppress;
- if (strcmp (decoded, encoded) == 0)
- return encoded;
- else
- return decoded;
+ return decoded;
Suppress:
- GROW_VECT (decoding_buffer, decoding_buffer_size, strlen (encoded) + 3);
- decoded = decoding_buffer;
if (encoded[0] == '<')
- strcpy (decoded, encoded);
+ decoded = encoded;
else
- xsnprintf (decoded, decoding_buffer_size, "<%s>", encoded);
+ decoded = '<' + std::string(encoded) + '>';
return decoded;
}
@@ -1389,13 +1377,13 @@ ada_decode_symbol (const struct general_symbol_info *arg)
if (!gsymbol->ada_mangled)
{
- const char *decoded = ada_decode (gsymbol->name);
+ std::string decoded = ada_decode (gsymbol->name);
struct obstack *obstack = gsymbol->language_specific.obstack;
gsymbol->ada_mangled = 1;
if (obstack != NULL)
- *resultp = obstack_strdup (obstack, decoded);
+ *resultp = obstack_strdup (obstack, decoded.c_str ());
else
{
/* Sometimes, we can't find a corresponding objfile, in
@@ -1404,10 +1392,10 @@ ada_decode_symbol (const struct general_symbol_info *arg)
significant memory leak (FIXME). */
char **slot = (char **) htab_find_slot (decoded_names_store,
- decoded, INSERT);
+ decoded.c_str (), INSERT);
if (*slot == NULL)
- *slot = xstrdup (decoded);
+ *slot = xstrdup (decoded.c_str ());
*resultp = *slot;
}
}
@@ -1418,7 +1406,7 @@ ada_decode_symbol (const struct general_symbol_info *arg)
static char *
ada_la_decode (const char *encoded, int options)
{
- return xstrdup (ada_decode (encoded));
+ return xstrdup (ada_decode (encoded).c_str ());
}
/* Implement la_sniff_from_mangled_name for Ada. */
@@ -1426,11 +1414,11 @@ ada_la_decode (const char *encoded, int options)
static int
ada_sniff_from_mangled_name (const char *mangled, char **out)
{
- const char *demangled = ada_decode (mangled);
+ std::string demangled = ada_decode (mangled);
*out = NULL;
- if (demangled != mangled && demangled != NULL && demangled[0] != '<')
+ if (demangled != mangled && demangled[0] != '<')
{
/* Set the gsymbol language to Ada, but still return 0.
Two reasons for that:
@@ -5993,7 +5981,7 @@ is_name_suffix (const char *str)
static int
is_valid_name_for_wild_match (const char *name0)
{
- const char *decoded_name = ada_decode (name0);
+ std::string decoded_name = ada_decode (name0);
int i;
/* If the decoded name starts with an angle bracket, it means that
@@ -6233,19 +6221,16 @@ ada_lookup_name_info::matches
if (strncmp (sym_name, text, text_len) == 0)
match = true;
+ std::string decoded_name = ada_decode (sym_name);
if (match && !m_encoded_p)
{
/* One needed check before declaring a positive match is to verify
that iff we are doing a verbatim match, the decoded version
of the symbol name starts with '<'. Otherwise, this symbol name
is not a suitable completion. */
- const char *sym_name_copy = sym_name;
- bool has_angle_bracket;
- sym_name = ada_decode (sym_name);
- has_angle_bracket = (sym_name[0] == '<');
+ bool has_angle_bracket = (decoded_name[0] == '<');
match = (has_angle_bracket == m_verbatim_p);
- sym_name = sym_name_copy;
}
if (match && !m_verbatim_p)
@@ -6269,7 +6254,7 @@ ada_lookup_name_info::matches
/* Since we are doing wild matching, this means that TEXT
may represent an unqualified symbol name. We therefore must
also compare TEXT against the unqualified name of the symbol. */
- sym_name = ada_unqualified_name (ada_decode (sym_name));
+ sym_name = ada_unqualified_name (decoded_name.c_str ());
if (strncmp (sym_name, text, text_len) == 0)
match = true;
@@ -13494,7 +13479,7 @@ static bool
name_matches_regex (const char *name, compiled_regex *preg)
{
return (preg == NULL
- || preg->exec (ada_decode (name), 0, NULL, 0) == 0);
+ || preg->exec (ada_decode (name).c_str (), 0, NULL, 0) == 0);
}
/* Add all exceptions defined globally whose name name match
@@ -13527,8 +13512,8 @@ ada_add_global_exceptions (compiled_regex *preg,
lookup_name_info::match_any (),
[&] (const char *search_name)
{
- const char *decoded = ada_decode (search_name);
- return name_matches_regex (decoded, preg);
+ std::string decoded = ada_decode (search_name);
+ return name_matches_regex (decoded.c_str (), preg);
},
NULL,
VARIABLES_DOMAIN);
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 2fc3f523ca..c7279d5ac3 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -227,7 +227,7 @@ extern struct type *ada_get_decoded_type (struct type *type);
extern const char *ada_decode_symbol (const struct general_symbol_info *);
-extern const char *ada_decode (const char*);
+extern std::string ada_decode (const char*);
extern enum language ada_update_initial_language (enum language);
diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c
index a4d553d378..1a5d0ac239 100644
--- a/gdb/ada-varobj.c
+++ b/gdb/ada-varobj.c
@@ -624,6 +624,7 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
of the array index type when such type qualification is
needed. */
const char *index_type_name = NULL;
+ std::string decoded;
/* If the index type is a range type, find the base type. */
while (TYPE_CODE (index_type) == TYPE_CODE_RANGE)
@@ -634,7 +635,10 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
{
index_type_name = ada_type_name (index_type);
if (index_type_name)
- index_type_name = ada_decode (index_type_name);
+ {
+ decoded = ada_decode (index_type_name);
+ index_type_name = decoded.c_str ();
+ }
}
if (index_type_name != NULL)
diff --git a/gdb/dwarf-index-write.c b/gdb/dwarf-index-write.c
index 153c6792f0..0947ba9ec1 100644
--- a/gdb/dwarf-index-write.c
+++ b/gdb/dwarf-index-write.c
@@ -714,13 +714,14 @@ public:
name (of the form "<MumBle>") must be entered without the
angle brackets. Note that the current index is unusual,
see PR symtab/24820 for details. */
- const char *decoded = ada_decode (name);
+ std::string decoded = ada_decode (name);
if (decoded[0] == '<')
name = (char *) obstack_copy0 (&m_string_obstack,
- decoded + 1,
- strlen (decoded + 1) - 1);
+ decoded.c_str () + 1,
+ decoded.length () - 2);
else
- name = obstack_strdup (&m_string_obstack, ada_encode (decoded));
+ name = obstack_strdup (&m_string_obstack,
+ ada_encode (decoded.c_str ()));
}
const auto insertpair
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] sim: Add PRU simulator port
@ 2019-09-23 21:43 gdb-buildbot
2019-09-23 21:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 21:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ddd44b7053386b82769c27c871a08c72e589e93e ***
commit ddd44b7053386b82769c27c871a08c72e589e93e
Author: Dimitar Dimitrov <dimitar@dinux.eu>
AuthorDate: Mon Sep 23 17:54:42 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Mon Sep 23 22:11:02 2019 +0100
sim: Add PRU simulator port
A simulator port for the TI PRU I/O processor.
v1: https://sourceware.org/ml/gdb-patches/2016-12/msg00143.html
v2: https://sourceware.org/ml/gdb-patches/2017-02/msg00397.html
v3: https://sourceware.org/ml/gdb-patches/2017-02/msg00516.html
v4: https://sourceware.org/ml/gdb-patches/2018-06/msg00484.html
v5: https://sourceware.org/ml/gdb-patches/2019-08/msg00584.html
v6: https://sourceware.org/ml/gdb-patches/2019-09/msg00036.html
gdb/ChangeLog:
* NEWS: Mention new simulator port for PRU.
sim/ChangeLog:
* MAINTAINERS: Add myself as PRU maintainer.
* configure: Regenerated.
* configure.tgt: Add PRU.
sim/common/ChangeLog:
* gennltvals.sh: Add PRU libgloss target.
* nltvals.def: Regenerate from the latest libgloss sources.
sim/pru/ChangeLog:
* Makefile.in: New file.
* aclocal.m4: Regenerated.
* config.in: Regenerated.
* configure: Regenerated.
* configure.ac: New file.
* interp.c: New file.
* pru.h: New file.
* pru.isa: New file.
* sim-main.h: New file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 33951b88c6..77aab76492 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * NEWS: Mention new simulator port for PRU.
+
2019-09-23 Christian Biesinger <cbiesinger@google.com>
* ada-exp.y (write_object_remaining): Update.
diff --git a/gdb/NEWS b/gdb/NEWS
index 8f9b1d8ac4..779fd91d3a 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -350,6 +350,10 @@ focus, winheight, +, -, >, <
both debugging standalone Cell/B.E. SPU applications and integrated debugging
of Cell/B.E. applications that use both the PPU and SPU architectures.
+* New Simulators
+
+TI PRU pru-*-elf
+
*** Changes in GDB 8.3
* GDB and GDBserver now support access to additional registers on
diff --git a/sim/ChangeLog b/sim/ChangeLog
index d4c7d166d2..7443e8442d 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * MAINTAINERS: Add myself as PRU maintainer.
+ * configure: Regenerated.
+ * configure.tgt: Add PRU.
+
2019-09-20 Alan Modra <amodra@gmail.com>
* ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
diff --git a/sim/MAINTAINERS b/sim/MAINTAINERS
index 3b9b08c40d..4ca67cfd1d 100644
--- a/sim/MAINTAINERS
+++ b/sim/MAINTAINERS
@@ -29,6 +29,7 @@ mips I-IV Maciej W. Rozycki <macro@linux-mips.org>
moxie Anthony Green <green@moxielogic.com>
msp430 Nick Clifton <nickc@redhat.com>
or1k Stafford Horne <shorne@gmail.com>
+pru Dimitar Dimitrov <dimitar@dinux.eu>
sh (global maintainers)
sh64 Dave Brolley <brolley@redhat.com>
common Frank Ch. Eigler <fche@redhat.com>
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index b84980bc95..a7ec5c7121 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * gennltvals.sh: Add PRU libgloss target.
+ * nltvals.def: Regenerate from the latest libgloss sources.
+
2019-06-13 Stafford Horne <shorne@gmail.com>
* cgen-accfp.c (unorderedsf, unordereddf): New functions.
diff --git a/sim/common/gennltvals.sh b/sim/common/gennltvals.sh
index 7027c35ad4..79180335b6 100755
--- a/sim/common/gennltvals.sh
+++ b/sim/common/gennltvals.sh
@@ -95,3 +95,7 @@ $shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
dir=libgloss target=lm32
$shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
"syscall.h" 'SYS_[_[:alnum:]]*' "${cpp}"
+
+dir=libgloss target=pru
+$shell ${srccom}/gentvals.sh $target sys ${newlibroot}/$dir \
+ "syscall.h" 'SYS_[_[:alnum:]]*' "${cpp}"
diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
index 3f82d47b6b..92ccc9aded 100644
--- a/sim/common/nltvals.def
+++ b/sim/common/nltvals.def
@@ -574,3 +574,34 @@
/* end lm32 sys target macros */
#endif
#endif
+#ifdef NL_TARGET_pru
+#ifdef sys_defs
+/* from syscall.h */
+/* begin pru sys target macros */
+ { "SYS_argc", 22 },
+ { "SYS_argn", 24 },
+ { "SYS_argnlen", 23 },
+ { "SYS_argv", 13 },
+ { "SYS_argvlen", 12 },
+ { "SYS_chdir", 14 },
+ { "SYS_chmod", 16 },
+ { "SYS_close", 3 },
+ { "SYS_exit", 1 },
+ { "SYS_fstat", 10 },
+ { "SYS_getpid", 8 },
+ { "SYS_gettimeofday", 19 },
+ { "SYS_kill", 9 },
+ { "SYS_link", 21 },
+ { "SYS_lseek", 6 },
+ { "SYS_open", 2 },
+ { "SYS_read", 4 },
+ { "SYS_reconfig", 25 },
+ { "SYS_stat", 15 },
+ { "SYS_time", 18 },
+ { "SYS_times", 20 },
+ { "SYS_unlink", 7 },
+ { "SYS_utime", 17 },
+ { "SYS_write", 5 },
+/* end pru sys target macros */
+#endif
+#endif
diff --git a/sim/configure b/sim/configure
index ca3fd673ab..72f95cd5c7 100755
--- a/sim/configure
+++ b/sim/configure
@@ -686,6 +686,7 @@ mn10300
moxie
msp430
or1k
+pru
rl78
rx
sh64
@@ -3837,6 +3838,13 @@ subdirs="$subdirs aarch64"
subdirs="$subdirs or1k"
+ ;;
+ pru*-*-*)
+
+ sim_arch=pru
+ subdirs="$subdirs pru"
+
+
;;
rl78-*-*)
diff --git a/sim/configure.tgt b/sim/configure.tgt
index a6dbd1af83..8a8e03d96f 100644
--- a/sim/configure.tgt
+++ b/sim/configure.tgt
@@ -79,6 +79,9 @@ case "${target}" in
or1k-*-* | or1knd-*-*)
SIM_ARCH(or1k)
;;
+ pru*-*-*)
+ SIM_ARCH(pru)
+ ;;
rl78-*-*)
SIM_ARCH(rl78)
;;
diff --git a/sim/pru/ChangeLog b/sim/pru/ChangeLog
new file mode 100644
index 0000000000..bccc3efd53
--- /dev/null
+++ b/sim/pru/ChangeLog
@@ -0,0 +1,11 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * Makefile.in: New file.
+ * aclocal.m4: Regenerated.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+ * configure.ac: New file.
+ * interp.c: New file.
+ * pru.h: New file.
+ * pru.isa: New file.
+ * sim-main.h: New file.
diff --git a/sim/pru/Makefile.in b/sim/pru/Makefile.in
new file mode 100644
index 0000000000..5235a5ff07
--- /dev/null
+++ b/sim/pru/Makefile.in
@@ -0,0 +1,29 @@
+# Makefile template for Configure for the PRU sim library.
+# Copyright (C) 1990-2019 Free Software Foundation, Inc.
+# Written by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# Based on the MCore sim library
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+## COMMON_PRE_CONFIG_FRAG
+
+SIM_OBJS = \
+ $(SIM_NEW_COMMON_OBJS) \
+ interp.o \
+ sim-resume.o
+
+NL_TARGET = -DNL_TARGET_pru
+
+## COMMON_POST_CONFIG_FRAG
diff --git a/sim/pru/aclocal.m4 b/sim/pru/aclocal.m4
new file mode 100644
index 0000000000..e9f11c775c
--- /dev/null
+++ b/sim/pru/aclocal.m4
@@ -0,0 +1,119 @@
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
diff --git a/sim/pru/config.in b/sim/pru/config.in
new file mode 100644
index 0000000000..7c667a1c0d
--- /dev/null
+++ b/sim/pru/config.in
@@ -0,0 +1,248 @@
+/* config.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Sim debug setting */
+#undef DEBUG
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#undef ENABLE_NLS
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the <fpu_control.h> header file. */
+#undef HAVE_FPU_CONTROL_H
+
+/* Define to 1 if you have the `ftruncate' function. */
+#undef HAVE_FTRUNCATE
+
+/* Define to 1 if you have the `getrusage' function. */
+#undef HAVE_GETRUSAGE
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define to 1 if you have the `lstat' function. */
+#undef HAVE_LSTAT
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* Define to 1 if you have the `posix_fallocate' function. */
+#undef HAVE_POSIX_FALLOCATE
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#undef HAVE_SOCKLEN_T
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if `st_atime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIME
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `st_ctime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_CTIME
+
+/* Define to 1 if `st_dev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_DEV
+
+/* Define to 1 if `st_gid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_GID
+
+/* Define to 1 if `st_ino' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_INO
+
+/* Define to 1 if `st_mode' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MODE
+
+/* Define to 1 if `st_mtime' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIME
+
+/* Define to 1 if `st_nlink' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_NLINK
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if `st_size' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_SIZE
+
+/* Define to 1 if `st_uid' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_UID
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#undef HAVE_SYS_TIMES_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the `truncate' function. */
+#undef HAVE_TRUNCATE
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the `__setfpucw' function. */
+#undef HAVE___SETFPUCW
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Name of this package. */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Additional package description */
+#undef PKGVERSION
+
+/* Sim profile settings */
+#undef PROFILE
+
+/* Bug reporting address */
+#undef REPORT_BUGS_TO
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Sim assert settings */
+#undef WITH_ASSERT
+
+/* Sim debug setting */
+#undef WITH_DEBUG
+
+/* Sim default environment */
+#undef WITH_ENVIRONMENT
+
+/* Sim profile settings */
+#undef WITH_PROFILE
+
+/* How to route I/O */
+#undef WITH_STDIO
+
+/* Sim trace settings */
+#undef WITH_TRACE
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/sim/pru/configure b/sim/pru/configure
new file mode 100755
index 0000000000..aa99e9e984
--- /dev/null
+++ b/sim/pru/configure
@@ -0,0 +1,15973 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="Makefile.in"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+cgen_breaks
+REPORT_BUGS_TEXI
+REPORT_BUGS_TO
+PKGVERSION
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+lt_cv_dlopen_libs
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+AWK
+STRIP
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+LIBTOOL
+PLUGINS_FALSE
+PLUGINS_TRUE
+zlibinc
+zlibdir
+CATOBJEXT
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATALOGS
+POSUB
+GMSGFMT
+XGETTEXT
+INCINTL
+LIBINTL_DEP
+LIBINTL
+USE_NLS
+GMAKE_FALSE
+GMAKE_TRUE
+MAKE
+CCDEPMODE
+DEPDIR
+am__leading_dot
+PACKAGE
+RANLIB
+AR
+HDEFINES
+CC_FOR_BUILD
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+EGREP
+GREP
+CPP
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+WERROR_CFLAGS
+WARN_CFLAGS
+sim_reserved_bits
+sim_inline
+sim_hw
+sim_hw_objs
+sim_hw_cflags
+sim_default_model
+sim_scache
+sim_float
+sim_endian
+sim_bitsize
+sim_alignment
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_system_zlib
+enable_plugins
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+enable_maintainer_mode
+enable_sim_debug
+enable_sim_stdio
+enable_sim_trace
+enable_sim_profile
+enable_sim_assert
+enable_sim_environment
+enable_sim_inline
+with_pkgversion
+with_bugurl
+enable_sim_endian
+enable_sim_alignment
+enable_werror
+enable_build_warnings
+enable_sim_build_warnings
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-plugins Enable support for plugins
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-sim-debug=opts Enable debugging flags (for developers of the sim
+ itself)
+ --enable-sim-stdio Specify whether to use stdio for console
+ input/output
+ --enable-sim-trace=opts Enable tracing of simulated programs
+ --enable-sim-profile=opts
+ Enable profiling flags
+ --enable-sim-assert Specify whether to perform random assertions
+ --enable-sim-environment=environment
+ Specify mixed, user, virtual or operating
+ environment
+ --enable-sim-inline=inlines
+ Specify which functions should be inlined
+ --enable-sim-endian=endian
+ Specify target byte endian orientation
+ --enable-sim-alignment=align
+ Specify strict, nonstrict or forced alignment of
+ memory accesses
+ --enable-werror treat compile warnings as errors
+ --enable-build-warnings enable build-time compiler warnings if gcc is used
+ --enable-sim-build-warnings
+ enable SIM specific build-time compiler warnings if
+ gcc is used
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-system-zlib use installed libz
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-pkgversion=PKG Use PKG in the version string in place of "SIM"
+ --with-bugurl=URL Direct users to URL to report a bug
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# This file contains common code used by all simulators.
+#
+# SIM_AC_COMMON invokes AC macros used by all simulators and by the common
+# directory. It is intended to be invoked before any target specific stuff.
+# SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
+# It is intended to be invoked last.
+#
+# The simulator's configure.ac should look like:
+#
+# dnl Process this file with autoconf to produce a configure script.
+# AC_PREREQ(2.64)dnl
+# AC_INIT(Makefile.in)
+# sinclude(../common/aclocal.m4)
+#
+# SIM_AC_COMMON
+#
+# ... target specific stuff ...
+#
+# SIM_AC_OUTPUT
+
+# Include global overrides and fixes for Autoconf.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+# LT_INIT
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+
+
+# Initialize.
+
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+
+
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+
+
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'. VARNAME
+# must have a single quote delimited value for this to work.
+
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+
+
+
+# C support is built-in for now
+
+
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_TAG_COMPILER
+# ----------------
+# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+# _LT_COMPILER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+# _LT_LINKER_OPTION
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_CMD_MAX_LEN
+#---------------
+# LT_CMD_MAX_LEN
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+# LT_SYS_DLOPEN_SELF
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+# LT_PATH_LD
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+# LT_PATH_NM
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_LIB_M
+# --------
+# check for math library
+# LT_LIB_M
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+ # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# LT_PROG_RC
+# ----------
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+# _LT_DECL_SED
+
+#m4_ifndef
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+
+
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+# win32-dll
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# _LT_ENABLE_SHARED
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# _LT_ENABLE_STATIC
+
+
+
+
+# Old names:
+
+
+
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+# _LT_ENABLE_FAST_INSTALL
+
+
+
+
+# Old names:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+# _LT_WITH_PIC
+
+
+
+
+# Old name:
+# This is what autoupdate's m4 run will expand. It fires
+# the warning (with _au_warn_XXX), outputs it into the
+# updated configure.ac (with AC_DIAGNOSE), and then outputs
+# the replacement expansion.
+
+
+# This is an auxiliary macro that is also run when
+# autoupdate runs m4. It simply calls m4_warning, but
+# we need a wrapper so that each warning is emitted only
+# once. We break the quoting in m4_warning's argument in
+# order to expand this macro's arguments, not AU_DEFUN's.
+
+
+# Finally, this is the expansion that is picked up by
+# autoconf. It tells the user to run autoupdate, and
+# then outputs the replacement expansion. We do not care
+# about autoupdate's warning because that contains
+# information on what to do *after* running autoupdate.
+
+
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+
+
+
+
+
+
+
+
+
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+
+
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+
+
+
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+
+
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3134 ltversion.m4
+# This file is part of GNU Libtool
+
+
+
+
+
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# Based on depend.m4 from automake 1.9, modified for standalone use in
+# an environment where GNU make is required.
+
+# ZW_PROG_COMPILER_DEPENDENCIES
+# -----------------------------
+# Variant of _AM_DEPENDENCIES which just does the dependency probe and
+# sets fooDEPMODE accordingly. Cache-variable compatible with
+# original; not side-effect compatible. As the users of this macro
+# may require accurate dependencies for correct builds, it does *not*
+# honor --disable-dependency-checking, and failure to detect a usable
+# method is an error. depcomp is assumed to be located in
+# $ac_aux_dir.
+#
+# FIXME: Should use the Autoconf 2.5x language-selection mechanism.
+
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+
+
+# ZW_CREATE_DEPDIR
+# ----------------
+# As AM_SET_DEPDIR, but also create the directory at config.status time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# intl sister-directory configuration rules.
+#
+
+# The idea behind this macro is that there's no need to repeat all the
+# autoconf probes done by the intl directory - it's already done them
+# for us. In fact, there's no need even to look at the cache for the
+# answers. All we need to do is nab a few pieces of information.
+# The intl directory is set up to make this easy, by generating a
+# small file which can be sourced as a shell script; then we produce
+# the necessary substitutions and definitions for this directory.
+
+
+
+# Autoconf M4 include file defining utility macros for complex Canadian
+# cross builds.
+
+
+
+
+
+
+
+
+
+####
+# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
+# or AC_INIT.
+# These demand that AC_CANONICAL_SYSTEM be called beforehand.
+
+####
+# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like plain AC_CHECK_TOOLS, but require prefix if build!=host.
+
+
+####
+# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path])
+# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target.
+
+
+
+# Backported from Autoconf 2.5x; can go away when and if
+# we switch. Put the OS path separator in $PATH_SEPARATOR.
+
+
+
+
+
+
+
+
+# ACX_HAVE_GCC_FOR_TARGET
+# Check if the variable GCC_FOR_TARGET really points to a GCC binary.
+
+
+# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG)
+# Searching for installed target binutils. We need to take extra care,
+# else we may find the wrong assembler, linker, etc., and lose.
+#
+# First try --with-build-time-tools, if specified.
+#
+# For build != host, we ask the installed GCC for the name of the tool it
+# uses, and accept it if it is an absolute path. This is because the
+# only good choice for a compiler is the same GCC version that is being
+# installed (or we couldn't make target libraries), and we assume that
+# on the host system we'll have not only the same GCC version, but also
+# the same binutils version.
+#
+# For build == host, search the same directories that the installed
+# compiler will search. We used to do this for the assembler, linker,
+# and nm only; for simplicity of configuration, however, we extend this
+# criterion to tools (such as ar and ranlib) that are never invoked by
+# the compiler, to avoid mismatches.
+#
+# Also note we have to check MD_EXEC_PREFIX before checking the user's path
+# if build == target. This makes the most sense only when bootstrapping,
+# but we also do so when build != host. In this case, we hope that the
+# build and host systems will have similar contents of MD_EXEC_PREFIX.
+#
+# If we do not find a suitable binary, then try the user's path.
+
+
+###
+# AC_PROG_CPP_WERROR
+# Used for autoconf 2.5x to force AC_PREPROC_IFELSE to reject code which
+# triggers warnings from the preprocessor. Will be in autoconf 2.58.
+# For now, using this also overrides header checks to use only the
+# preprocessor (matches 2.13 behavior; matching 2.58's behavior is a
+# bit harder from here).
+# Eventually autoconf will default to checking headers with the compiler
+# instead, and we'll have to do this differently.
+
+# AC_PROG_CPP_WERROR
+
+# Test for GNAT.
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
+# that understands Ada. We use the user's CC setting, already found, and
+# possibly add $1 to the command-line parameters.
+#
+# Sets the shell variable have_gnat to yes or no as appropriate, and
+# substitutes GNATBIND and GNATMAKE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+ test $ac_cv_safe_to_define___extensions__ = yes &&
+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.7a'
+macro_revision='1.3134'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case "$ECHO" in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+ if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+# autoconf.info says this should be called right after AC_INIT.
+ac_config_headers="$ac_config_headers config.h:config.in"
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+
+
+# Put a plausible default for CC_FOR_BUILD in Makefile.
+if test -z "$CC_FOR_BUILD"; then
+ if test "x$cross_compiling" = "xno"; then
+ CC_FOR_BUILD='$(CC)'
+ else
+ CC_FOR_BUILD=gcc
+ fi
+fi
+
+
+
+
+AR=${AR-ar}
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+# Some of the common include files depend on bfd.h, and bfd.h checks
+# that config.h is included first by testing that the PACKAGE macro
+# is defined.
+PACKAGE=sim
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+
+# Dependency checking.
+ac_config_commands="$ac_config_commands depdir"
+
+
+depcc="$CC" am_compiler_list=
+
+am_depcomp=$ac_aux_dir/depcomp
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ if test $depmode = none; then break; fi
+
+ $as_echo "$as_me:$LINENO: trying $depmode" >&5
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "include sub/conftest.Po" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ depcmd="depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c"
+ echo "| $depcmd" | sed -e 's/ */ /g' >&5
+ if env $depcmd > conftest.err 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po >>conftest.err 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po >>conftest.err 2>&1 &&
+ ${MAKE-make} -s -f confmf >>conftest.err 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ $as_echo "$as_me:$LINENO: success" >&5
+ break
+ fi
+ fi
+ $as_echo "$as_me:$LINENO: failure, diagnostics are:" >&5
+ sed -e 's/^/| /' < conftest.err >&5
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+if test x${am_cv_CC_dependencies_compiler_type-none} = xnone
+then as_fn_error $? "no usable dependency style found" "$LINENO" 5
+else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+fi
+
+
+# Check for the 'make' the user wants to use.
+for ac_prog in make
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MAKE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MAKE"; then
+ ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MAKE="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
+$as_echo "$MAKE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MAKE" && break
+done
+
+MAKE_IS_GNU=
+case "`$MAKE --version 2>&1 | sed 1q`" in
+ *GNU*)
+ MAKE_IS_GNU=yes
+ ;;
+esac
+ if test "$MAKE_IS_GNU" = yes; then
+ GMAKE_TRUE=
+ GMAKE_FALSE='#'
+else
+ GMAKE_TRUE='#'
+ GMAKE_FALSE=
+fi
+
+
+ALL_LINGUAS=
+# If we haven't got the data from the intl directory,
+# assume NLS is disabled.
+USE_NLS=no
+LIBINTL=
+LIBINTL_DEP=
+INCINTL=
+XGETTEXT=
+GMSGFMT=
+POSUB=
+
+if test -f ../../intl/config.intl; then
+ . ../../intl/config.intl
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+if test x"$USE_NLS" != xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+ # Look for .po and .gmo files in the source directory.
+ CATALOGS=
+ XLINGUAS=
+ for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
+ # If there aren't any .gmo files the shell will give us the
+ # literal string "../path/to/srcdir/po/*.gmo" which has to be
+ # weeded out.
+ case "$cat" in *\**)
+ continue;;
+ esac
+ # The quadruple backslash is collapsed to a double backslash
+ # by the backticks, then collapsed again by the double quotes,
+ # leaving us with one backslash in the sed expression (right
+ # before the dot that mustn't act as a wildcard).
+ cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"`
+ lang=`echo $cat | sed -e "s!\\\\.gmo!!"`
+ # The user is allowed to set LINGUAS to a list of languages to
+ # install catalogs for. If it's empty that means "all of them."
+ if test "x$LINGUAS" = x; then
+ CATALOGS="$CATALOGS $cat"
+ XLINGUAS="$XLINGUAS $lang"
+ else
+ case "$LINGUAS" in *$lang*)
+ CATALOGS="$CATALOGS $cat"
+ XLINGUAS="$XLINGUAS $lang"
+ ;;
+ esac
+ fi
+ done
+ LINGUAS="$XLINGUAS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+
+
+ DATADIRNAME=share
+
+ INSTOBJEXT=.mo
+
+ GENCAT=gencat
+
+ CATOBJEXT=.gmo
+
+fi
+
+# Check for common headers.
+# FIXME: Seems to me this can cause problems for i386-windows hosts.
+# At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
+for ac_header in stdlib.h string.h strings.h unistd.h time.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/time.h sys/times.h sys/resource.h sys/mman.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in fcntl.h fpu_control.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in dlfcn.h errno.h sys/stat.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in getrusage time sigaction __setfpucw
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for ac_func in mmap munmap lstat truncate ftruncate posix_fallocate
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_dev" "ac_cv_member_struct_stat_st_dev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_dev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_DEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ino" "ac_cv_member_struct_stat_st_ino" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ino" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_INO 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mode" "ac_cv_member_struct_stat_st_mode" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mode" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MODE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_nlink" "ac_cv_member_struct_stat_st_nlink" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_nlink" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_NLINK 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_uid" "ac_cv_member_struct_stat_st_uid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_uid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_UID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_gid" "ac_cv_member_struct_stat_st_gid" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_gid" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_GID 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_size" "ac_cv_member_struct_stat_st_size" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_size" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_SIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_atime" "ac_cv_member_struct_stat_st_atime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_atime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime" "ac_cv_member_struct_stat_st_mtime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_mtime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MTIME 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_ctime" "ac_cv_member_struct_stat_st_ctime" "#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+"
+if test "x$ac_cv_member_struct_stat_st_ctime" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_CTIME 1
+_ACEOF
+
+
+fi
+
+ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h>
+#include <sys/socket.h>
+
+"
+if test "x$ac_cv_type_socklen_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SOCKLEN_T 1
+_ACEOF
+
+
+fi
+
+
+# Check for socket libraries
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lsocket" >&5
+$as_echo_n "checking for bind in -lsocket... " >&6; }
+if ${ac_cv_lib_socket_bind+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind ();
+int
+main ()
+{
+return bind ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_bind=yes
+else
+ ac_cv_lib_socket_bind=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_bind" >&5
+$as_echo "$ac_cv_lib_socket_bind" >&6; }
+if test "x$ac_cv_lib_socket_bind" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+ LIBS="-lsocket $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+ LIBS="-lnsl $LIBS"
+
+fi
+
+
+# BFD conditionally uses zlib, so we must link it in if libbfd does, by
+# using the same condition.
+
+ # Use the system's zlib library.
+ zlibdir="-L\$(top_builddir)/../zlib"
+ zlibinc="-I\$(top_srcdir)/../zlib"
+
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+ withval=$with_system_zlib; if test x$with_system_zlib = xyes ; then
+ zlibdir=
+ zlibinc=
+ fi
+
+fi
+
+
+
+
+
+# BFD uses libdl when when plugins enabled.
+
+ maybe_plugins=no
+ for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+ for ac_header in windows.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_windows_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_WINDOWS_H 1
+_ACEOF
+ maybe_plugins=yes
+fi
+
+done
+
+
+ # Check whether --enable-plugins was given.
+if test "${enable_plugins+set}" = set; then :
+ enableval=$enable_plugins; case "${enableval}" in
+ no) plugins=no ;;
+ *) plugins=yes
+ if test "$maybe_plugins" != "yes" ; then
+ as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5
+ fi ;;
+ esac
+else
+ plugins=$maybe_plugins
+
+fi
+
+ if test "$plugins" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
+$as_echo_n "checking for library containing dlsym... " >&6; }
+if ${ac_cv_search_dlsym+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlsym ();
+int
+main ()
+{
+return dlsym ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_dlsym=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_dlsym+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_dlsym+:} false; then :
+
+else
+ ac_cv_search_dlsym=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5
+$as_echo "$ac_cv_search_dlsym" >&6; }
+ac_res=$ac_cv_search_dlsym
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ fi
+
+ if test "$plugins" = yes; then
+ PLUGINS_TRUE=
+ PLUGINS_FALSE='#'
+else
+ PLUGINS_TRUE='#'
+ PLUGINS_FALSE=
+fi
+
+
+
+
+
+# Set options
+enable_dlopen=yes
+
+
+
+
+ enable_win32_dll=no
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ lt_prog_compiler_pic='-Xcompiler -fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test "$with_gnu_ld" = yes; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test "$lt_use_gnu_ld_interface" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='${wl}--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global
+ # defined symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test "$lt_cv_ld_force_load" = "yes"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+ *) lt_sed_strip_eq="s,=/,/,g" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+haiku*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 12882 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 12988 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+
+. ${srcdir}/../../bfd/configure.host
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim debug setting" >&5
+$as_echo_n "checking for sim debug setting... " >&6; }
+sim_debug="0"
+# Check whether --enable-sim-debug was given.
+if test "${enable_sim_debug+set}" = set; then :
+ enableval=$enable_sim_debug; case "${enableval}" in
+ yes) sim_debug="7";;
+ no) sim_debug="0";;
+ *) sim_debug="($enableval)";;
+esac
+fi
+if test "$sim_debug" != "0"; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEBUG $sim_debug
+_ACEOF
+
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_DEBUG $sim_debug
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_debug" >&5
+$as_echo "$sim_debug" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim stdio debug behavior" >&5
+$as_echo_n "checking for sim stdio debug behavior... " >&6; }
+sim_stdio="0"
+# Check whether --enable-sim-stdio was given.
+if test "${enable_sim_stdio+set}" = set; then :
+ enableval=$enable_sim_stdio; case "${enableval}" in
+ yes) sim_stdio="DO_USE_STDIO";;
+ no) sim_stdio="DONT_USE_STDIO";;
+ *) as_fn_error $? "Unknown value $enableval passed to --enable-sim-stdio" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_STDIO $sim_stdio
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_stdio" >&5
+$as_echo "$sim_stdio" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim trace settings" >&5
+$as_echo_n "checking for sim trace settings... " >&6; }
+sim_trace="~TRACE_debug"
+# Check whether --enable-sim-trace was given.
+if test "${enable_sim_trace+set}" = set; then :
+ enableval=$enable_sim_trace; case "${enableval}" in
+ yes) sim_trace="-1";;
+ no) sim_trace="0";;
+ [-0-9]*)
+ sim_trace="'(${enableval})'";;
+ [[:lower:]]*)
+ sim_trace=""
+ for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+ if test x"$sim_trace" = x; then
+ sim_trace="(TRACE_$x"
+ else
+ sim_trace="${sim_trace}|TRACE_$x"
+ fi
+ done
+ sim_trace="$sim_trace)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_TRACE $sim_trace
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_trace" >&5
+$as_echo "$sim_trace" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sim profile settings" >&5
+$as_echo_n "checking for sim profile settings... " >&6; }
+profile="1"
+sim_profile="-1"
+# Check whether --enable-sim-profile was given.
+if test "${enable_sim_profile+set}" = set; then :
+ enableval=$enable_sim_profile; case "${enableval}" in
+ yes) profile="1" sim_profile="-1";;
+ no) profile="0" sim_profile="0";;
+ [-0-9]*)
+ profile="(${enableval})" sim_profile="(${enableval})";;
+ [a-z]*)
+ profile="1"
+ sim_profile=""
+ for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+ if test x"$sim_profile" = x; then
+ sim_profile="(PROFILE_$x"
+ else
+ sim_profile="${sim_profile}|PROFILE_$x"
+ fi
+ done
+ sim_profile="$sim_profile)" ;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define PROFILE $profile
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_PROFILE $sim_profile
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_profile" >&5
+$as_echo "$sim_profile" >&6; }
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable sim asserts" >&5
+$as_echo_n "checking whether to enable sim asserts... " >&6; }
+sim_assert="1"
+# Check whether --enable-sim-assert was given.
+if test "${enable_sim_assert+set}" = set; then :
+ enableval=$enable_sim_assert; case "${enableval}" in
+ yes) sim_assert="1";;
+ no) sim_assert="0";;
+ *) as_fn_error $? "--enable-sim-assert does not take a value" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ASSERT $sim_assert
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_assert" >&5
+$as_echo "$sim_assert" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default sim environment setting" >&5
+$as_echo_n "checking default sim environment setting... " >&6; }
+sim_environment="ALL_ENVIRONMENT"
+# Check whether --enable-sim-environment was given.
+if test "${enable_sim_environment+set}" = set; then :
+ enableval=$enable_sim_environment; case "${enableval}" in
+ all | ALL) sim_environment="ALL_ENVIRONMENT";;
+ user | USER) sim_environment="USER_ENVIRONMENT";;
+ virtual | VIRTUAL) sim_environment="VIRTUAL_ENVIRONMENT";;
+ operating | OPERATING) sim_environment="OPERATING_ENVIRONMENT";;
+ *) as_fn_error $? "Unknown value $enableval passed to --enable-sim-environment" "$LINENO" 5;;
+esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define WITH_ENVIRONMENT $sim_environment
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_environment" >&5
+$as_echo "$sim_environment" >&6; }
+
+
+sim_inline="-DDEFAULT_INLINE=0"
+# Check whether --enable-sim-inline was given.
+if test "${enable_sim_inline+set}" = set; then :
+ enableval=$enable_sim_inline; sim_inline=""
+case "$enableval" in
+ no) sim_inline="-DDEFAULT_INLINE=0";;
+ 0) sim_inline="-DDEFAULT_INLINE=0";;
+ yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
+ 1) sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
+ *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
+ new_flag=""
+ case "$x" in
+ *_INLINE=*) new_flag="-D$x";;
+ *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
+ *_INLINE) new_flag="-D$x=ALL_C_INLINE";;
+ *) new_flag="-D$x""_INLINE=ALL_C_INLINE";;
+ esac
+ if test x"$sim_inline" = x""; then
+ sim_inline="$new_flag"
+ else
+ sim_inline="$sim_inline $new_flag"
+ fi
+ done;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
+ echo "Setting inline flags = $sim_inline" 6>&1
+fi
+fi
+
+
+
+
+# Check whether --with-pkgversion was given.
+if test "${with_pkgversion+set}" = set; then :
+ withval=$with_pkgversion; case "$withval" in
+ yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
+ no) PKGVERSION= ;;
+ *) PKGVERSION="($withval) " ;;
+ esac
+else
+ PKGVERSION="(SIM) "
+
+fi
+
+
+
+
+
+# Check whether --with-bugurl was given.
+if test "${with_bugurl+set}" = set; then :
+ withval=$with_bugurl; case "$withval" in
+ yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
+ no) BUGURL=
+ ;;
+ *) BUGURL="$withval"
+ ;;
+ esac
+else
+ BUGURL="http://www.gnu.org/software/gdb/bugs/"
+
+fi
+
+ case ${BUGURL} in
+ "")
+ REPORT_BUGS_TO=
+ REPORT_BUGS_TEXI=
+ ;;
+ *)
+ REPORT_BUGS_TO="<$BUGURL>"
+ REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
+ ;;
+ esac;
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define PKGVERSION "$PKGVERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define REPORT_BUGS_TO "$REPORT_BUGS_TO"
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_signal=int
+else
+ ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+
+
+
+
+
+
+wire_endian="LITTLE"
+default_endian=""
+# Check whether --enable-sim-endian was given.
+if test "${enable_sim_endian+set}" = set; then :
+ enableval=$enable_sim_endian; case "${enableval}" in
+ b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_BIG";;
+ l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_LITTLE";;
+ yes) if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+ else
+ if test x"$default_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+ else
+ echo "No hard-wired endian for target $target" 1>&6
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+ fi
+ fi;;
+ no) if test x"$default_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+ else
+ if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+ else
+ echo "No default endian for target $target" 1>&6
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_UNKNOWN"
+ fi
+ fi;;
+ *) as_fn_error $? "\"Unknown value $enableval for --enable-sim-endian\"" "$LINENO" 5; sim_endian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
+ echo "Setting endian flags = $sim_endian" 6>&1
+fi
+else
+ if test x"$default_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=BFD_ENDIAN_${default_endian}"
+else
+ if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=BFD_ENDIAN_${wire_endian}"
+ else
+ sim_endian=
+ fi
+fi
+fi
+
+wire_alignment="STRICT_ALIGNMENT"
+default_alignment="STRICT_ALIGNMENT"
+
+# Check whether --enable-sim-alignment was given.
+if test "${enable_sim_alignment+set}" = set; then :
+ enableval=$enable_sim_alignment; case "${enableval}" in
+ strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
+ nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
+ forced | FORCED) sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
+ yes) if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+ else
+ if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
+ else
+ echo "No hard-wired alignment for target $target" 1>&6
+ sim_alignment="-DWITH_ALIGNMENT=0"
+ fi
+ fi;;
+ no) if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+ else
+ if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
+ else
+ echo "No default alignment for target $target" 1>&6
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
+ fi
+ fi;;
+ *) as_fn_error $? "\"Unknown value $enableval passed to --enable-sim-alignment\"" "$LINENO" 5; sim_alignment="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
+ echo "Setting alignment flags = $sim_alignment" 6>&1
+fi
+else
+ if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+else
+ if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+ else
+ sim_alignment=
+ fi
+fi
+fi
+
+
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+ enableval=$enable_werror; case "${enableval}" in
+ yes | y) ERROR_ON_WARNING="yes" ;;
+ no | n) ERROR_ON_WARNING="no" ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;;
+ esac
+fi
+
+
+# Enable -Werror by default when using gcc
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
+ ERROR_ON_WARNING=yes
+fi
+
+WERROR_CFLAGS=""
+if test "${ERROR_ON_WARNING}" = yes ; then
+# NOTE: Disabled in the sim dir due to most sims generating warnings.
+# WERROR_CFLAGS="-Werror"
+ true
+fi
+
+build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
+-Wpointer-sign \
+-Wno-unused -Wunused-value -Wunused-function \
+-Wno-switch -Wno-char-subscripts -Wmissing-prototypes
+-Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
+-Wold-style-declaration -Wold-style-definition"
+
+# Enable -Wno-format by default when using gcc on mingw since many
+# GCC versions complain about %I64.
+case "${host}" in
+ *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+ *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
+esac
+
+# Check whether --enable-build-warnings was given.
+if test "${enable_build_warnings+set}" = set; then :
+ enableval=$enable_build_warnings; case "${enableval}" in
+ yes) ;;
+ no) build_warnings="-w";;
+ ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${build_warnings} ${t}";;
+ *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${t} ${build_warnings}";;
+ *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+ echo "Setting compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+# Check whether --enable-sim-build-warnings was given.
+if test "${enable_sim_build_warnings+set}" = set; then :
+ enableval=$enable_sim_build_warnings; case "${enableval}" in
+ yes) ;;
+ no) build_warnings="-w";;
+ ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${build_warnings} ${t}";;
+ *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
+ build_warnings="${t} ${build_warnings}";;
+ *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
+esac
+if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
+ echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
+fi
+fi
+WARN_CFLAGS=""
+if test "x${build_warnings}" != x -a "x$GCC" = xyes
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warning flags" >&5
+$as_echo_n "checking compiler warning flags... " >&6; }
+ # Separate out the -Werror flag as some files just cannot be
+ # compiled with it enabled.
+ for w in ${build_warnings}; do
+ case $w in
+ -Werr*) WERROR_CFLAGS=-Werror ;;
+ *) # Check that GCC accepts it
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $w"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ WARN_CFLAGS="${WARN_CFLAGS} $w"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$saved_CFLAGS"
+ esac
+ done
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${WARN_CFLAGS} ${WERROR_CFLAGS}" >&5
+$as_echo "${WARN_CFLAGS} ${WERROR_CFLAGS}" >&6; }
+fi
+
+
+
+cgen_breaks=""
+if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
+cgen_breaks="break cgen_rtx_error";
+fi
+
+ac_config_files="$ac_config_files Makefile.sim:Makefile.in"
+
+ac_config_files="$ac_config_files Make-common.sim:../common/Make-common.in"
+
+ac_config_files="$ac_config_files .gdbinit:../common/gdbinit.in"
+
+ac_config_commands="$ac_config_commands Makefile"
+
+ac_config_commands="$ac_config_commands stamp-h"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+if test -z "${GMAKE_TRUE}" && test -z "${GMAKE_FALSE}"; then
+ as_fn_error $? "conditional \"GMAKE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then
+ as_fn_error $? "conditional \"PLUGINS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+ "depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile.sim") CONFIG_FILES="$CONFIG_FILES Makefile.sim:Makefile.in" ;;
+ "Make-common.sim") CONFIG_FILES="$CONFIG_FILES Make-common.sim:../common/Make-common.in" ;;
+ ".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:../common/gdbinit.in" ;;
+ "Makefile") CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
+ "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = "\a"
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=""
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "Makefile":C) echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
+ rm -f Makesim1.tmp Makesim2.tmp Makefile
+ sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
+ sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
+ sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
+ -e '/^## COMMON_POST_/ r Makesim2.tmp' \
+ <Makefile.sim >Makefile
+ rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
+ ;;
+ "stamp-h":C) echo > stamp-h ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
diff --git a/sim/pru/configure.ac b/sim/pru/configure.ac
new file mode 100644
index 0000000000..e7132b4493
--- /dev/null
+++ b/sim/pru/configure.ac
@@ -0,0 +1,31 @@
+dnl Process this file with autoconf to produce a configure script.
+
+dnl Copyright (C) 2016-2019 Free Software Foundation, Inc.
+dnl Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+dnl
+dnl This file is part of the GNU simulators.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
+dnl
+AC_PREREQ(2.64)dnl
+AC_INIT(Makefile.in)
+sinclude(../common/acinclude.m4)
+
+SIM_AC_COMMON
+
+SIM_AC_OPTION_ENDIAN(LITTLE)
+SIM_AC_OPTION_ALIGNMENT(STRICT_ALIGNMENT,STRICT_ALIGNMENT)
+SIM_AC_OPTION_WARNINGS
+
+SIM_AC_OUTPUT
diff --git a/sim/pru/interp.c b/sim/pru/interp.c
new file mode 100644
index 0000000000..0e783c121c
--- /dev/null
+++ b/sim/pru/interp.c
@@ -0,0 +1,848 @@
+/* Simulator for the Texas Instruments PRU processor
+ Copyright 2009-2019 Free Software Foundation, Inc.
+ Inspired by the Microblaze simulator
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file is part of the simulators.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+#include "bfd.h"
+#include "gdb/callback.h"
+#include "libiberty.h"
+#include "gdb/remote-sim.h"
+#include "sim-main.h"
+#include "sim-assert.h"
+#include "sim-options.h"
+#include "sim-syscall.h"
+#include "pru.h"
+
+/* DMEM zero address is perfectly valid. But if CRT leaves the first word
+ alone, we can use it as a trap to catch NULL pointer access. */
+static bfd_boolean abort_on_dmem_zero_access;
+
+enum {
+ OPTION_ERROR_NULL_DEREF = OPTION_START,
+};
+
+/* Extract (from PRU endianess) and return an integer in HOST's endianness. */
+static uint32_t
+pru_extract_unsigned_integer (uint8_t *addr, size_t len)
+{
+ uint32_t retval;
+ uint8_t *p;
+ uint8_t *startaddr = addr;
+ uint8_t *endaddr = startaddr + len;
+
+ /* Start at the most significant end of the integer, and work towards
+ the least significant. */
+ retval = 0;
+
+ for (p = endaddr; p > startaddr;)
+ retval = (retval << 8) | * -- p;
+ return retval;
+}
+
+/* Store "val" (which is in HOST's endianess) into "addr"
+ (using PRU's endianness). */
+static void
+pru_store_unsigned_integer (uint8_t *addr, size_t len, uint32_t val)
+{
+ uint8_t *p;
+ uint8_t *startaddr = (uint8_t *)addr;
+ uint8_t *endaddr = startaddr + len;
+
+ for (p = startaddr; p < endaddr;)
+ {
+ *p++ = val & 0xff;
+ val >>= 8;
+ }
+}
+
+/* Extract a field value from CPU register using the given REGSEL selector.
+
+ Byte number maps directly to first values of RSEL, so we can
+ safely use "regsel" as a register byte number (0..3). */
+static inline uint32_t
+extract_regval (uint32_t val, uint32_t regsel)
+{
+ ASSERT (RSEL_7_0 == 0);
+ ASSERT (RSEL_15_8 == 1);
+ ASSERT (RSEL_23_16 == 2);
+ ASSERT (RSEL_31_24 == 3);
+
+ switch (regsel)
+ {
+ case RSEL_7_0: return (val >> 0) & 0xff;
+ case RSEL_15_8: return (val >> 8) & 0xff;
+ case RSEL_23_16: return (val >> 16) & 0xff;
+ case RSEL_31_24: return (val >> 24) & 0xff;
+ case RSEL_15_0: return (val >> 0) & 0xffff;
+ case RSEL_23_8: return (val >> 8) & 0xffff;
+ case RSEL_31_16: return (val >> 16) & 0xffff;
+ case RSEL_31_0: return val;
+ default: sim_io_error (NULL, "invalid regsel");
+ }
+}
+
+/* Write a value into CPU subregister pointed by reg and regsel. */
+static inline void
+write_regval (uint32_t val, uint32_t *reg, uint32_t regsel)
+{
+ uint32_t mask, sh;
+
+ switch (regsel)
+ {
+ case RSEL_7_0: mask = (0xffu << 0); sh = 0; break;
+ case RSEL_15_8: mask = (0xffu << 8); sh = 8; break;
+ case RSEL_23_16: mask = (0xffu << 16); sh = 16; break;
+ case RSEL_31_24: mask = (0xffu << 24); sh = 24; break;
+ case RSEL_15_0: mask = (0xffffu << 0); sh = 0; break;
+ case RSEL_23_8: mask = (0xffffu << 8); sh = 8; break;
+ case RSEL_31_16: mask = (0xffffu << 16); sh = 16; break;
+ case RSEL_31_0: mask = 0xffffffffu; sh = 0; break;
+ default: sim_io_error (NULL, "invalid regsel");
+ }
+
+ *reg = (*reg & ~mask) | ((val << sh) & mask);
+}
+
+/* Convert the given IMEM word address to a regular byte address used by the
+ GNU ELF container. */
+static uint32_t
+imem_wordaddr_to_byteaddr (SIM_CPU *cpu, uint16_t wa)
+{
+ return (((uint32_t) wa << 2) & IMEM_ADDR_MASK) | PC_ADDR_SPACE_MARKER;
+}
+
+/* Convert the given ELF text byte address to IMEM word address. */
+static uint16_t
+imem_byteaddr_to_wordaddr (SIM_CPU *cpu, uint32_t ba)
+{
+ return (ba >> 2) & 0xffff;
+}
+
+
+/* Store "nbytes" into DMEM "addr" from CPU register file, starting with
+ register "regn", and byte "regb" within it. */
+static inline void
+pru_reg2dmem (SIM_CPU *cpu, uint32_t addr, unsigned int nbytes,
+ int regn, int regb)
+{
+ /* GDB assumes unconditional access to all memories, so enable additional
+ checks only in standalone mode. */
+ bool standalone = (STATE_OPEN_KIND (CPU_STATE (cpu)) == SIM_OPEN_STANDALONE);
+
+ if (abort_on_dmem_zero_access && addr < 4)
+ {
+ sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, write_map,
+ nbytes, addr, write_transfer,
+ sim_core_unmapped_signal);
+ }
+ else if (standalone && ((addr >= PC_ADDR_SPACE_MARKER)
+ || (addr + nbytes > PC_ADDR_SPACE_MARKER)))
+ {
+ sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, write_map,
+ nbytes, addr, write_transfer,
+ sim_core_unmapped_signal);
+ }
+ else if ((regn * 4 + regb + nbytes) > (32 * 4))
+ {
+ sim_io_eprintf (CPU_STATE (cpu),
+ "SBBO/SBCO with invalid store data length\n");
+ RAISE_SIGILL (CPU_STATE (cpu));
+ }
+ else
+ {
+ TRACE_MEMORY (cpu, "write of %d bytes to %08x", nbytes, addr);
+ while (nbytes--)
+ {
+ sim_core_write_1 (cpu,
+ PC_byteaddr,
+ write_map,
+ addr++,
+ extract_regval (CPU.regs[regn], regb));
+
+ if (++regb >= 4)
+ {
+ regb = 0;
+ regn++;
+ }
+ }
+ }
+}
+
+/* Load "nbytes" from DMEM "addr" into CPU register file, starting with
+ register "regn", and byte "regb" within it. */
+static inline void
+pru_dmem2reg (SIM_CPU *cpu, uint32_t addr, unsigned int nbytes,
+ int regn, int regb)
+{
+ /* GDB assumes unconditional access to all memories, so enable additional
+ checks only in standalone mode. */
+ bool standalone = (STATE_OPEN_KIND (CPU_STATE (cpu)) == SIM_OPEN_STANDALONE);
+
+ if (abort_on_dmem_zero_access && addr < 4)
+ {
+ sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, read_map,
+ nbytes, addr, read_transfer,
+ sim_core_unmapped_signal);
+ }
+ else if (standalone && ((addr >= PC_ADDR_SPACE_MARKER)
+ || (addr + nbytes > PC_ADDR_SPACE_MARKER)))
+ {
+ /* This check is necessary because our IMEM "address space"
+ is not really accessible, yet we have mapped it as a generic
+ memory space. */
+ sim_core_signal (CPU_STATE (cpu), cpu, PC_byteaddr, read_map,
+ nbytes, addr, read_transfer,
+ sim_core_unmapped_signal);
+ }
+ else if ((regn * 4 + regb + nbytes) > (32 * 4))
+ {
+ sim_io_eprintf (CPU_STATE (cpu),
+ "LBBO/LBCO with invalid load data length\n");
+ RAISE_SIGILL (CPU_STATE (cpu));
+ }
+ else
+ {
+ unsigned int b;
+ TRACE_MEMORY (cpu, "read of %d bytes from %08x", nbytes, addr);
+ while (nbytes--)
+ {
+ b = sim_core_read_1 (cpu, PC_byteaddr, read_map, addr++);
+
+ /* Reuse the fact the Register Byte Number maps directly to RSEL. */
+ ASSERT (RSEL_7_0 == 0);
+ write_regval (b, &CPU.regs[regn], regb);
+
+ if (++regb >= 4)
+ {
+ regb = 0;
+ regn++;
+ }
+ }
+ }
+}
+
+/* Set reset values of general-purpose registers. */
+static void
+set_initial_gprs (SIM_CPU *cpu)
+{
+ int i;
+
+ /* Set up machine just out of reset. */
+ CPU_PC_SET (cpu, 0);
+ PC_ADDR_SPACE_MARKER = IMEM_ADDR_DEFAULT; /* from default linker script? */
+
+ /* Clean out the GPRs. */
+ for (i = 0; i < ARRAY_SIZE (CPU.regs); i++)
+ CPU.regs[i] = 0;
+ for (i = 0; i < ARRAY_SIZE (CPU.macregs); i++)
+ CPU.macregs[i] = 0;
+
+ CPU.loop.looptop = CPU.loop.loopend = 0;
+ CPU.loop.loop_in_progress = 0;
+ CPU.loop.loop_counter = 0;
+
+ CPU.carry = 0;
+ CPU.insts = 0;
+ CPU.cycles = 0;
+
+ /* AM335x should provide sane defaults. */
+ CPU.ctable[0] = 0x00020000;
+ CPU.ctable[1] = 0x48040000;
+ CPU.ctable[2] = 0x4802a000;
+ CPU.ctable[3] = 0x00030000;
+ CPU.ctable[4] = 0x00026000;
+ CPU.ctable[5] = 0x48060000;
+ CPU.ctable[6] = 0x48030000;
+ CPU.ctable[7] = 0x00028000;
+ CPU.ctable[8] = 0x46000000;
+ CPU.ctable[9] = 0x4a100000;
+ CPU.ctable[10] = 0x48318000;
+ CPU.ctable[11] = 0x48022000;
+ CPU.ctable[12] = 0x48024000;
+ CPU.ctable[13] = 0x48310000;
+ CPU.ctable[14] = 0x481cc000;
+ CPU.ctable[15] = 0x481d0000;
+ CPU.ctable[16] = 0x481a0000;
+ CPU.ctable[17] = 0x4819c000;
+ CPU.ctable[18] = 0x48300000;
+ CPU.ctable[19] = 0x48302000;
+ CPU.ctable[20] = 0x48304000;
+ CPU.ctable[21] = 0x00032400;
+ CPU.ctable[22] = 0x480c8000;
+ CPU.ctable[23] = 0x480ca000;
+ CPU.ctable[24] = 0x00000000;
+ CPU.ctable[25] = 0x00002000;
+ CPU.ctable[26] = 0x0002e000;
+ CPU.ctable[27] = 0x00032000;
+ CPU.ctable[28] = 0x00000000;
+ CPU.ctable[29] = 0x49000000;
+ CPU.ctable[30] = 0x40000000;
+ CPU.ctable[31] = 0x80000000;
+}
+
+/* Map regsel selector to subregister field width. */
+static inline unsigned int
+regsel_width (uint32_t regsel)
+{
+ switch (regsel)
+ {
+ case RSEL_7_0: return 8;
+ case RSEL_15_8: return 8;
+ case RSEL_23_16: return 8;
+ case RSEL_31_24: return 8;
+ case RSEL_15_0: return 16;
+ case RSEL_23_8: return 16;
+ case RSEL_31_16: return 16;
+ case RSEL_31_0: return 32;
+ default: sim_io_error (NULL, "invalid regsel");
+ }
+}
+
+/* Handle XIN instruction addressing the MAC peripheral. */
+static void
+pru_sim_xin_mac (SIM_DESC sd, SIM_CPU *cpu, unsigned int rd_regn,
+ unsigned int rdb, unsigned int length)
+{
+ if (rd_regn < 25 || (rd_regn * 4 + rdb + length) > (27 + 1) * 4)
+ sim_io_error (sd, "XIN MAC: invalid transfer regn=%u.%u, length=%u\n",
+ rd_regn, rdb, length);
+
+ /* Copy from MAC to PRU regs. Ranges have been validated above. */
+ while (length--)
+ {
+ write_regval (CPU.macregs[rd_regn - 25] >> (rdb * 8),
+ &CPU.regs[rd_regn],
+ rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+}
+
+/* Handle XIN instruction. */
+static void
+pru_sim_xin (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+ unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+ if (wba == 0)
+ {
+ pru_sim_xin_mac (sd, cpu, rd_regn, rdb, length);
+ }
+ else if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+ || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+ {
+ while (length--)
+ {
+ unsigned int val;
+
+ val = extract_regval (CPU.scratchpads[wba][rd_regn], rdb);
+ write_regval (val, &CPU.regs[rd_regn], rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+ }
+ else if (wba == 254 || wba == 255)
+ {
+ /* FILL/ZERO pseudos implemented via XIN. */
+ unsigned int fillbyte = (wba == 254) ? 0xff : 0x00;
+ while (length--)
+ {
+ write_regval (fillbyte, &CPU.regs[rd_regn], rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+ }
+ else
+ {
+ sim_io_error (sd, "XIN: XFR device %d not supported.\n", wba);
+ }
+}
+
+/* Handle XOUT instruction addressing the MAC peripheral. */
+static void
+pru_sim_xout_mac (SIM_DESC sd, SIM_CPU *cpu, unsigned int rd_regn,
+ unsigned int rdb, unsigned int length)
+{
+ const int modereg_accessed = (rd_regn == 25);
+
+ /* Multiple Accumulate. */
+ if (rd_regn < 25 || (rd_regn * 4 + rdb + length) > (27 + 1) * 4)
+ sim_io_error (sd, "XOUT MAC: invalid transfer regn=%u.%u, length=%u\n",
+ rd_regn, rdb, length);
+
+ /* Copy from PRU to MAC regs. Ranges have been validated above. */
+ while (length--)
+ {
+ write_regval (CPU.regs[rd_regn] >> (rdb * 8),
+ &CPU.macregs[rd_regn - 25],
+ rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+
+ if (modereg_accessed
+ && (CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK))
+ {
+ /* MUL/MAC operands are sampled every XOUT in multiply and
+ accumulate mode. */
+ uint64_t prod, oldsum, sum;
+ CPU.macregs[PRU_MACREG_OP_0] = CPU.regs[28];
+ CPU.macregs[PRU_MACREG_OP_1] = CPU.regs[29];
+
+ prod = CPU.macregs[PRU_MACREG_OP_0];
+ prod *= (uint64_t)CPU.macregs[PRU_MACREG_OP_1];
+
+ oldsum = CPU.macregs[PRU_MACREG_ACC_L];
+ oldsum += (uint64_t)CPU.macregs[PRU_MACREG_ACC_H] << 32;
+ sum = oldsum + prod;
+
+ CPU.macregs[PRU_MACREG_PROD_L] = sum & 0xfffffffful;
+ CPU.macregs[PRU_MACREG_PROD_H] = sum >> 32;
+ CPU.macregs[PRU_MACREG_ACC_L] = CPU.macregs[PRU_MACREG_PROD_L];
+ CPU.macregs[PRU_MACREG_ACC_H] = CPU.macregs[PRU_MACREG_PROD_H];
+
+ if (oldsum > sum)
+ CPU.macregs[PRU_MACREG_MODE] |= MAC_R25_ACC_CARRY_MASK;
+ }
+ if (modereg_accessed
+ && (CPU.macregs[PRU_MACREG_MODE] & MAC_R25_ACC_CARRY_MASK))
+ {
+ /* store 1 to clear. */
+ CPU.macregs[PRU_MACREG_MODE] &= ~MAC_R25_ACC_CARRY_MASK;
+ CPU.macregs[PRU_MACREG_ACC_L] = 0;
+ CPU.macregs[PRU_MACREG_ACC_H] = 0;
+ }
+
+}
+
+/* Handle XOUT instruction. */
+static void
+pru_sim_xout (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+ unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+ if (wba == 0)
+ {
+ pru_sim_xout_mac (sd, cpu, rd_regn, rdb, length);
+ }
+ else if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+ || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+ {
+ while (length--)
+ {
+ unsigned int val;
+
+ val = extract_regval (CPU.regs[rd_regn], rdb);
+ write_regval (val, &CPU.scratchpads[wba][rd_regn], rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+ }
+ else
+ sim_io_error (sd, "XOUT: XFR device %d not supported.\n", wba);
+}
+
+/* Handle XCHG instruction. */
+static void
+pru_sim_xchg (SIM_DESC sd, SIM_CPU *cpu, unsigned int wba,
+ unsigned int rd_regn, unsigned int rdb, unsigned int length)
+{
+ if (wba == XFRID_SCRATCH_BANK_0 || wba == XFRID_SCRATCH_BANK_1
+ || wba == XFRID_SCRATCH_BANK_2 || wba == XFRID_SCRATCH_BANK_PEER)
+ {
+ while (length--)
+ {
+ unsigned int valr, vals;
+
+ valr = extract_regval (CPU.regs[rd_regn], rdb);
+ vals = extract_regval (CPU.scratchpads[wba][rd_regn], rdb);
+ write_regval (valr, &CPU.scratchpads[wba][rd_regn], rdb);
+ write_regval (vals, &CPU.regs[rd_regn], rdb);
+ if (++rdb == 4)
+ {
+ rdb = 0;
+ rd_regn++;
+ }
+ }
+ }
+ else
+ sim_io_error (sd, "XOUT: XFR device %d not supported.\n", wba);
+}
+
+/* Handle syscall simulation. Its ABI is specific to the GNU simulator. */
+static void
+pru_sim_syscall (SIM_DESC sd, SIM_CPU *cpu)
+{
+ /* If someday TI confirms that the "reserved" HALT opcode fields
+ can be used for extra arguments, then maybe we can embed
+ the syscall number there. Until then, let's use R1. */
+ const uint32_t syscall_num = CPU.regs[1];
+ long ret;
+
+ ret = sim_syscall (cpu, syscall_num,
+ CPU.regs[14], CPU.regs[15],
+ CPU.regs[16], CPU.regs[17]);
+ CPU.regs[14] = ret;
+}
+
+/* Simulate one instruction. */
+static void
+sim_step_once (SIM_DESC sd)
+{
+ SIM_CPU *cpu = STATE_CPU (sd, 0);
+ const struct pru_opcode *op;
+ uint32_t inst;
+ uint32_t _RDVAL, OP2; /* intermediate values. */
+ int rd_is_modified = 0; /* RD modified and must be stored back. */
+
+ /* Fetch the initial instruction that we'll decode. */
+ inst = sim_core_read_4 (cpu, PC_byteaddr, exec_map, PC_byteaddr);
+ TRACE_MEMORY (cpu, "read of insn 0x%08x from %08x", inst, PC_byteaddr);
+
+ op = pru_find_opcode (inst);
+
+ if (!op)
+ {
+ sim_io_eprintf (sd, "Unknown instruction 0x%04x\n", inst);
+ RAISE_SIGILL (sd);
+ }
+ else
+ {
+ TRACE_DISASM (cpu, PC_byteaddr);
+
+ /* In multiply-only mode, R28/R29 operands are sampled on every clock
+ cycle. */
+ if ((CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK) == 0)
+ {
+ CPU.macregs[PRU_MACREG_OP_0] = CPU.regs[28];
+ CPU.macregs[PRU_MACREG_OP_1] = CPU.regs[29];
+ }
+
+ switch (op->type)
+ {
+/* Helper macro to improve clarity of pru.isa. The empty while is a
+ guard against using RD as a left-hand side value. */
+#define RD do { } while (0); rd_is_modified = 1; _RDVAL
+#define INSTRUCTION(NAME, ACTION) \
+ case prui_ ## NAME: \
+ ACTION; \
+ break;
+#include "pru.isa"
+#undef INSTRUCTION
+#undef RD
+
+ default:
+ RAISE_SIGILL (sd);
+ }
+
+ if (rd_is_modified)
+ write_regval (_RDVAL, &CPU.regs[RD_REGN], RDSEL);
+
+ /* Don't treat r30 and r31 as regular registers, they are I/O! */
+ CPU.regs[30] = 0;
+ CPU.regs[31] = 0;
+
+ /* Handle PC match of loop end. */
+ if (LOOP_IN_PROGRESS && (PC == LOOPEND))
+ {
+ SIM_ASSERT (LOOPCNT > 0);
+ if (--LOOPCNT == 0)
+ LOOP_IN_PROGRESS = 0;
+ else
+ PC = LOOPTOP;
+ }
+
+ /* In multiply-only mode, MAC does multiplication every cycle. */
+ if ((CPU.macregs[PRU_MACREG_MODE] & MAC_R25_MAC_MODE_MASK) == 0)
+ {
+ uint64_t prod;
+ prod = CPU.macregs[PRU_MACREG_OP_0];
+ prod *= (uint64_t)CPU.macregs[PRU_MACREG_OP_1];
+ CPU.macregs[PRU_MACREG_PROD_L] = prod & 0xfffffffful;
+ CPU.macregs[PRU_MACREG_PROD_H] = prod >> 32;
+
+ /* Clear the MAC accumulator when in normal mode. */
+ CPU.macregs[PRU_MACREG_ACC_L] = 0;
+ CPU.macregs[PRU_MACREG_ACC_H] = 0;
+ }
+
+ /* Update cycle counts. */
+ CPU.insts += 1; /* One instruction completed ... */
+ CPU.cycles += 1; /* ... and it takes a single cycle. */
+
+ /* Account for memory access latency with a reasonable estimate.
+ No distinction is currently made between SRAM, DRAM and generic
+ L3 slaves. */
+ if (op->type == prui_lbbo || op->type == prui_sbbo
+ || op->type == prui_lbco || op->type == prui_sbco)
+ CPU.cycles += 2;
+
+ }
+}
+
+/* Implement standard sim_engine_run function. */
+void
+sim_engine_run (SIM_DESC sd,
+ int next_cpu_nr, /* ignore */
+ int nr_cpus, /* ignore */
+ int siggnal) /* ignore */
+{
+ while (1)
+ {
+ sim_step_once (sd);
+ if (sim_events_tick (sd))
+ sim_events_process (sd);
+ }
+}
+
+
+/* Implement callback for standard CPU_PC_FETCH routine. */
+static sim_cia
+pru_pc_get (sim_cpu *cpu)
+{
+ /* Present PC as byte address. */
+ return imem_wordaddr_to_byteaddr (cpu, cpu->pru_cpu.pc);
+}
+
+/* Implement callback for standard CPU_PC_STORE routine. */
+static void
+pru_pc_set (sim_cpu *cpu, sim_cia pc)
+{
+ /* PC given as byte address. */
+ cpu->pru_cpu.pc = imem_byteaddr_to_wordaddr (cpu, pc);
+}
+
+
+/* Implement callback for standard CPU_REG_STORE routine. */
+static int
+pru_store_register (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
+{
+ if (rn < NUM_REGS && rn >= 0)
+ {
+ if (length == 4)
+ {
+ /* Misalignment safe. */
+ long ival = pru_extract_unsigned_integer (memory, 4);
+ if (rn < 32)
+ CPU.regs[rn] = ival;
+ else
+ pru_pc_set (cpu, ival);
+ return 4;
+ }
+ else
+ return 0;
+ }
+ else
+ return 0;
+}
+
+/* Implement callback for standard CPU_REG_FETCH routine. */
+static int
+pru_fetch_register (SIM_CPU *cpu, int rn, unsigned char *memory, int length)
+{
+ long ival;
+
+ if (rn < NUM_REGS && rn >= 0)
+ {
+ if (length == 4)
+ {
+ if (rn < 32)
+ ival = CPU.regs[rn];
+ else
+ ival = pru_pc_get (cpu);
+
+ /* Misalignment-safe. */
+ pru_store_unsigned_integer (memory, 4, ival);
+ return 4;
+ }
+ else
+ return 0;
+ }
+ else
+ return 0;
+}
+
+static void
+free_state (SIM_DESC sd)
+{
+ if (STATE_MODULES (sd) != NULL)
+ sim_module_uninstall (sd);
+ sim_cpu_free_all (sd);
+ sim_state_free (sd);
+}
+
+/* Declare the PRU option handler. */
+static DECLARE_OPTION_HANDLER (pru_option_handler);
+
+/* Implement the PRU option handler. */
+static SIM_RC
+pru_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, char *arg,
+ int is_command)
+{
+ switch (opt)
+ {
+ case OPTION_ERROR_NULL_DEREF:
+ abort_on_dmem_zero_access = TRUE;
+ return SIM_RC_OK;
+
+ default:
+ sim_io_eprintf (sd, "Unknown PRU option %d\n", opt);
+ return SIM_RC_FAIL;
+ }
+}
+
+/* List of PRU-specific options. */
+static const OPTION pru_options[] =
+{
+ { {"error-null-deref", no_argument, NULL, OPTION_ERROR_NULL_DEREF},
+ '\0', NULL, "Trap any access to DMEM address zero",
+ pru_option_handler, NULL },
+
+ { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL, NULL }
+};
+
+/* Implement standard sim_open function. */
+SIM_DESC
+sim_open (SIM_OPEN_KIND kind, host_callback *cb,
+ struct bfd *abfd, char * const *argv)
+{
+ int i;
+ char c;
+ SIM_DESC sd = sim_state_alloc (kind, cb);
+ SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
+
+ /* The cpu data is kept in a separately allocated chunk of memory. */
+ if (sim_cpu_alloc_all (sd, 1, /*cgen_cpu_max_extra_bytes ()*/0) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+
+ if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+ sim_add_option_table (sd, NULL, pru_options);
+
+ /* The parser will print an error message for us, so we silently return. */
+ if (sim_parse_args (sd, argv) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+
+ /* Check for/establish a reference program image. */
+ if (sim_analyze_program (sd,
+ (STATE_PROG_ARGV (sd) != NULL
+ ? *STATE_PROG_ARGV (sd)
+ : NULL), abfd) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+
+ /* Configure/verify the target byte order and other runtime
+ configuration options. */
+ if (sim_config (sd) != SIM_RC_OK)
+ {
+ sim_module_uninstall (sd);
+ return 0;
+ }
+
+ if (sim_post_argv_init (sd) != SIM_RC_OK)
+ {
+ /* Uninstall the modules to avoid memory leaks,
+ file descriptor leaks, etc. */
+ sim_module_uninstall (sd);
+ return 0;
+ }
+
+ /* CPU specific initialization. */
+ for (i = 0; i < MAX_NR_PROCESSORS; ++i)
+ {
+ SIM_CPU *cpu = STATE_CPU (sd, i);
+
+ CPU_REG_STORE (cpu) = pru_store_register;
+ CPU_REG_FETCH (cpu) = pru_fetch_register;
+ CPU_PC_FETCH (cpu) = pru_pc_get;
+ CPU_PC_STORE (cpu) = pru_pc_set;
+
+ set_initial_gprs (cpu);
+ }
+
+ /* Allocate external memory if none specified by user.
+ Use address 4 here in case the user wanted address 0 unmapped. */
+ if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0)
+ {
+ sim_do_commandf (sd, "memory-region 0x%x,0x%x",
+ 0,
+ DMEM_DEFAULT_SIZE);
+ }
+ if (sim_core_read_buffer (sd, NULL, read_map, &c, IMEM_ADDR_DEFAULT, 1) == 0)
+ {
+ sim_do_commandf (sd, "memory-region 0x%x,0x%x",
+ IMEM_ADDR_DEFAULT,
+ IMEM_DEFAULT_SIZE);
+ }
+
+ return sd;
+}
+
+/* Implement standard sim_create_inferior function. */
+SIM_RC
+sim_create_inferior (SIM_DESC sd, struct bfd *prog_bfd,
+ char * const *argv, char * const *env)
+{
+ SIM_CPU *cpu = STATE_CPU (sd, 0);
+ SIM_ADDR addr;
+
+ addr = bfd_get_start_address (prog_bfd);
+
+ sim_pc_set (cpu, addr);
+ PC_ADDR_SPACE_MARKER = addr & ~IMEM_ADDR_MASK;
+
+ /* Standalone mode (i.e. `run`) will take care of the argv for us in
+ sim_open () -> sim_parse_args (). But in debug mode (i.e. 'target sim'
+ with `gdb`), we need to handle it because the user can change the
+ argv on the fly via gdb's 'run'. */
+ if (STATE_PROG_ARGV (sd) != argv)
+ {
+ freeargv (STATE_PROG_ARGV (sd));
+ STATE_PROG_ARGV (sd) = dupargv (argv);
+ }
+
+ return SIM_RC_OK;
+}
diff --git a/sim/pru/pru.h b/sim/pru/pru.h
new file mode 100644
index 0000000000..d4835a548c
--- /dev/null
+++ b/sim/pru/pru.h
@@ -0,0 +1,110 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file is part of the PRU simulator.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef PRU_H
+#define PRU_H
+
+#include "config.h"
+#include "opcode/pru.h"
+
+/* Needed for handling the dual PRU address space. */
+#define IMEM_ADDR_MASK ((1u << 23) - 1)
+
+#define IMEM_ADDR_DEFAULT 0x20000000
+
+/* Define memory sizes to allocate for simulated target. Sizes are
+ artificially large to accommodate execution of compiler test suite.
+ Please synchronize with the linker script for prusim target. */
+#define DMEM_DEFAULT_SIZE (64 * 1024 * 1024)
+
+/* 16-bit word addressable space. */
+#define IMEM_DEFAULT_SIZE (64 * 4 * 1024)
+
+/* For AM335x SoCs. */
+#define XFRID_SCRATCH_BANK_0 10
+#define XFRID_SCRATCH_BANK_1 11
+#define XFRID_SCRATCH_BANK_2 12
+#define XFRID_SCRATCH_BANK_PEER 14
+#define XFRID_MAX 255
+
+#define CPU (cpu->pru_cpu)
+
+#define PC (CPU.pc)
+#define PC_byteaddr ((PC << 2) | PC_ADDR_SPACE_MARKER)
+
+/* Various opcode fields. */
+#define RS1 extract_regval (CPU.regs[GET_INSN_FIELD (RS1, inst)], \
+ GET_INSN_FIELD (RS1SEL, inst))
+#define RS2 extract_regval (CPU.regs[GET_INSN_FIELD (RS2, inst)], \
+ GET_INSN_FIELD (RS2SEL, inst))
+
+#define RS2_w0 extract_regval (CPU.regs[GET_INSN_FIELD (RS2, inst)], \
+ RSEL_15_0)
+
+#define XBBO_BASEREG (CPU.regs[GET_INSN_FIELD (RS1, inst)])
+
+#define RDSEL GET_INSN_FIELD (RDSEL, inst)
+#define RD_WIDTH regsel_width (RDSEL)
+#define RD_REGN GET_INSN_FIELD (RD, inst)
+#define IO GET_INSN_FIELD (IO, inst)
+#define IMM8 GET_INSN_FIELD (IMM8, inst)
+#define IMM16 GET_INSN_FIELD (IMM16, inst)
+#define WAKEONSTATUS GET_INSN_FIELD (WAKEONSTATUS, inst)
+#define CB GET_INSN_FIELD (CB, inst)
+#define RDB GET_INSN_FIELD (RDB, inst)
+#define XFR_WBA GET_INSN_FIELD (XFR_WBA, inst)
+#define LOOP_JMPOFFS GET_INSN_FIELD (LOOP_JMPOFFS, inst)
+#define BROFF ((uint32_t) GET_BROFF_SIGNED (inst))
+
+#define _BURSTLEN_CALCULATE(BITFIELD) \
+ ((BITFIELD) >= LSSBBO_BYTECOUNT_R0_BITS7_0 ? \
+ (CPU.regs[0] >> ((BITFIELD) - LSSBBO_BYTECOUNT_R0_BITS7_0) * 8) & 0xff \
+ : (BITFIELD) + 1)
+
+#define BURSTLEN _BURSTLEN_CALCULATE (GET_BURSTLEN (inst))
+#define XFR_LENGTH _BURSTLEN_CALCULATE (GET_INSN_FIELD (XFR_LENGTH, inst))
+
+#define DO_XIN(wba,regn,rdb,l) \
+ pru_sim_xin (sd, cpu, (wba), (regn), (rdb), (l))
+#define DO_XOUT(wba,regn,rdb,l) \
+ pru_sim_xout (sd, cpu, (wba), (regn), (rdb), (l))
+#define DO_XCHG(wba,regn,rdb,l) \
+ pru_sim_xchg (sd, cpu, (wba), (regn), (rdb), (l))
+
+#define RAISE_SIGILL(sd) sim_engine_halt ((sd), NULL, NULL, PC_byteaddr, \
+ sim_stopped, SIM_SIGILL)
+#define RAISE_SIGINT(sd) sim_engine_halt ((sd), NULL, NULL, PC_byteaddr, \
+ sim_stopped, SIM_SIGINT)
+
+#define MAC_R25_MAC_MODE_MASK (1u << 0)
+#define MAC_R25_ACC_CARRY_MASK (1u << 1)
+
+#define CARRY CPU.carry
+#define CTABLE CPU.ctable
+
+#define PC_ADDR_SPACE_MARKER CPU.pc_addr_space_marker
+
+#define LOOPTOP CPU.loop.looptop
+#define LOOPEND CPU.loop.loopend
+#define LOOP_IN_PROGRESS CPU.loop.loop_in_progress
+#define LOOPCNT CPU.loop.loop_counter
+
+/* 32 GP registers plus PC. */
+#define NUM_REGS 33
+
+#endif /* PRU_H */
diff --git a/sim/pru/pru.isa b/sim/pru/pru.isa
new file mode 100644
index 0000000000..c906b2a169
--- /dev/null
+++ b/sim/pru/pru.isa
@@ -0,0 +1,249 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file is part of the PRU simulator.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+/*
+ PRU Instruction Set Architecture
+
+ INSTRUCTION (NAME,
+ SEMANTICS)
+ */
+
+INSTRUCTION (add,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 + OP2;
+ CARRY = (((uint64_t) RS1 + (uint64_t) OP2) >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (adc,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 + OP2 + CARRY;
+ CARRY = (((uint64_t) RS1 + (uint64_t) OP2 + (uint64_t) CARRY)
+ >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (sub,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 - OP2;
+ CARRY = (((uint64_t) RS1 - (uint64_t) OP2) >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (suc,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 - OP2 - CARRY;
+ CARRY = (((uint64_t) RS1 - (uint64_t) OP2 - (uint64_t) CARRY)
+ >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (rsb,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = OP2 - RS1;
+ CARRY = (((uint64_t) OP2 - (uint64_t) RS1) >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (rsc,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = OP2 - RS1 - CARRY;
+ CARRY = (((uint64_t) OP2 - (uint64_t) RS1 - (uint64_t) CARRY)
+ >> RD_WIDTH) & 1;
+ PC++)
+
+INSTRUCTION (lsl,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 << (OP2 & 0x1f);
+ PC++)
+
+INSTRUCTION (lsr,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 >> (OP2 & 0x1f);
+ PC++)
+
+INSTRUCTION (and,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 & OP2;
+ PC++)
+
+INSTRUCTION (or,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 | OP2;
+ PC++)
+
+INSTRUCTION (xor,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 ^ OP2;
+ PC++)
+
+INSTRUCTION (not,
+ RD = ~RS1;
+ PC++)
+
+INSTRUCTION (min,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 < OP2 ? RS1 : OP2;
+ PC++)
+
+INSTRUCTION (max,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 > OP2 ? RS1 : OP2;
+ PC++)
+
+INSTRUCTION (clr,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 & ~(1u << (OP2 & 0x1f));
+ PC++)
+
+INSTRUCTION (set,
+ OP2 = (IO ? IMM8 : RS2);
+ RD = RS1 | (1u << (OP2 & 0x1f));
+ PC++)
+
+INSTRUCTION (jmp,
+ OP2 = (IO ? IMM16 : RS2);
+ PC = OP2)
+
+INSTRUCTION (jal,
+ OP2 = (IO ? IMM16 : RS2);
+ RD = PC + 1;
+ PC = OP2)
+
+INSTRUCTION (ldi,
+ RD = IMM16;
+ PC++)
+
+INSTRUCTION (halt,
+ pru_sim_syscall (sd, cpu);
+ PC++)
+
+INSTRUCTION (slp,
+ if (!WAKEONSTATUS)
+ {
+ RAISE_SIGINT (sd);
+ }
+ else
+ {
+ PC++;
+ })
+
+INSTRUCTION (qbgt,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 > RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbge,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 >= RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qblt,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 < RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qble,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 <= RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbeq,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 == RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbne,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (OP2 != RS1) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qba,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = PC + BROFF)
+
+INSTRUCTION (qbbs,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = (RS1 & (1u << (OP2 & 0x1f))) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (qbbc,
+ OP2 = (IO ? IMM8 : RS2);
+ PC = !(RS1 & (1u << (OP2 & 0x1f))) ? (PC + BROFF) : (PC + 1))
+
+INSTRUCTION (lbbo,
+ pru_dmem2reg (cpu, XBBO_BASEREG + (IO ? IMM8 : RS2),
+ BURSTLEN, RD_REGN, RDB);
+ PC++)
+
+INSTRUCTION (sbbo,
+ pru_reg2dmem (cpu, XBBO_BASEREG + (IO ? IMM8 : RS2),
+ BURSTLEN, RD_REGN, RDB);
+ PC++)
+
+INSTRUCTION (lbco,
+ pru_dmem2reg (cpu, CTABLE[CB] + (IO ? IMM8 : RS2),
+ BURSTLEN, RD_REGN, RDB);
+ PC++)
+
+INSTRUCTION (sbco,
+ pru_reg2dmem (cpu, CTABLE[CB] + (IO ? IMM8 : RS2),
+ BURSTLEN, RD_REGN, RDB);
+ PC++)
+
+INSTRUCTION (xin,
+ DO_XIN (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+ PC++)
+
+INSTRUCTION (xout,
+ DO_XOUT (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+ PC++)
+
+INSTRUCTION (xchg,
+ DO_XCHG (XFR_WBA, RD_REGN, RDB, XFR_LENGTH);
+ PC++)
+
+INSTRUCTION (sxin,
+ sim_io_eprintf (sd, "SXIN instruction not supported by sim\n");
+ RAISE_SIGILL (sd))
+
+INSTRUCTION (sxout,
+ sim_io_eprintf (sd, "SXOUT instruction not supported by sim\n");
+ RAISE_SIGILL (sd))
+
+INSTRUCTION (sxchg,
+ sim_io_eprintf (sd, "SXCHG instruction not supported by sim\n");
+ RAISE_SIGILL (sd))
+
+INSTRUCTION (loop,
+ OP2 = (IO ? IMM8 + 1 : RS2_w0);
+ if (OP2 == 0)
+ {
+ PC = LOOPEND;
+ }
+ else
+ {
+ LOOPTOP = PC + 1;
+ LOOPEND = PC + LOOP_JMPOFFS;
+ LOOPCNT = OP2;
+ LOOP_IN_PROGRESS = 1;
+ PC++;
+ })
+
+INSTRUCTION (iloop,
+ OP2 = (IO ? IMM8 + 1 : RS2_w0);
+ if (OP2 == 0)
+ {
+ PC = LOOPEND;
+ }
+ else
+ {
+ LOOPTOP = PC + 1;
+ LOOPEND = PC + LOOP_JMPOFFS;
+ LOOPCNT = OP2;
+ LOOP_IN_PROGRESS = 1;
+ PC++;
+ })
diff --git a/sim/pru/sim-main.h b/sim/pru/sim-main.h
new file mode 100644
index 0000000000..b8a2c20ea8
--- /dev/null
+++ b/sim/pru/sim-main.h
@@ -0,0 +1,91 @@
+/* Copyright 2016-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file is part of the PRU simulator.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef PRU_SIM_MAIN
+#define PRU_SIM_MAIN
+
+#include <stdint.h>
+#include <stddef.h>
+#include "pru.h"
+#include "sim-basics.h"
+
+#include "sim-base.h"
+
+/* The machine state.
+ This state is maintained in host byte order. The
+ fetch/store register functions must translate between host
+ byte order and the target processor byte order.
+ Keeping this data in target byte order simplifies the register
+ read/write functions. Keeping this data in host order improves
+ the performance of the simulator. Simulation speed is deemed more
+ important. */
+
+/* For clarity, please keep the same relative order in this enum as in the
+ corresponding group of GP registers.
+
+ In PRU ISA, Multiplier-Accumulator-Unit's registers are like "shadows" of
+ the GP registers. MAC registers are implicitly addressed when executing
+ the XIN/XOUT instructions to access them. Transfer to/from a MAC register
+ can happen only from/to its corresponding GP peer register. */
+
+enum pru_macreg_id {
+ /* MAC register CPU GP register Description. */
+ PRU_MACREG_MODE, /* r25 */ /* Mode (MUL/MAC). */
+ PRU_MACREG_PROD_L, /* r26 */ /* Lower 32 bits of product. */
+ PRU_MACREG_PROD_H, /* r27 */ /* Higher 32 bits of product. */
+ PRU_MACREG_OP_0, /* r28 */ /* First operand. */
+ PRU_MACREG_OP_1, /* r29 */ /* Second operand. */
+ PRU_MACREG_ACC_L, /* N/A */ /* Accumulator (not exposed) */
+ PRU_MACREG_ACC_H, /* N/A */ /* Higher 32 bits of MAC
+ accumulator. */
+ PRU_MAC_NREGS
+};
+
+struct pru_regset
+{
+ uint32_t regs[32]; /* Primary registers. */
+ uint16_t pc; /* IMEM _word_ address. */
+ uint32_t pc_addr_space_marker; /* IMEM virtual linker offset. This
+ is the artificial offset that
+ we invent in order to "separate"
+ the DMEM and IMEM memory spaces. */
+ unsigned int carry : 1;
+ uint32_t ctable[32]; /* Constant offsets table for xBCO. */
+ uint32_t macregs[PRU_MAC_NREGS];
+ uint32_t scratchpads[XFRID_MAX + 1][32];
+ struct {
+ uint16_t looptop; /* LOOP top (PC of loop instr). */
+ uint16_t loopend; /* LOOP end (PC of loop end label). */
+ int loop_in_progress; /* Whether to check for PC==loopend. */
+ uint32_t loop_counter; /* LOOP counter. */
+ } loop;
+ int cycles;
+ int insts;
+};
+
+struct _sim_cpu {
+ struct pru_regset pru_cpu;
+ sim_cpu_base base;
+};
+
+struct sim_state {
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
+
+ sim_state_base base;
+};
+#endif /* PRU_SIM_MAIN */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Add testsuite for the PRU simulator port
@ 2019-09-23 21:49 gdb-buildbot
2019-09-23 21:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 21:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e2e9097bd21406f09fdf57fee0d99e6b45de61b6 ***
commit e2e9097bd21406f09fdf57fee0d99e6b45de61b6
Author: Dimitar Dimitrov <dimitar@dinux.eu>
AuthorDate: Mon Sep 23 17:55:43 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Mon Sep 23 22:11:16 2019 +0100
Add testsuite for the PRU simulator port
sim/testsuite/ChangeLog:
* configure: Regenerate.
sim/testsuite/sim/pru/ChangeLog:
* add.s: New test.
* allinsn.exp: New file.
* dmem-zero-pass.s: New test.
* dmem-zero-trap.s: New test.
* dram.s: New test.
* jmp.s: New test.
* loop-imm.s: New test.
* loop-reg.s: New test.
* mul.s: New test.
* subreg.s: New test.
* testutils.inc: New file.
diff --git a/sim/testsuite/ChangeLog b/sim/testsuite/ChangeLog
index e4cf620a0f..89bd065751 100644
--- a/sim/testsuite/ChangeLog
+++ b/sim/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * configure: Regenerate.
+
2017-12-12 Stafford Horne <shorne@gmail.com>
Peter Gavin <pgavin@gmail.com>
diff --git a/sim/testsuite/configure b/sim/testsuite/configure
index 238d2a2be8..a3e7fa7131 100755
--- a/sim/testsuite/configure
+++ b/sim/testsuite/configure
@@ -1946,6 +1946,9 @@ case "${target}" in
powerpc*-*-*)
sim_arch=ppc
;;
+ pru*-*-*)
+ sim_arch=pru
+ ;;
ft32-*-*)
sim_arch=ft32
;;
diff --git a/sim/testsuite/sim/pru/ChangeLog b/sim/testsuite/sim/pru/ChangeLog
new file mode 100644
index 0000000000..d8b438bb45
--- /dev/null
+++ b/sim/testsuite/sim/pru/ChangeLog
@@ -0,0 +1,13 @@
+2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * add.s: New test.
+ * allinsn.exp: New file.
+ * dmem-zero-pass.s: New test.
+ * dmem-zero-trap.s: New test.
+ * dram.s: New test.
+ * jmp.s: New test.
+ * loop-imm.s: New test.
+ * loop-reg.s: New test.
+ * mul.s: New test.
+ * subreg.s: New test.
+ * testutils.inc: New file.
diff --git a/sim/testsuite/sim/pru/add.s b/sim/testsuite/sim/pru/add.s
new file mode 100644
index 0000000000..bc8530d125
--- /dev/null
+++ b/sim/testsuite/sim/pru/add.s
@@ -0,0 +1,40 @@
+# Check that basic add insn works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r4, 10
+ add r4, r4, 23
+ qbne 2f, r4, 33
+
+ qblt 2f, r4, 33
+
+ qbgt 2f, r4, 33
+
+ jmp 1f
+
+ fail
+
+1:
+ pass
+2: fail
diff --git a/sim/testsuite/sim/pru/allinsn.exp b/sim/testsuite/sim/pru/allinsn.exp
new file mode 100644
index 0000000000..aed804d8e0
--- /dev/null
+++ b/sim/testsuite/sim/pru/allinsn.exp
@@ -0,0 +1,33 @@
+# PRU simulator testsuite.
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if [istarget pru-*] {
+ # all machines
+ set all_machs "pru"
+
+ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.s]] {
+ # If we're only testing specific files and this isn't one of them,
+ # skip it.
+ if ![runtest_file_p $runtests $src] {
+ continue
+ }
+ run_sim_test $src $all_machs
+ }
+}
diff --git a/sim/testsuite/sim/pru/dmem-zero-pass.s b/sim/testsuite/sim/pru/dmem-zero-pass.s
new file mode 100644
index 0000000000..2ec1687f07
--- /dev/null
+++ b/sim/testsuite/sim/pru/dmem-zero-pass.s
@@ -0,0 +1,29 @@
+# Check that DMEM zero address access works by default.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r1, 0
+ lbbo &r2, r1, 0, 4
+
+ pass
diff --git a/sim/testsuite/sim/pru/dmem-zero-trap.s b/sim/testsuite/sim/pru/dmem-zero-trap.s
new file mode 100644
index 0000000000..609c4f8459
--- /dev/null
+++ b/sim/testsuite/sim/pru/dmem-zero-trap.s
@@ -0,0 +1,32 @@
+# Check that DMEM zero address access can be trapped.
+# mach: pru
+# sim: --error-null-deref
+# xerror:
+# output: core: 4 byte read to unmapped address 0x0 at *\n
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r1, 0
+ lbbo &r2, r1, 0, 4
+
+ pass
diff --git a/sim/testsuite/sim/pru/dram.s b/sim/testsuite/sim/pru/dram.s
new file mode 100644
index 0000000000..fd79ba783e
--- /dev/null
+++ b/sim/testsuite/sim/pru/dram.s
@@ -0,0 +1,72 @@
+# Check that DRAM memory access works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ fill r20, 16
+ ldi r10, 0
+ not r10, r10
+ qbne F, r20, r10
+ qbne F, r21, r10
+ qbne F, r22, r10
+ qbne F, r23, r10
+
+ zero r20, 16
+ qbne F, r20, 0
+ qbne F, r21, 0
+ qbne F, r22, 0
+ qbne F, r23, 0
+
+ ldi r0, testarray
+ lbbo &r20, r0, 0, 7
+ qbne F, r20.b0, 0x01
+ qbne F, r20.b1, 0x23
+ qbne F, r20.b2, 0x45
+ qbne F, r20.b3, 0x67
+ qbne F, r21.b0, 0x89
+ qbne F, r21.b1, 0xab
+ qbne F, r21.b2, 0xcd
+ qbne F, r21.b3, 0x00 ; Should not have been loaded!
+ qbne F, r22, 0
+ qbne F, r23, 0
+
+ ldi r1, 0x11
+ sbbo &r1, r0, 9, 1
+ ldi r1, 0x11
+ sbbo &r1, r0, 12, 4
+
+ lbbo &r20, r0, 0, 16
+ qbne F, r21.b3, 0xef
+ qbne F, r22.b0, 0xff
+ qbne F, r22.b1, 0x11
+ qbne F, r22.b2, 0xff
+ qbne F, r22.b3, 0xff
+ qbne F, r23, 0x11
+
+ pass
+F: fail
+
+ .data
+testarray:
+ .byte 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef
+ .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
diff --git a/sim/testsuite/sim/pru/jmp.s b/sim/testsuite/sim/pru/jmp.s
new file mode 100644
index 0000000000..14d749dcf2
--- /dev/null
+++ b/sim/testsuite/sim/pru/jmp.s
@@ -0,0 +1,40 @@
+# Check that jump and branch insns work.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r10, 10
+ call func1
+ qbne F, r10, 11
+
+ ldi r0, %pmem(1f)
+ jmp r0
+ fail
+1:
+ pass
+F: fail
+
+
+func1:
+ add r10, r10, 1
+ ret
diff --git a/sim/testsuite/sim/pru/loop-imm.s b/sim/testsuite/sim/pru/loop-imm.s
new file mode 100644
index 0000000000..7e462fdcc7
--- /dev/null
+++ b/sim/testsuite/sim/pru/loop-imm.s
@@ -0,0 +1,43 @@
+# Check that loop insn works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r25, 0
+ ldi r26, 0
+ ldi r27, 0
+
+ add r27, r27, 1
+ loop 1f, 10
+ add r25, r25, 1
+ add r26, r26, 2
+1:
+ add r27, r27, 1
+
+ qbne F, r25, 10
+ qbne F, r26, 20
+ qbne F, r27, 2
+
+ pass
+
+F: fail
diff --git a/sim/testsuite/sim/pru/loop-reg.s b/sim/testsuite/sim/pru/loop-reg.s
new file mode 100644
index 0000000000..6e4238cf29
--- /dev/null
+++ b/sim/testsuite/sim/pru/loop-reg.s
@@ -0,0 +1,44 @@
+# Check that loop insn works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r25, 0
+ ldi r26, 0
+ ldi r27, 0
+ ldi r28, 10
+
+ add r27, r27, 1
+ loop 1f, r28
+ add r25, r25, 1
+ add r26, r26, 2
+1:
+ add r27, r27, 1
+
+ qbne F, r25, 10
+ qbne F, r26, 20
+ qbne F, r27, 2
+
+ pass
+
+F: fail
diff --git a/sim/testsuite/sim/pru/mul.s b/sim/testsuite/sim/pru/mul.s
new file mode 100644
index 0000000000..4a75baf85a
--- /dev/null
+++ b/sim/testsuite/sim/pru/mul.s
@@ -0,0 +1,89 @@
+# Check that multiplication works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ # MUL: Test regular case
+ ldi r28, 1001
+ ldi r29, 4567
+ nop
+ xin 0, r26, 4
+ qbne32 2f, r26, 1001 * 4567
+
+ # MUL: Test the pipeline emulation
+ ldi r28, 1002
+ ldi r29, 1003
+ ldi r29, 4004
+ xin 0, r26, 4
+ qbne32 2f, r26, 1002 * 1003
+ xin 0, r26, 4
+ qbne32 2f, r26, 1002 * 4004
+
+ # MUL: Test 64-bit result
+ ldi32 r28, 0x12345678
+ ldi32 r29, 0xaabbccdd
+ nop
+ xin 0, r26, 8
+ qbne32 2f, r26, 0x45BE4598
+ qbne32 2f, r27, 0xC241C38
+
+ # MAC: Test regular case
+ ldi r25, 1
+ xout 0, r25, 1
+ ldi r25, 3
+ xout 0, r25, 1
+
+ ldi r25, 1
+ ldi r28, 1001
+ ldi r29, 2002
+ xout 0, r25, 1
+ ldi r28, 3003
+ ldi r29, 4004
+ xout 0, r25, 1
+
+ xin 0, r26, 4
+ qbne32 2f, r26, (1001 * 2002) + (3003 * 4004)
+
+ # MAC: Test 64-bit result
+ ldi r25, 3
+ xout 0, r25, 1
+
+ ldi r25, 1
+ ldi32 r28, 0x10203040
+ ldi32 r29, 0x50607080
+ xout 0, r25, 1
+ ldi32 r28, 0xa0b0c0d0
+ ldi32 r29, 0x11223344
+ xout 0, r25, 1
+
+ xin 0, r26, 8
+ qbne32 2f, r26, 0x8E30C740
+ qbne32 2f, r27, 0xFD156B1
+
+ jmp 1f
+
+ fail
+
+1:
+ pass
+2: fail
diff --git a/sim/testsuite/sim/pru/subreg.s b/sim/testsuite/sim/pru/subreg.s
new file mode 100644
index 0000000000..77dedd11ec
--- /dev/null
+++ b/sim/testsuite/sim/pru/subreg.s
@@ -0,0 +1,40 @@
+# Check that subregister addressing works.
+# mach: pru
+
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+.include "testutils.inc"
+
+ start
+
+ ldi r0, 0x01ff
+ add r0, r0.b0, r0.b1
+ qbne F, r0.b0, 0x00
+ qbne F, r0.b1, 0x01
+ qbne F, r0.w2, 0x00
+
+ ldi r0, 0x01ff
+ add r0.b0, r0.b0, r0.b1
+ adc r0, r0.b1, r0.b3
+ qbne F, r0.b0, 0x02
+ qbne F, r0.b1, 0x00
+ qbne F, r0.w2, 0x00
+
+ pass
+F: fail
diff --git a/sim/testsuite/sim/pru/testutils.inc b/sim/testsuite/sim/pru/testutils.inc
new file mode 100644
index 0000000000..753908447e
--- /dev/null
+++ b/sim/testsuite/sim/pru/testutils.inc
@@ -0,0 +1,100 @@
+# Copyright (C) 2016-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# This file is part of the GNU simulators.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# MACRO: start
+# All assembler tests should start with a call to "main_test"
+ .macro start
+ .text
+
+ .global _start
+_start:
+
+ # Skip over these inlined funcs.
+ jmp __main_test;
+
+ .global __pass
+ .type __pass, function
+__pass:
+ # Note - DRAM LMA and VMA are equal for PRU, so
+ # we can afford to pass DRAM pointer directly.
+ write 1, _passmsg, 5
+ exit 0
+
+ .global __fail
+ .type __fail, function
+__fail:
+ write 1, _failmsg, 5
+ exit 1
+
+ .data
+_passmsg:
+ .ascii "pass\n"
+
+_failmsg:
+ .ascii "fail\n"
+
+ .text
+ .global __main_test
+ .type __main_test, function
+__main_test:
+ .endm
+
+# MACRO: system_call
+# Make a libgloss system call
+ .macro system_call nr:req, arg1=0, arg2=0, arg3=0
+ ldi r1, \nr
+ ldi r14, \arg1
+ ldi r15, \arg2
+ ldi r16, \arg3
+ halt
+ .endm
+
+# MACRO: exit
+# Quit the current test
+ .macro exit rc:req
+ system_call 1, \rc
+ .endm
+
+# MACRO: pass
+# Write 'pass' to stdout via syscalls and quit;
+# meant for non-OS operating environments
+ .macro pass
+ jmp __pass;
+ .endm
+
+# MACRO: fail
+# Write 'fail' to stdout via syscalls and quit;
+# meant for non-OS operating environments
+ .macro fail
+ jmp __fail;
+ .endm
+
+# MACRO: write
+# Just like the write() C function; uses system calls
+ .macro write fd:req, str:req, len:req
+ system_call 5, \fd, \str, \len
+ .endm
+
+# MACRO: qbne32
+# Like qbne instruction, but check a 32-bit constant value.
+ .macro qbne32 label:req, op0:req, C0:req
+ qbne \label, \op0\().b0, ((\C0) >> 0) & 0xff
+ qbne \label, \op0\().b1, ((\C0) >> 8) & 0xff
+ qbne \label, \op0\().b2, ((\C0) >> 16) & 0xff
+ qbne \label, \op0\().b3, ((\C0) >> 24) & 0xff
+ .endm
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] gdb/readline: fix use of an undefined variable
@ 2019-09-23 22:26 gdb-buildbot
2019-09-23 22:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 22:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 32a1adcccf05f98e95a2a451066af810e121bdd9 ***
commit 32a1adcccf05f98e95a2a451066af810e121bdd9
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Wed Sep 18 15:13:25 2019 -0400
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Mon Sep 23 22:35:05 2019 +0100
gdb/readline: fix use of an undefined variable
This commit in binutils-gdb:
commit 830b67068cebe7db0eb0db3fa19244e03859fae0
Date: Fri Jul 12 09:53:02 2019 +0200
[readline] Fix heap-buffer-overflow in update_line
Which corresponds to this commit in upstream readline:
commit 31547b4ea4a1a904e1b08e2bc4b4ebd5042aedaa
Date: Mon Aug 5 10:24:27 2019 -0400
commit readline-20190805 snapshot
Introduced a use of an undefined variable, which can be seen using
valgrind:
$ valgrind --tool=memcheck gdb
GNU gdb (GDB) 8.3.50.20190918-git
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
==24924== Conditional jump or move depends on uninitialised value(s)
==24924== at 0x9986C3: rl_redisplay (display.c:710)
==24924== by 0x9839CE: readline_internal_setup (readline.c:447)
==24924== by 0x9A1C2B: _rl_callback_newline (callback.c:100)
==24924== by 0x9A1C85: rl_callback_handler_install (callback.c:111)
==24924== by 0x6195EB: gdb_rl_callback_handler_install(char const*) (event-top.c:319)
==24924== by 0x61975E: display_gdb_prompt(char const*) (event-top.c:409)
==24924== by 0x4FBFE3: cli_interp_base::pre_command_loop() (cli-interp.c:286)
==24924== by 0x6E53DA: interp_pre_command_loop(interp*) (interps.c:321)
==24924== by 0x731F30: captured_command_loop() (main.c:334)
==24924== by 0x733568: captured_main(void*) (main.c:1182)
==24924== by 0x7335CE: gdb_main(captured_main_args*) (main.c:1197)
==24924== by 0x41325D: main (gdb.c:32)
==24924==
(gdb)
The problem can be traced back to init_line_structures. The very
first time this function is ever called its MINSIZE parameter is
always 0 and the global LINE_SIZE is 1024. Prior to the above
mentioned commits we spot that the line_state variables have not yet
been initialised, and allocate them some new buffer, then we enter
this loop:
for (n = minsize; n < line_size; n++)
{
visible_line[n] = 0;
invisible_line[n] = 1;
}
which would initialise everything from the incoming minimum up to the
potentially extended upper line size.
The problem is that the above patches added a new condition that would
bump up the minsize like this:
if (minsize <= _rl_screenwidth) /* XXX - for gdb */
minsize = _rl_screenwidth + 1;
So, the first time this function is called the incoming MINSIZE is 0,
the LINE_SIZE global is 1024, and if the _rl_screenwidth is 80, we see
that MINSIZE will be pushed up to 80. We still notice that the line
state is uninitialised and allocate some buffers, then we enter the
initialisation loop:
for (n = minsize; n < line_size; n++)
{
visible_line[n] = 0;
invisible_line[n] = 1;
}
And initialise from 80 to 1023 i the newly allocated buffers, leaving
0 to 79 uninitialised.
To confirm this is an issue, if we then look at rl_redisplay we see
that a call to init_line_structures is followed first by a call to
rl_on_new_line, which does initialise visible_line[0], but not
invisible_line[0]. Later in rl_redisplay we have this logic:
if (visible_line[0] != invisible_line[0])
rl_display_fixed = 0;
The use of invisible_line[0] here will be undefined.
Considering how this variable was originally initialised before the
above patches, this patch modifies the initialisation loop in
init_line_structures, to use the original value of MINSIZE. With this
change the valgrind warning goes away.
readline/ChangeLog:
PR cli/24980
* display.c (init_line_structures): Initialise line_state using
original minsize value.
diff --git a/readline/ChangeLog.gdb b/readline/ChangeLog.gdb
index 01b083951e..49e9fba5ad 100644
--- a/readline/ChangeLog.gdb
+++ b/readline/ChangeLog.gdb
@@ -1,3 +1,9 @@
+2019-09-18 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ PR cli/24980
+ * display.c (init_line_structures): Initialise line_state using
+ original minsize value.
+
2019-08-13 Christian Biesinger <cbiesinger@google.com>
* colors.c (_rl_print_color_indicator): Remove unnecessary
diff --git a/readline/display.c b/readline/display.c
index b39f28291b..89193b572b 100644
--- a/readline/display.c
+++ b/readline/display.c
@@ -602,6 +602,7 @@ static void
init_line_structures (int minsize)
{
register int n;
+ int original_minsize = minsize;
if (minsize <= _rl_screenwidth) /* XXX - for gdb */
minsize = _rl_screenwidth + 1;
@@ -622,7 +623,7 @@ init_line_structures (int minsize)
invisible_line = (char *)xrealloc (invisible_line, line_size);
}
- for (n = minsize; n < line_size; n++)
+ for (n = original_minsize; n < line_size; n++)
{
visible_line[n] = 0;
invisible_line[n] = 1;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-23 22:26 [binutils-gdb] gdb/readline: fix use of an undefined variable gdb-buildbot
@ 2019-09-23 22:22 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-23 22:22 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/160
Author:
Andrew Burgess <andrew.burgess@embecosm.com>
Commit tested:
32a1adcccf05f98e95a2a451066af810e121bdd9
Subject of commit:
gdb/readline: fix use of an undefined variable
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/32/32a1adcccf05f98e95a2a451066af810e121bdd9/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: continue for ctrl-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: connect
PASS -> FAIL: gdb.server/reconnect-ctrl-c.exp: second: disconnect
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=8: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: split: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/32/32a1adcccf05f98e95a2a451066af810e121bdd9//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/32/32a1adcccf05f98e95a2a451066af810e121bdd9//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
@ 2019-09-24 22:13 gdb-buildbot
2019-09-24 22:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-24 22:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3d4352200e3e98a6d8855e6f3a39b6d33d84e36b ***
commit 3d4352200e3e98a6d8855e6f3a39b6d33d84e36b
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Tue Sep 24 23:38:49 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Tue Sep 24 23:38:49 2019 +0200
[gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
On my openSUSE Leap 15.1 x86_64 Skylake system with the default (4.12) kernel,
I run into:
...
FAIL: gdb.base/gcore.exp: corefile restored all registers
...
The problem is that there's a difference in the mxcsr register value before
and after the gcore command:
...
- mxcsr 0x0 [ ]
+ mxcsr 0x400440 [ DAZ OM ]
...
This can be traced back to amd64_linux_nat_target::fetch_registers, where
xstateregs is partially initialized by the ptrace call:
...
char xstateregs[X86_XSTATE_MAX_SIZE];
struct iovec iov;
amd64_collect_xsave (regcache, -1, xstateregs, 0);
iov.iov_base = xstateregs;
iov.iov_len = sizeof (xstateregs);
if (ptrace (PTRACE_GETREGSET, tid,
(unsigned int) NT_X86_XSTATE, (long) &iov) < 0)
perror_with_name (_("Couldn't get extended state status"));
amd64_supply_xsave (regcache, -1, xstateregs);
...
after which amd64_supply_xsave is called.
The amd64_supply_xsave call is supposed to only use initialized parts of
xstateregs, but due to a kernel bug on intel skylake (fixed from 4.14 onwards
by commit 0852b374173b "x86/fpu: Add FPU state copying quirk to handle XRSTOR
failure on Intel Skylake CPUs") it can happen that the mxcsr part of
xstateregs is not initialized, while amd64_supply_xsave expects it to be
initialized, which explains the FAIL mentioned above.
Fix the undetermined behaviour by initializing xstateregs before calling
ptrace, which makes sure we get a 0x0 for mxcsr when this kernel bug occurs,
and which also happens to fix the FAIL.
Furthermore, add an xfail for this FAIL which triggers the same kernel bug:
...
FAIL: gdb.arch/amd64-init-x87-values.exp: check_setting_mxcsr_before_enable: \
check new value of MXCSR is still in place
...
Both FAILs pass when using a 5.3 kernel instead on the system mentioned above.
Tested on x86_64-linux.
gdb/ChangeLog:
2019-09-24 Tom de Vries <tdevries@suse.de>
PR gdb/23815
* amd64-linux-nat.c (amd64_linux_nat_target::fetch_registers):
Initialize xstateregs before ptrace PTRACE_GETREGSET call.
gdb/testsuite/ChangeLog:
2019-09-24 Tom de Vries <tdevries@suse.de>
PR gdb/24598
* gdb.arch/amd64-init-x87-values.exp: Add xfail.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 77aab76492..ee53e9c00a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-24 Tom de Vries <tdevries@suse.de>
+
+ PR gdb/23815
+ * amd64-linux-nat.c (amd64_linux_nat_target::fetch_registers):
+ Initialize xstateregs before ptrace PTRACE_GETREGSET call.
+
2019-09-23 Dimitar Dimitrov <dimitar@dinux.eu>
* NEWS: Mention new simulator port for PRU.
diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
index 4f1c98a0d1..d0328b677d 100644
--- a/gdb/amd64-linux-nat.c
+++ b/gdb/amd64-linux-nat.c
@@ -238,6 +238,12 @@ amd64_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum)
char xstateregs[X86_XSTATE_MAX_SIZE];
struct iovec iov;
+ /* Pre-4.14 kernels have a bug (fixed by commit 0852b374173b
+ "x86/fpu: Add FPU state copying quirk to handle XRSTOR failure on
+ Intel Skylake CPUs") that sometimes causes the mxcsr location in
+ xstateregs not to be copied by PTRACE_GETREGSET. Make sure that
+ the location is at least initialized with a defined value. */
+ memset (xstateregs, 0, sizeof (xstateregs));
iov.iov_base = xstateregs;
iov.iov_len = sizeof (xstateregs);
if (ptrace (PTRACE_GETREGSET, tid,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 37e323f747..706c5da420 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-24 Tom de Vries <tdevries@suse.de>
+
+ PR gdb/24598
+ * gdb.arch/amd64-init-x87-values.exp: Add xfail.
+
2019-09-22 Tom de Vries <tdevries@suse.de>
* gdb.base/restore.exp: Allow register variables to be optimized out at
diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
index cdf92dcd37..5fd18dbb79 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
@@ -116,7 +116,7 @@ proc_with_prefix check_x87_regs_around_init {} {
# nop that does not enable any FP features). Finally check that the
# mxcsr register still has the value we set.
proc_with_prefix check_setting_mxcsr_before_enable {} {
- global binfile
+ global binfile gdb_prompt
clean_restart ${binfile}
@@ -127,7 +127,22 @@ proc_with_prefix check_setting_mxcsr_before_enable {} {
gdb_test_no_output "set \$mxcsr=0x9f80" "set a new value for MXCSR"
gdb_test "stepi" "fwait" "step forward one instruction for mxcsr test"
- gdb_test "p/x \$mxcsr" " = 0x9f80" "check new value of MXCSR is still in place"
+
+ set test "check new value of MXCSR is still in place"
+ set pass_pattern " = 0x9f80"
+ # Pre-4.14 kernels have a bug (fixed by commit 0852b374173b "x86/fpu:
+ # Add FPU state copying quirk to handle XRSTOR failure on Intel Skylake
+ # CPUs") that causes mxcsr not to be copied, in which case we get 0 instead of
+ # the just saved value.
+ set xfail_pattern " = 0x0"
+ gdb_test_multiple "p/x \$mxcsr" $test {
+ -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+ pass $test
+ }
+ -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
+ xfail $test
+ }
+ }
}
# Start the test file, all FP features will be disabled. Set new
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-24 22:13 [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs gdb-buildbot
@ 2019-09-24 22:36 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-24 22:36 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/161
Author:
Tom de Vries <tdevries@suse.de>
Commit tested:
3d4352200e3e98a6d8855e6f3a39b6d33d84e36b
Subject of commit:
[gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3d/3d4352200e3e98a6d8855e6f3a39b6d33d84e36b/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: frame without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args, event on MI, ensure no output MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: flush MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again, event on CLI, ensure no output CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: continue to breakpoint: main breakpoint
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: set thread-specific breakpoint, thread 2.2
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: stop at breakpoint in main
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops CLI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: inferior 2: thread 2.2 stops MI
PASS -> FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: main stop
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=11: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3d/3d4352200e3e98a6d8855e6f3a39b6d33d84e36b//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/3d/3d4352200e3e98a6d8855e6f3a39b6d33d84e36b//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove make_hex_string
@ 2019-09-25 16:37 gdb-buildbot
2019-09-25 16:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-25 16:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 858f25f0dd3c7013e4c87b95fa8edac223d26156 ***
commit 858f25f0dd3c7013e4c87b95fa8edac223d26156
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 24 17:36:07 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Wed Sep 25 09:37:56 2019 -0600
Remove make_hex_string
I noticed that make_hex_string does essentially the same thing as
bin2hex, and furthermore is only called in a single spot. This patch
removes make_hex_string.
Tested by the builtbot.
gdb/ChangeLog
2019-09-25 Tom Tromey <tom@tromey.com>
* python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
* utils.h (make_hex_string): Don't declare.
* utils.c (make_hex_string): Remove.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ee53e9c00a..81f5785a78 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-25 Tom Tromey <tom@tromey.com>
+
+ * python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
+ * utils.h (make_hex_string): Don't declare.
+ * utils.c (make_hex_string): Remove.
+
2019-09-24 Tom de Vries <tdevries@suse.de>
PR gdb/23815
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index 2c548450b4..517ed56dc7 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -141,10 +141,9 @@ objfpy_get_build_id (PyObject *self, void *closure)
if (build_id != NULL)
{
- gdb::unique_xmalloc_ptr<char> hex_form
- (make_hex_string (build_id->data, build_id->size));
+ std::string hex_form = bin2hex (build_id->data, build_id->size);
- return host_string_to_python_string (hex_form.get ()).release ();
+ return host_string_to_python_string (hex_form.c_str ()).release ();
}
Py_RETURN_NONE;
diff --git a/gdb/utils.c b/gdb/utils.c
index b2535ebefd..154fcd97e2 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -736,22 +736,6 @@ gdb_print_host_address_1 (const void *addr, struct ui_file *stream)
fprintf_filtered (stream, "%s", host_address_to_string (addr));
}
-/* See utils.h. */
-
-char *
-make_hex_string (const gdb_byte *data, size_t length)
-{
- char *result = (char *) xmalloc (length * 2 + 1);
- char *p;
- size_t i;
-
- p = result;
- for (i = 0; i < length; ++i)
- p += xsnprintf (p, 3, "%02x", data[i]);
- *p = '\0';
- return result;
-}
-
\f
/* An RAII class that sets up to handle input and then tears down
diff --git a/gdb/utils.h b/gdb/utils.h
index 7cdc73ef54..b0b5573239 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -540,11 +540,6 @@ extern void warn_cant_dump_core (const char *reason);
extern void dump_core (void);
-/* Return the hex string form of LENGTH bytes of DATA.
- Space for the result is malloc'd, caller must free. */
-
-extern char *make_hex_string (const gdb_byte *data, size_t length);
-
/* Copy NBITS bits from SOURCE to DEST starting at the given bit
offsets. Use the bit order as specified by BITS_BIG_ENDIAN.
Source and destination buffers must not overlap. */
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-25 16:37 [binutils-gdb] Remove make_hex_string gdb-buildbot
@ 2019-09-25 16:59 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-25 16:59 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/165
Author:
Tom Tromey <tom@tromey.com>
Commit tested:
858f25f0dd3c7013e4c87b95fa8edac223d26156
Subject of commit:
Remove make_hex_string
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/85/858f25f0dd3c7013e4c87b95fa8edac223d26156/
*** Diff to previous build ***
==============================================
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=10: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=17: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=1: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: inferior 1 exited
PASS -> FAIL: gdb.tui/empty.exp: asm: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/85/858f25f0dd3c7013e4c87b95fa8edac223d26156//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/85/858f25f0dd3c7013e4c87b95fa8edac223d26156//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] PR24262, plugin search dir doesn't respect --libdir
@ 2019-09-26 11:09 gdb-buildbot
2019-09-26 11:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-26 11:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 41f37a6fb71f2a3de388108f5cdfca9cbe6e9d51 ***
commit 41f37a6fb71f2a3de388108f5cdfca9cbe6e9d51
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Sep 26 16:20:35 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Sep 26 19:51:18 2019 +0930
PR24262, plugin search dir doesn't respect --libdir
bfd/
PR 24262
* Makefile.am (AM_CPPFLAGS): Add -DLIBDIR.
* plugin.c (load_plugin): Search both ${libdir}/bfd-plugins and
${bindir}/../lib/bfd-plugins if different.
* Makefile.in: Regenerate.
ld/
PR 24262
* ld.texi (-plugin): Revert 2019-03-15 change.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ac0296482b..8496cb484f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-26 Alan Modra <amodra@gmail.com>
+
+ PR 24262
+ * Makefile.am (AM_CPPFLAGS): Add -DLIBDIR.
+ * plugin.c (load_plugin): Search both ${libdir}/bfd-plugins and
+ ${bindir}/../lib/bfd-plugins if different.
+ * Makefile.in: Regenerate.
+
2019-09-23 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_check_relocs): Use bfd_link_executable
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index f31a734599..ca868e7c2e 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -53,7 +53,7 @@ ZLIBINC = @zlibinc@
WARN_CFLAGS = @WARN_CFLAGS@
NO_WERROR = @NO_WERROR@
AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
-AM_CPPFLAGS = -DBINDIR='"$(bindir)"'
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"'
if PLUGINS
bfdinclude_HEADERS += $(INCDIR)/plugin-api.h
LIBDL = @lt_cv_dlopen_libs@
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index c1cd371852..ec1ce3eb8d 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -479,8 +479,9 @@ libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \
ZLIB = @zlibdir@ -lz
ZLIBINC = @zlibinc@
AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
-AM_CPPFLAGS = -DBINDIR='"$(bindir)"' @HDEFINES@ @COREFLAG@ @TDEFINES@ \
- $(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' @HDEFINES@ \
+ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) $(HAVEVECS) \
+ @INCINTL@ $(am__empty)
@PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@
# bfd.h goes here, for now
diff --git a/bfd/plugin.c b/bfd/plugin.c
index ca26005055..5f059befb4 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -367,11 +367,15 @@ register_ld_plugin_object_p (const bfd_target *(*object_p) (bfd *))
static int
load_plugin (bfd *abfd)
{
- char *plugin_dir;
- char *p;
- DIR *d;
- struct dirent *ent;
+ /* The intent was to search ${libdir}/bfd-plugins for plugins, but
+ unfortunately the original implementation wasn't precisely that
+ when configuring binutils using --libdir. Search in the proper
+ path first, then the old one for backwards compatibility. */
+ static const char *path[]
+ = { LIBDIR "/bfd-plugins", BINDIR "/../lib/bfd-plugins" };
+ struct stat last_st;
int found = 0;
+ unsigned int i;
if (!has_plugin)
return found;
@@ -382,38 +386,58 @@ load_plugin (bfd *abfd)
if (plugin_program_name == NULL)
return found;
- plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
- p = make_relative_prefix (plugin_program_name,
- BINDIR,
- plugin_dir);
- free (plugin_dir);
- plugin_dir = NULL;
-
- d = opendir (p);
- if (!d)
- goto out;
-
- while ((ent = readdir (d)))
+ /* Try not to search the same dir twice, by looking at st_dev and
+ st_ino for the dir. If we are on a file system that always sets
+ st_ino to zero or the actual st_ino is zero we might waste some
+ time, but that doesn't matter too much. */
+ last_st.st_dev = 0;
+ last_st.st_ino = 0;
+ for (i = 0; i < sizeof (path) / sizeof (path[0]); i++)
{
- char *full_name;
- struct stat s;
- int valid_plugin;
-
- full_name = concat (p, "/", ent->d_name, NULL);
- if (stat (full_name, &s) == 0 && S_ISREG (s.st_mode))
- found = try_load_plugin (full_name, abfd, &valid_plugin);
- if (has_plugin <= 0)
- has_plugin = valid_plugin;
- free (full_name);
+ char *plugin_dir = make_relative_prefix (plugin_program_name,
+ BINDIR,
+ path[i]);
+ if (plugin_dir)
+ {
+ struct stat st;
+ DIR *d;
+
+ if (stat (plugin_dir, &st) == 0
+ && S_ISDIR (st.st_mode)
+ && !(last_st.st_dev == st.st_dev
+ && last_st.st_ino == st.st_ino
+ && st.st_ino != 0)
+ && (d = opendir (plugin_dir)) != NULL)
+ {
+ struct dirent *ent;
+
+ last_st.st_dev = st.st_dev;
+ last_st.st_ino = st.st_ino;
+ while ((ent = readdir (d)) != NULL)
+ {
+ char *full_name;
+
+ full_name = concat (plugin_dir, "/", ent->d_name, NULL);
+ if (stat (full_name, &st) == 0 && S_ISREG (st.st_mode))
+ {
+ int valid_plugin;
+
+ found = try_load_plugin (full_name, abfd, &valid_plugin);
+ if (has_plugin <= 0)
+ has_plugin = valid_plugin;
+ }
+ free (full_name);
+ if (found)
+ break;
+ }
+ closedir (d);
+ }
+ free (plugin_dir);
+ }
if (found)
break;
}
- out:
- free (p);
- if (d)
- closedir (d);
-
return found;
}
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c90a587b3a..24f0ae90cb 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-26 Alan Modra <amodra@gmail.com>
+
+ PR 24262
+ * ld.texi (-plugin): Revert 2019-03-15 change.
+
2019-09-25 Alan Modra <amodra@gmail.com>
* ld.texi (SORT_BY_ALIGNMENT): Reword slightly.
diff --git a/ld/ld.texi b/ld/ld.texi
index 95fa6a0348..fcbc335c95 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -855,7 +855,7 @@ Note that the location of the compiler originated plugins is different
from the place where the @command{ar}, @command{nm} and
@command{ranlib} programs search for their plugins. In order for
those commands to make use of a compiler based plugin it must first be
-copied into the @file{$@{bindir@}/../lib/bfd-plugins} directory. All gcc
+copied into the @file{$@{libdir@}/bfd-plugins} directory. All gcc
based linker plugins are backward compatible, so it is sufficient to
just copy in the newest one.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove initialize_utils
@ 2019-09-26 14:43 gdb-buildbot
2019-09-26 14:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-26 14:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 12904d3729fd027714bac97a6b8c28437c37c173 ***
commit 12904d3729fd027714bac97a6b8c28437c37c173
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Sep 24 17:52:08 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Thu Sep 26 07:35:00 2019 -0600
Remove initialize_utils
initialize_utils only registers some commands, so it isn't necessary
to run it at any particular time during startup. This patch removes
it and merges its contents into _initialize_utils.
Tested by the buildbot.
gdb/ChangeLog
2019-09-26 Tom Tromey <tom@tromey.com>
* utils.h (initialize_utils): Don't declare.
* top.c (gdb_init): Don't call initialize_utils.
* utils.c (initialize_utils): Remove. Move contents...
(_initialize_utils): ... here.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 81f5785a78..bc6c20375b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-26 Tom Tromey <tom@tromey.com>
+
+ * utils.h (initialize_utils): Don't declare.
+ * top.c (gdb_init): Don't call initialize_utils.
+ * utils.c (initialize_utils): Remove. Move contents...
+ (_initialize_utils): ... here.
+
2019-09-25 Tom Tromey <tom@tromey.com>
* python/py-objfile.c (objfpy_get_build_id): Use bin2hex.
diff --git a/gdb/top.c b/gdb/top.c
index 49e6daae94..a1a08e0b99 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -2234,7 +2234,6 @@ gdb_init (char *argv0)
init_cmd_lists (); /* This needs to be done first. */
initialize_targets (); /* Setup target_terminal macros for utils.c. */
- initialize_utils (); /* Make errors and warnings possible. */
init_page_info ();
diff --git a/gdb/utils.c b/gdb/utils.c
index 154fcd97e2..11295ed978 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2773,57 +2773,6 @@ show_debug_timestamp (struct ui_file *file, int from_tty,
}
\f
-void
-initialize_utils (void)
-{
- add_setshow_uinteger_cmd ("width", class_support, &chars_per_line, _("\
-Set number of characters where GDB should wrap lines of its output."), _("\
-Show number of characters where GDB should wrap lines of its output."), _("\
-This affects where GDB wraps its output to fit the screen width.\n\
-Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."),
- set_width_command,
- show_chars_per_line,
- &setlist, &showlist);
-
- add_setshow_uinteger_cmd ("height", class_support, &lines_per_page, _("\
-Set number of lines in a page for GDB output pagination."), _("\
-Show number of lines in a page for GDB output pagination."), _("\
-This affects the number of lines after which GDB will pause\n\
-its output and ask you whether to continue.\n\
-Setting this to \"unlimited\" or zero causes GDB never pause during output."),
- set_height_command,
- show_lines_per_page,
- &setlist, &showlist);
-
- add_setshow_boolean_cmd ("pagination", class_support,
- &pagination_enabled, _("\
-Set state of GDB output pagination."), _("\
-Show state of GDB output pagination."), _("\
-When pagination is ON, GDB pauses at end of each screenful of\n\
-its output and asks you whether to continue.\n\
-Turning pagination off is an alternative to \"set height unlimited\"."),
- NULL,
- show_pagination_enabled,
- &setlist, &showlist);
-
- add_setshow_boolean_cmd ("sevenbit-strings", class_support,
- &sevenbit_strings, _("\
-Set printing of 8-bit characters in strings as \\nnn."), _("\
-Show printing of 8-bit characters in strings as \\nnn."), NULL,
- NULL,
- show_sevenbit_strings,
- &setprintlist, &showprintlist);
-
- add_setshow_boolean_cmd ("timestamp", class_maintenance,
- &debug_timestamp, _("\
-Set timestamping of debugging messages."), _("\
-Show timestamping of debugging messages."), _("\
-When set, debugging messages will be marked with seconds and microseconds."),
- NULL,
- show_debug_timestamp,
- &setdebuglist, &showdebuglist);
-}
-
/* See utils.h. */
CORE_ADDR
@@ -3432,6 +3381,53 @@ copy_bitwise (gdb_byte *dest, ULONGEST dest_offset,
void
_initialize_utils (void)
{
+ add_setshow_uinteger_cmd ("width", class_support, &chars_per_line, _("\
+Set number of characters where GDB should wrap lines of its output."), _("\
+Show number of characters where GDB should wrap lines of its output."), _("\
+This affects where GDB wraps its output to fit the screen width.\n\
+Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."),
+ set_width_command,
+ show_chars_per_line,
+ &setlist, &showlist);
+
+ add_setshow_uinteger_cmd ("height", class_support, &lines_per_page, _("\
+Set number of lines in a page for GDB output pagination."), _("\
+Show number of lines in a page for GDB output pagination."), _("\
+This affects the number of lines after which GDB will pause\n\
+its output and ask you whether to continue.\n\
+Setting this to \"unlimited\" or zero causes GDB never pause during output."),
+ set_height_command,
+ show_lines_per_page,
+ &setlist, &showlist);
+
+ add_setshow_boolean_cmd ("pagination", class_support,
+ &pagination_enabled, _("\
+Set state of GDB output pagination."), _("\
+Show state of GDB output pagination."), _("\
+When pagination is ON, GDB pauses at end of each screenful of\n\
+its output and asks you whether to continue.\n\
+Turning pagination off is an alternative to \"set height unlimited\"."),
+ NULL,
+ show_pagination_enabled,
+ &setlist, &showlist);
+
+ add_setshow_boolean_cmd ("sevenbit-strings", class_support,
+ &sevenbit_strings, _("\
+Set printing of 8-bit characters in strings as \\nnn."), _("\
+Show printing of 8-bit characters in strings as \\nnn."), NULL,
+ NULL,
+ show_sevenbit_strings,
+ &setprintlist, &showprintlist);
+
+ add_setshow_boolean_cmd ("timestamp", class_maintenance,
+ &debug_timestamp, _("\
+Set timestamping of debugging messages."), _("\
+Show timestamping of debugging messages."), _("\
+When set, debugging messages will be marked with seconds and microseconds."),
+ NULL,
+ show_debug_timestamp,
+ &setdebuglist, &showdebuglist);
+
add_internal_problem_command (&internal_error_problem);
add_internal_problem_command (&internal_warning_problem);
add_internal_problem_command (&demangler_warning_problem);
diff --git a/gdb/utils.h b/gdb/utils.h
index b0b5573239..7df86beec4 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -28,8 +28,6 @@
struct completion_match_for_lcd;
class compiled_regex;
-extern void initialize_utils (void);
-
/* String utilities. */
extern bool sevenbit_strings;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Do not expose stub types to Python
@ 2019-09-26 15:01 gdb-buildbot
2019-09-26 14:56 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-26 15:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5d63b30afa2d1e24a3d1e6fe97507473e0545a02 ***
commit 5d63b30afa2d1e24a3d1e6fe97507473e0545a02
Author: Tom Tromey <tromey@adacore.com>
AuthorDate: Mon Aug 19 13:41:34 2019 -0600
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Thu Sep 26 08:26:12 2019 -0600
Do not expose stub types to Python
dwarf2read.c will create stub types for Ada "Taft Amendment" types.
These stub types can currently be exposed to Python code, where they
show up as TYPE_CODE_VOID types (but that, mysteriously, can sometimes
be used in other ways).
While it's possible to work with such types by using strip_typedefs,
this seemed unpleasant to me. This patch takes another approach
instead, which is to try not to expose stub types to Python users.
gdb/ChangeLog
2019-09-26 Tom Tromey <tromey@adacore.com>
* python/py-type.c (type_to_type_object): Call check_typedef
for stub types.
gdb/testsuite/ChangeLog
2019-09-26 Tom Tromey <tromey@adacore.com>
* gdb.ada/py_taft.exp: New file.
* gdb.ada/py_taft/main.adb: New file.
* gdb.ada/py_taft/pkg.adb: New file.
* gdb.ada/py_taft/pkg.ads: New file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bc6c20375b..433b239b58 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-26 Tom Tromey <tromey@adacore.com>
+
+ * python/py-type.c (type_to_type_object): Call check_typedef
+ for stub types.
+
2019-09-26 Tom Tromey <tom@tromey.com>
* utils.h (initialize_utils): Don't declare.
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index e8af6f60e1..134f76dafb 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1334,6 +1334,17 @@ type_to_type_object (struct type *type)
{
type_object *type_obj;
+ try
+ {
+ /* Try not to let stub types leak out to Python. */
+ if (TYPE_STUB (type))
+ type = check_typedef (type);
+ }
+ catch (...)
+ {
+ /* Just ignore failures in check_typedef. */
+ }
+
type_obj = PyObject_New (type_object, &type_object_type);
if (type_obj)
set_type (type_obj, type);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 706c5da420..56ee785b1f 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-26 Tom Tromey <tromey@adacore.com>
+
+ * gdb.ada/py_taft.exp: New file.
+ * gdb.ada/py_taft/main.adb: New file.
+ * gdb.ada/py_taft/pkg.adb: New file.
+ * gdb.ada/py_taft/pkg.ads: New file.
+
2019-09-24 Tom de Vries <tdevries@suse.de>
PR gdb/24598
diff --git a/gdb/testsuite/gdb.ada/py_taft.exp b/gdb/testsuite/gdb.ada/py_taft.exp
new file mode 100644
index 0000000000..71ac332738
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft.exp
@@ -0,0 +1,38 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+load_lib gdb-python.exp
+
+standard_ada_testfile main
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != ""} {
+ return -1
+}
+
+clean_restart ${testfile}
+
+# Skip this testcase if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/main.adb]
+runto "main.adb:$bp_location"
+
+gdb_test_no_output "python v = gdb.parse_and_eval('v')"
+
+gdb_test "python print(v.dereference().type.code is gdb.TYPE_CODE_VOID)" \
+ "False"
+gdb_test "python print(v.type.strip_typedefs().target().code is gdb.TYPE_CODE_VOID)" \
+ "False"
diff --git a/gdb/testsuite/gdb.ada/py_taft/main.adb b/gdb/testsuite/gdb.ada/py_taft/main.adb
new file mode 100644
index 0000000000..b0ba8bdb90
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/main.adb
@@ -0,0 +1,22 @@
+-- Copyright 2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+with Pkg;
+
+procedure Main is
+ V : Pkg.Value := Pkg.Create (42);
+begin
+ null; -- STOP
+end Main;
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.adb b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
new file mode 100644
index 0000000000..94ce4b1e85
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
@@ -0,0 +1,27 @@
+-- Copyright 2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package body Pkg is
+
+ type Value_Record is record
+ I : Integer;
+ end record;
+
+ function Create (I : Integer) return Value is
+ begin
+ return new Value_Record'(I => I);
+ end Create;
+
+end Pkg;
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.ads b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
new file mode 100644
index 0000000000..daa4edbf1b
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
@@ -0,0 +1,22 @@
+-- Copyright 2019 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Pkg is
+ type Value is private;
+ function Create (I : Integer) return Value;
+private
+ type Value_Record;
+ type Value is access all Value_Record;
+end Pkg;
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Remove gdb_usleep.c
@ 2019-09-26 15:42 gdb-buildbot
2019-09-26 15:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-26 15:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 27a900b8657d8e20a24026bb3485a5f6c9729615 ***
commit 27a900b8657d8e20a24026bb3485a5f6c9729615
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Feb 17 11:23:20 2019 -0700
Commit: Tom Tromey <tromey@adacore.com>
CommitDate: Thu Sep 26 08:43:15 2019 -0600
Remove gdb_usleep.c
I noticed that gdb_usleep is unused, so this patch removes it.
gdb/ChangeLog
2019-09-26 Tom Tromey <tom@tromey.com>
* Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
(HFILES_NO_SRCDIR): Remove gdb_usleep.h.
* gdb_usleep.h: Remove.
* gdb_usleep.c: Remove.
* utils.c: Don't include gdb_usleep.h.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 433b239b58..b36f196025 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-09-26 Tom Tromey <tom@tromey.com>
+
+ * Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
+ (HFILES_NO_SRCDIR): Remove gdb_usleep.h.
+ * gdb_usleep.h: Remove.
+ * gdb_usleep.c: Remove.
+ * utils.c: Don't include gdb_usleep.h.
+
2019-09-26 Tom Tromey <tromey@adacore.com>
* python/py-type.c (type_to_type_object): Call check_typedef
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 877a9ccd6b..d628263675 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1028,7 +1028,6 @@ COMMON_SFILES = \
gdb_bfd.c \
gdb_obstack.c \
gdb_regex.c \
- gdb_usleep.c \
gdbarch.c \
gdbarch-selftests.c \
gdbtypes.c \
@@ -1265,7 +1264,6 @@ HFILES_NO_SRCDIR = \
gdb_regex.h \
gdb_select.h \
gdb-stabs.h \
- gdb_usleep.h \
gdb_vfork.h \
gdb_wchar.h \
gdbarch.h \
diff --git a/gdb/gdb_usleep.c b/gdb/gdb_usleep.c
deleted file mode 100644
index 9a92ced34a..0000000000
--- a/gdb/gdb_usleep.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "gdb_usleep.h"
-#include "gdb_select.h"
-#include "gdbsupport/gdb_sys_time.h"
-
-int
-gdb_usleep (int usec)
-{
- struct timeval delay;
- int retval;
-
- delay.tv_sec = usec / 1000000;
- delay.tv_usec = usec % 1000000;
- retval = gdb_select (0, 0, 0, 0, &delay);
-
- if (retval < 0)
- retval = -1;
- else
- retval = 0;
-
- return retval;
-}
diff --git a/gdb/gdb_usleep.h b/gdb/gdb_usleep.h
deleted file mode 100644
index aadbf0d0ad..0000000000
--- a/gdb/gdb_usleep.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#if !defined(GDB_USLEEP_H)
-#define GDB_USLEEP_H
-
-/* Suspend execution for USEC microseconds.
-
- Limitation: If a signal is raised during the delay, gdb_usleep
- might return earlier than requested.
-
- It returns 0 on success or -1 on error. */
-extern int gdb_usleep (int usect);
-
-#endif /* !defined(GDB_USLEEP_H) */
-
diff --git a/gdb/utils.c b/gdb/utils.c
index 11295ed978..b7d380073f 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -62,7 +62,6 @@
#include <chrono>
-#include "gdb_usleep.h"
#include "interps.h"
#include "gdb_regex.h"
#include "gdbsupport/job-control.h"
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Convert symtab.h function signatures to use bool instead of int
@ 2019-09-26 17:41 gdb-buildbot
2019-09-26 17:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-26 17:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ececd218c5254902db3301d700546f6702112c85 ***
commit ececd218c5254902db3301d700546f6702112c85
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Sep 24 16:43:18 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Thu Sep 26 11:36:40 2019 -0500
Convert symtab.h function signatures to use bool instead of int
gdb/ChangeLog:
2019-09-26 Christian Biesinger <cbiesinger@google.com>
* blockframe.c (find_pc_partial_function): Change return type to bool.
* elfread.c (elf_gnu_ifunc_resolve_name): Likewise.
* minsyms.c (in_gnu_ifunc_stub): Likewise.
(stub_gnu_ifunc_resolve_name): Likewise.
* symtab.c (compare_filenames_for_search): Likewise.
(compare_glob_filenames_for_search): Likewise.
(matching_obj_sections): Likewise.
(symbol_matches_domain): Likewise.
(find_line_symtab): Change out param EXACT_MATCH to bool *.
(find_line_pc): Change return type to bool.
(find_line_pc_range): Likewise.
(producer_is_realview): Likewise.
* symtab.h (symbol_matches_domain): Likewise.
(find_pc_partial_function): Likewise.
(find_pc_line_pc_range): Likewise.
(in_gnu_ifunc_stub): Likewise.
(struct gnu_ifunc_fns) <gnu_ifunc_resolve_name>: Likewise.
(find_line_pc): Likewise.
(find_line_pc_range): Likewise.
(matching_obj_sections): Likewise.
(find_line_symtab): Change out parameter to bool.
(producer_is_realview): Change return type to bool.
(compare_filenames_for_search): Likewise.
(compare_glob_filenames_for_search): Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b36f196025..f323cf6b14 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,30 @@
+2019-09-26 Christian Biesinger <cbiesinger@google.com>
+
+ * blockframe.c (find_pc_partial_function): Change return type to bool.
+ * elfread.c (elf_gnu_ifunc_resolve_name): Likewise.
+ * minsyms.c (in_gnu_ifunc_stub): Likewise.
+ (stub_gnu_ifunc_resolve_name): Likewise.
+ * symtab.c (compare_filenames_for_search): Likewise.
+ (compare_glob_filenames_for_search): Likewise.
+ (matching_obj_sections): Likewise.
+ (symbol_matches_domain): Likewise.
+ (find_line_symtab): Change out param EXACT_MATCH to bool *.
+ (find_line_pc): Change return type to bool.
+ (find_line_pc_range): Likewise.
+ (producer_is_realview): Likewise.
+ * symtab.h (symbol_matches_domain): Likewise.
+ (find_pc_partial_function): Likewise.
+ (find_pc_line_pc_range): Likewise.
+ (in_gnu_ifunc_stub): Likewise.
+ (struct gnu_ifunc_fns) <gnu_ifunc_resolve_name>: Likewise.
+ (find_line_pc): Likewise.
+ (find_line_pc_range): Likewise.
+ (matching_obj_sections): Likewise.
+ (find_line_symtab): Change out parameter to bool.
+ (producer_is_realview): Change return type to bool.
+ (compare_filenames_for_search): Likewise.
+ (compare_glob_filenames_for_search): Likewise.
+
2019-09-26 Tom Tromey <tom@tromey.com>
* Makefile.in (COMMON_SFILES): Remove gdb_usleep.c.
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 4462274f46..a3f82ef5a9 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -209,7 +209,7 @@ clear_pc_function_cache (void)
/* See symtab.h. */
-int
+bool
find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
CORE_ADDR *endaddr, const struct block **block)
{
@@ -333,7 +333,7 @@ find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
*endaddr = 0;
if (block != nullptr)
*block = nullptr;
- return 0;
+ return false;
}
cache_pc_function_low = BMSYMBOL_VALUE_ADDRESS (msymbol);
@@ -374,7 +374,7 @@ find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
if (block != nullptr)
*block = cache_pc_function_block;
- return 1;
+ return true;
}
/* See symtab.h. */
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 901710f283..a3d17e54a2 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -850,21 +850,21 @@ elf_gnu_ifunc_resolve_by_got (const char *name, CORE_ADDR *addr_p)
/* Try to find the target resolved function entry address of a STT_GNU_IFUNC
function NAME. If the address is found it is stored to *ADDR_P (if ADDR_P
- is not NULL) and the function returns 1. It returns 0 otherwise.
+ is not NULL) and the function returns true. It returns false otherwise.
Both the elf_objfile_gnu_ifunc_cache_data hash table and
SYMBOL_GOT_PLT_SUFFIX locations are searched by this function. */
-static int
+static bool
elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
{
if (elf_gnu_ifunc_resolve_by_cache (name, addr_p))
- return 1;
+ return true;
if (elf_gnu_ifunc_resolve_by_got (name, addr_p))
- return 1;
+ return true;
- return 0;
+ return false;
}
/* Call STT_GNU_IFUNC - a function returning addresss of a real function to
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 0f734ebc76..f06de4d88e 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -895,7 +895,7 @@ lookup_minimal_symbol_by_pc (CORE_ADDR pc)
/* Return non-zero iff PC is in an STT_GNU_IFUNC function resolver. */
-int
+bool
in_gnu_ifunc_stub (CORE_ADDR pc)
{
bound_minimal_symbol msymbol
@@ -916,7 +916,7 @@ stub_gnu_ifunc_resolve_addr (struct gdbarch *gdbarch, CORE_ADDR pc)
/* See elf_gnu_ifunc_resolve_name for its real implementation. */
-static int
+static bool
stub_gnu_ifunc_resolve_name (const char *function_name,
CORE_ADDR *function_address_p)
{
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 54c7ed9c7c..6ea9fc6971 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -355,18 +355,18 @@ minimal_symbol::text_p () const
describes what we advertise). Returns true if they match, false
otherwise. */
-int
+bool
compare_filenames_for_search (const char *filename, const char *search_name)
{
int len = strlen (filename);
size_t search_len = strlen (search_name);
if (len < search_len)
- return 0;
+ return false;
/* The tail of FILENAME must match. */
if (FILENAME_CMP (filename + len - search_len, search_name) != 0)
- return 0;
+ return false;
/* Either the names must completely match, or the character
preceding the trailing SEARCH_NAME segment of FILENAME must be a
@@ -393,7 +393,7 @@ compare_filenames_for_search (const char *filename, const char *search_name)
compare_filenames_for_search, but it's the opposite of the order of
arguments to gdb_filename_fnmatch. */
-int
+bool
compare_glob_filenames_for_search (const char *filename,
const char *search_name)
{
@@ -403,7 +403,7 @@ compare_glob_filenames_for_search (const char *filename,
int search_path_elements = count_path_elements (search_name);
if (search_path_elements > file_path_elements)
- return 0;
+ return false;
if (IS_ABSOLUTE_PATH (search_name))
{
@@ -1002,11 +1002,11 @@ symbol_matches_search_name (const struct general_symbol_info *gsymbol,
\f
-/* Return 1 if the two sections are the same, or if they could
+/* Return true if the two sections are the same, or if they could
plausibly be copies of each other, one in an original object
file and another in a separated debug file. */
-int
+bool
matching_obj_sections (struct obj_section *obj_first,
struct obj_section *obj_second)
{
@@ -1015,36 +1015,36 @@ matching_obj_sections (struct obj_section *obj_first,
/* If they're the same section, then they match. */
if (first == second)
- return 1;
+ return true;
/* If either is NULL, give up. */
if (first == NULL || second == NULL)
- return 0;
+ return false;
/* This doesn't apply to absolute symbols. */
if (first->owner == NULL || second->owner == NULL)
- return 0;
+ return false;
/* If they're in the same object file, they must be different sections. */
if (first->owner == second->owner)
- return 0;
+ return false;
/* Check whether the two sections are potentially corresponding. They must
have the same size, address, and name. We can't compare section indexes,
which would be more reliable, because some sections may have been
stripped. */
if (bfd_section_size (first) != bfd_section_size (second))
- return 0;
+ return false;
/* In-memory addresses may start at a different offset, relativize them. */
if (bfd_section_vma (first) - bfd_get_start_address (first->owner)
!= bfd_section_vma (second) - bfd_get_start_address (second->owner))
- return 0;
+ return false;
if (bfd_section_name (first) == NULL
|| bfd_section_name (second) == NULL
|| strcmp (bfd_section_name (first), bfd_section_name (second)) != 0)
- return 0;
+ return false;
/* Otherwise check that they are in corresponding objfiles. */
@@ -1059,12 +1059,12 @@ matching_obj_sections (struct obj_section *obj_first,
if (obj->separate_debug_objfile != NULL
&& obj->separate_debug_objfile->obfd == second->owner)
- return 1;
+ return true;
if (obj->separate_debug_objfile_backlink != NULL
&& obj->separate_debug_objfile_backlink->obfd == second->owner)
- return 1;
+ return true;
- return 0;
+ return false;
}
/* See symtab.h. */
@@ -2674,7 +2674,7 @@ lookup_global_symbol (const char *name,
return lookup_global_or_static_symbol (name, GLOBAL_BLOCK, objfile, domain);
}
-int
+bool
symbol_matches_domain (enum language symbol_language,
domain_enum symbol_domain,
domain_enum domain)
@@ -2688,7 +2688,7 @@ symbol_matches_domain (enum language symbol_language,
{
if ((domain == VAR_DOMAIN || domain == STRUCT_DOMAIN)
&& symbol_domain == STRUCT_DOMAIN)
- return 1;
+ return true;
}
/* For all other languages, strict match is required. */
return (symbol_domain == domain);
@@ -3297,14 +3297,14 @@ find_pc_line_symtab (CORE_ADDR pc)
If found, return the symtab that contains the linetable in which it was
found, set *INDEX to the index in the linetable of the best entry
- found, and set *EXACT_MATCH nonzero if the value returned is an
+ found, and set *EXACT_MATCH to true if the value returned is an
exact match.
If not found, return NULL. */
struct symtab *
find_line_symtab (struct symtab *sym_tab, int line,
- int *index, int *exact_match)
+ int *index, bool *exact_match)
{
int exact = 0; /* Initialized here to avoid a compiler warning. */
@@ -3389,7 +3389,7 @@ done:
if (index)
*index = best_index;
if (exact_match)
- *exact_match = exact;
+ *exact_match = (exact != 0);
return best_symtab;
}
@@ -3435,10 +3435,10 @@ find_pcs_for_symtab_line (struct symtab *symtab, int line,
\f
/* Set the PC value for a given source file and line number and return true.
- Returns zero for invalid line number (and sets the PC to 0).
+ Returns false for invalid line number (and sets the PC to 0).
The source file is specified with a struct symtab. */
-int
+bool
find_line_pc (struct symtab *symtab, int line, CORE_ADDR *pc)
{
struct linetable *l;
@@ -3446,26 +3446,26 @@ find_line_pc (struct symtab *symtab, int line, CORE_ADDR *pc)
*pc = 0;
if (symtab == 0)
- return 0;
+ return false;
symtab = find_line_symtab (symtab, line, &ind, NULL);
if (symtab != NULL)
{
l = SYMTAB_LINETABLE (symtab);
*pc = l->item[ind].pc;
- return 1;
+ return true;
}
else
- return 0;
+ return false;
}
/* Find the range of pc values in a line.
Store the starting pc of the line into *STARTPTR
and the ending pc (start of next line) into *ENDPTR.
- Returns 1 to indicate success.
- Returns 0 if could not find the specified line. */
+ Returns true to indicate success.
+ Returns false if could not find the specified line. */
-int
+bool
find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
CORE_ADDR *endptr)
{
@@ -3474,7 +3474,7 @@ find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
startaddr = sal.pc;
if (startaddr == 0 && !find_line_pc (sal.symtab, sal.line, &startaddr))
- return 0;
+ return false;
/* This whole function is based on address. For example, if line 10 has
two parts, one from 0x100 to 0x200 and one from 0x300 to 0x400, then
@@ -3495,7 +3495,7 @@ find_line_pc_range (struct symtab_and_line sal, CORE_ADDR *startptr,
*startptr = found_sal.pc;
*endptr = found_sal.end;
}
- return 1;
+ return true;
}
/* Given a line table and a line number, return the index into the line
@@ -3549,7 +3549,7 @@ find_line_common (struct linetable *l, int lineno,
return best_index;
}
-int
+bool
find_pc_line_pc_range (CORE_ADDR pc, CORE_ADDR *startptr, CORE_ADDR *endptr)
{
struct symtab_and_line sal;
@@ -6062,7 +6062,7 @@ symtab_observer_executable_changed (void)
/* Return 1 if the supplied producer string matches the ARM RealView
compiler (armcc). */
-int
+bool
producer_is_realview (const char *producer)
{
static const char *const arm_idents[] = {
@@ -6076,13 +6076,13 @@ producer_is_realview (const char *producer)
int i;
if (producer == NULL)
- return 0;
+ return false;
for (i = 0; i < ARRAY_SIZE (arm_idents); i++)
if (startswith (producer, arm_idents[i]))
- return 1;
+ return true;
- return 0;
+ return false;
}
\f
diff --git a/gdb/symtab.h b/gdb/symtab.h
index d046598774..1f0fc62a65 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1518,9 +1518,9 @@ extern const char multiple_symbols_cancel[];
const char *multiple_symbols_select_mode (void);
-int symbol_matches_domain (enum language symbol_language,
- domain_enum symbol_domain,
- domain_enum domain);
+bool symbol_matches_domain (enum language symbol_language,
+ domain_enum symbol_domain,
+ domain_enum domain);
/* lookup a symbol table by source file name. */
@@ -1689,8 +1689,8 @@ extern struct symbol *find_symbol_at_address (CORE_ADDR);
nullptr is used as a return value for *BLOCK if no block is found.
This function either succeeds or fails (not halfway succeeds). If
it succeeds, it sets *NAME, *ADDRESS, and *ENDADDR to real
- information and returns 1. If it fails, it sets *NAME, *ADDRESS
- and *ENDADDR to zero and returns 0.
+ information and returns true. If it fails, it sets *NAME, *ADDRESS
+ and *ENDADDR to zero and returns false.
If the function in question occupies non-contiguous ranges,
*ADDRESS and *ENDADDR are (subject to the conditions noted above) set
@@ -1716,9 +1716,9 @@ extern struct symbol *find_symbol_at_address (CORE_ADDR);
containing the entry pc should instead call
find_function_entry_range_from_pc. */
-extern int find_pc_partial_function (CORE_ADDR pc, const char **name,
- CORE_ADDR *address, CORE_ADDR *endaddr,
- const struct block **block = nullptr);
+extern bool find_pc_partial_function (CORE_ADDR pc, const char **name,
+ CORE_ADDR *address, CORE_ADDR *endaddr,
+ const struct block **block = nullptr);
/* Like find_pc_partial_function, above, but *ADDRESS and *ENDADDR are
set to start and end addresses of the range containing the entry pc.
@@ -1764,7 +1764,7 @@ extern struct compunit_symtab *find_pc_compunit_symtab (CORE_ADDR);
extern struct compunit_symtab *
find_pc_sect_compunit_symtab (CORE_ADDR, struct obj_section *);
-extern int find_pc_line_pc_range (CORE_ADDR, CORE_ADDR *, CORE_ADDR *);
+extern bool find_pc_line_pc_range (CORE_ADDR, CORE_ADDR *, CORE_ADDR *);
extern void reread_symbols (void);
@@ -1786,7 +1786,7 @@ extern struct type *basic_lookup_transparent_type (const char *);
#define GCC2_COMPILED_FLAG_SYMBOL "gcc2_compiled."
#endif
-extern int in_gnu_ifunc_stub (CORE_ADDR pc);
+extern bool in_gnu_ifunc_stub (CORE_ADDR pc);
/* Functions for resolving STT_GNU_IFUNC symbols which are implemented only
for ELF symbol files. */
@@ -1797,7 +1797,7 @@ struct gnu_ifunc_fns
CORE_ADDR (*gnu_ifunc_resolve_addr) (struct gdbarch *gdbarch, CORE_ADDR pc);
/* See elf_gnu_ifunc_resolve_name for its real implementation. */
- int (*gnu_ifunc_resolve_name) (const char *function_name,
+ bool (*gnu_ifunc_resolve_name) (const char *function_name,
CORE_ADDR *function_address_p);
/* See elf_gnu_ifunc_resolver_stop for its real implementation. */
@@ -1861,10 +1861,10 @@ extern struct symtab *find_pc_line_symtab (CORE_ADDR);
/* Given a symtab and line number, return the pc there. */
-extern int find_line_pc (struct symtab *, int, CORE_ADDR *);
+extern bool find_line_pc (struct symtab *, int, CORE_ADDR *);
-extern int find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
- CORE_ADDR *);
+extern bool find_line_pc_range (struct symtab_and_line, CORE_ADDR *,
+ CORE_ADDR *);
extern void resolve_sal_pc (struct symtab_and_line *);
@@ -1936,9 +1936,9 @@ completion_skip_symbol (complete_symbol_mode mode, Symbol *sym)
/* symtab.c */
-int matching_obj_sections (struct obj_section *, struct obj_section *);
+bool matching_obj_sections (struct obj_section *, struct obj_section *);
-extern struct symtab *find_line_symtab (struct symtab *, int, int *, int *);
+extern struct symtab *find_line_symtab (struct symtab *, int, int *, bool *);
/* Given a function symbol SYM, find the symtab and line for the start
of the function. If FUNFIRSTLINE is true, we want the first line
@@ -2051,7 +2051,7 @@ extern struct block_symbol
/* Return 1 if the supplied producer string matches the ARM RealView
compiler (armcc). */
-int producer_is_realview (const char *producer);
+bool producer_is_realview (const char *producer);
void fixup_section (struct general_symbol_info *ginfo,
CORE_ADDR addr, struct objfile *objfile);
@@ -2066,11 +2066,11 @@ extern unsigned int symbol_lookup_debug;
extern bool basenames_may_differ;
-int compare_filenames_for_search (const char *filename,
- const char *search_name);
+bool compare_filenames_for_search (const char *filename,
+ const char *search_name);
-int compare_glob_filenames_for_search (const char *filename,
- const char *search_name);
+bool compare_glob_filenames_for_search (const char *filename,
+ const char *search_name);
bool iterate_over_some_symtabs (const char *name,
const char *real_path,
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] Revert "Improve ptrace-error detection on Linux targets"
@ 2019-09-27 8:20 gdb-buildbot
2019-09-27 8:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-27 8:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 50fa3001ce25e221ca2e54564b5589d29c4bed19 ***
commit 50fa3001ce25e221ca2e54564b5589d29c4bed19
Author: Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Thu Sep 26 14:24:30 2019 -0400
Commit: Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Thu Sep 26 14:24:30 2019 -0400
Revert "Improve ptrace-error detection on Linux targets"
This reverts commit 381beca6146ac68b57edf47d28cdb335fbd11635.
The patch hasn't been fully reviewed yet, and Pedro would like to see
more fixes.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 37626bdd1e..f323cf6b14 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,48 +1,3 @@
-2019-09-26 Sergio Durigan Junior <sergiodj@redhat.com>
- Jan Kratochvil <jan.kratochvil@redhat.com>
- Pedro Alves <palves@redhat.com>
-
- * gdbsupport/gdb-dlfcn.h (gdb_dlopen): Update comment and
- mention that the function throws an error.
- * inf-ptrace.c (default_inf_ptrace_me_fail_reason): New
- function.
- (inf_ptrace_me_fail_reason): New variable.
- (inf_ptrace_me): Update call to 'trace_start_error_with_name'.
- * inf-ptrace.h (inf_ptrace_me_fail_reason): New variable.
- * linux-nat.c (attach_proc_task_lwp_callback): Call
- 'linux_ptrace_attach_fail_reason_lwp'.
- (linux_nat_target::attach): Update call to
- 'linux_ptrace_attach_fail_reason'.
- (_initialize_linux_nat): Set 'inf_ptrace_me_fail_reason'.
- * nat/fork-inferior.c (trace_start_error_with_name): Add
- optional 'append' argument.
- * nat/fork-inferior.h (trace_start_error_with_name): Update
- prototype.
- * nat/linux-ptrace.c: Include "gdbsupport/gdb-dlfcn.h",
- "gdbsupport/filestuff.h" and "nat/fork-inferior.h".
- (selinux_ftype): New typedef.
- (linux_ptrace_restricted_fail_reason): New function.
- (linux_ptrace_attach_fail_reason_1): New function.
- (linux_ptrace_attach_fail_reason): Change first argument type
- from 'ptid_t' to 'pid_t'. Call
- 'linux_ptrace_attach_fail_reason_1' and
- 'linux_ptrace_restricted_fail_reason'.
- (linux_ptrace_attach_fail_reason_lwp): New function.
- (linux_ptrace_me_fail_reason): New function.
- (errno_pipe): New variable.
- (linux_fork_to_function): Initialize pipe before forking.
- (linux_child_function): Deal with errno-passing from child.
- Handle ptrace error.
- (linux_check_child_ptrace_errno): New function.
- (linux_check_child_ptrace_errno): Call
- 'linux_check_child_ptrace_errno'.
- * nat/linux-ptrace.h (linux_ptrace_attach_fail_reason): Update
- prototype.
- (linux_ptrace_attach_fail_reason_lwp): New prototype.
- (linux_ptrace_me_fail_reason): New prototype.
- * remote.c (extended_remote_target::attach): Handle error
- message passed by the server when attach fails.
-
2019-09-26 Christian Biesinger <cbiesinger@google.com>
* blockframe.c (find_pc_partial_function): Change return type to bool.
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 003c8c2ffe..0a10fa3fad 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,8 +1,3 @@
-2019-09-26 Sergio Durigan Junior <sergiodj@redhat.com>
-
- * gdb.texinfo (Linux kernel ptrace restrictions): New appendix
- section.
-
2019-09-20 Ulrich Weigand <uweigand@de.ibm.com>
* doc/gdb.texinfo (Remote Configuration): Remove documentation for
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e7b5b18f2b..f2713c0396 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -182,9 +182,6 @@ software in general. We will miss him.
@value{GDBN}
* Operating System Information:: Getting additional information from
the operating system
-* Linux kernel ptrace restrictions:: Restrictions sometimes
- imposed by the Linux
- kernel on @code{ptrace}
* Trace File Format:: GDB trace file format
* Index Section Format:: .gdb_index section format
* Man Pages:: Manual pages
@@ -44668,146 +44665,6 @@ should contain a comma-separated list of cores that this process
is running on. Target may provide additional columns,
which @value{GDBN} currently ignores.
-@node Linux kernel ptrace restrictions
-@appendix Linux kernel @code{ptrace} restrictions
-@cindex linux kernel ptrace restrictions, attach
-
-The @code{ptrace} system call is used by @value{GDBN} and
-@code{gdbserver} on GNU/Linux to, among other things, attach to a new
-or existing inferior in order to start debugging it. Due to security
-concerns, some distributions and vendors disable or severely restrict
-the ability to perform these operations, which can make @value{GDBN}
-or @code{gdbserver} malfunction. In this section, we will expand on
-how this malfunction can manifest itself, and how to modify the
-system's settings in order to be able to use @value{GDBN} and
-@code{gdbserver} properly.
-
-@menu
-* The error message:: The error message displayed when the
- system prevents @value{GDBN}
- or @code{gdbserver} from using
- @code{ptrace}
-* SELinux's deny_ptrace:: SELinux and the @code{deny_ptrace} option
-* Yama's ptrace_scope:: Yama and the @code{ptrace_scope} setting
-* Docker and seccomp:: Docker and the @code{seccomp}
- infrastructure
-@end menu
-
-@node The error message
-@appendixsection The error message
-
-When the system prevents @value{GDBN} or @code{gdbserver} from using
-the @code{ptrace} system call, you will likely see a descriptive error
-message explaining what is wrong and how to attempt to fix the
-problem. For example, when SELinux's @code{deny_ptrace} option is
-enabled, you can see:
-
-@smallexample
-$ gdb program
-...
-(@value{GDBP}) run
-Starting program: program
-warning: Could not trace the inferior process.
-Error:
-warning: ptrace: Permission denied
-The SELinux 'deny_ptrace' option is enabled and preventing @value{GDBN}
-from using 'ptrace'. You can disable it by executing (as root):
-
- setsebool deny_ptrace off
-
-If you are debugging the inferior remotely, the instruction(s) above must
-be performed in the target system (e.g., where GDBserver is running).
-During startup program exited with code 127.
-(@value{GDBP})
-@end smallexample
-
-Sometimes, it may not be possible to acquire the necessary data to
-determine the root cause of the failure. In this case, you will see a
-generic error message pointing you to this section:
-
-@smallexample
-$ gdb program
-...
-Starting program: program
-warning: Could not trace the inferior process.
-Error:
-warning: ptrace: Permission denied
-There might be restrictions preventing ptrace from working. Please see
-the appendix "Linux kernel ptrace restrictions" in the GDB documentation
-for more details.
-During startup program exited with code 127.
-(@value{GDBP})
-@end smallexample
-
-@node SELinux's deny_ptrace
-@appendixsection SELinux's @code{deny_ptrace}
-@cindex SELinux
-@cindex deny_ptrace
-
-If you are using SELinux, you might want to check whether the
-@code{deny_ptrace} option is enabled by doing:
-
-@smallexample
-$ getsebool deny_ptrace
-deny_ptrace --> on
-@end smallexample
-
-If the option is enabled, you can disable it by doing, as root:
-
-@smallexample
-# setsebool deny_ptrace off
-@end smallexample
-
-The option will be disabled until the next reboot. If you would like
-to disable it permanently, you can do (as root):
-
-@smallexample
-# setsebool -P deny_ptrace off
-@end smallexample
-
-@node Yama's ptrace_scope
-@appendixsection Yama's @code{ptrace_scope}
-@cindex yama, ptrace_scope
-
-If your system has Yama enabled, you might want to check whether the
-@code{ptrace_scope} setting is enabled by checking the value of
-@file{/proc/sys/kernel/yama/ptrace_scope}:
-
-@smallexample
-$ cat /proc/sys/kernel/yama/ptrace_scope
-0
-@end smallexample
-
-If you see anything other than @code{0}, @value{GDBN} or
-@code{gdbserver} can be affected by it. You can temporarily disable
-the feature by doing, as root:
-
-@smallexample
-# sysctl kernel.yama.ptrace_scope=0
-kernel.yama.ptrace_scope = 0
-@end smallexample
-
-You can make this permanent by doing, as root:
-
-@smallexample
-# sysctl -w kernel.yama.ptrace_scope=0
-kernel.yama.ptrace_scope = 0
-@end smallexample
-
-@node Docker and seccomp
-@appendixsection Docker and @code{seccomp}
-@cindex docker, seccomp
-
-If you are using Docker (@uref{https://www.docker.com/}) containers,
-you will probably have to disable its @code{seccomp} protections in
-order to be able to use @value{GDBN} or @code{gdbserver}. To do that,
-you can use the options @code{--cap-add=SYS_PTRACE --security-opt
-seccomp=unconfined} when invoking Docker:
-
-@smallexample
-$ docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
-@end smallexample
-
@node Trace File Format
@appendix Trace File Format
@cindex trace file format
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index e60980dc56..c0c6f51a06 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,17 +1,3 @@
-2019-09-26 Sergio Durigan Junior <sergiodj@redhat.com>
- Pedro Alves <palves@redhat.com>
-
- * linux-low.c (linux_ptrace_fun): Call
- 'linux_ptrace_me_fail_reason'.
- (attach_proc_task_lwp_callback): Call
- 'linux_ptrace_attach_fail_reason_lwp'.
- (linux_attach): Call 'linux_ptrace_attach_fail_reason'.
- * server.c (handle_v_attach): Use try..catch when calling
- 'attach_inferior', and send an error message to the client
- when needed.
- * thread-db.c (attach_thread): Call
- 'linux_ptrace_attach_fail_reason_lwp'.
-
2019-09-20 Christian Biesinger <cbiesinger@google.com>
* debug.c (debug_threads): Remove comment in favor of the header.
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index c0e15c122f..d64c3641ff 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -967,8 +967,7 @@ linux_ptrace_fun ()
{
if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0,
(PTRACE_TYPE_ARG4) 0) < 0)
- trace_start_error_with_name ("ptrace",
- linux_ptrace_me_fail_reason (errno).c_str ());
+ trace_start_error_with_name ("ptrace");
if (setpgid (0, 0) < 0)
trace_start_error_with_name ("setpgid");
@@ -1166,7 +1165,7 @@ attach_proc_task_lwp_callback (ptid_t ptid)
else if (err != 0)
{
std::string reason
- = linux_ptrace_attach_fail_reason_lwp (ptid, err);
+ = linux_ptrace_attach_fail_reason_string (ptid, err);
warning (_("Cannot attach to lwp %d: %s"), lwpid, reason.c_str ());
}
@@ -1198,8 +1197,8 @@ linux_attach (unsigned long pid)
{
remove_process (proc);
- std::string reason = linux_ptrace_attach_fail_reason (pid, err);
- error (_("Cannot attach to process %ld: %s"), pid, reason.c_str ());
+ std::string reason = linux_ptrace_attach_fail_reason_string (ptid, err);
+ error ("Cannot attach to process %ld: %s", pid, reason.c_str ());
}
/* Don't ignore the initial SIGSTOP if we just attached to this
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 976ecbd2df..67e8e3e54d 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -2893,21 +2893,9 @@ handle_v_attach (char *own_buf)
{
client_state &cs = get_client_state ();
int pid;
- int ret;
pid = strtol (own_buf + 8, NULL, 16);
-
- try
- {
- ret = attach_inferior (pid);
- }
- catch (const gdb_exception_error &e)
- {
- snprintf (own_buf, PBUFSIZ, "E.%s", e.what ());
- return 0;
- }
-
- if (pid != 0 && ret == 0)
+ if (pid != 0 && attach_inferior (pid) == 0)
{
/* Don't report shared library events after attaching, even if
some libraries are preloaded. GDB will always poll the
diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c
index e3acf83850..c6b43a06cc 100644
--- a/gdb/gdbserver/thread-db.c
+++ b/gdb/gdbserver/thread-db.c
@@ -224,7 +224,7 @@ attach_thread (const td_thrhandle_t *th_p, td_thrinfo_t *ti_p)
err = linux_attach_lwp (ptid);
if (err != 0)
{
- std::string reason = linux_ptrace_attach_fail_reason_lwp (ptid, err);
+ std::string reason = linux_ptrace_attach_fail_reason_string (ptid, err);
warning ("Could not attach to thread %ld (LWP %d): %s",
(unsigned long) ti_p->ti_tid, ti_p->ti_lid, reason.c_str ());
diff --git a/gdb/gdbsupport/gdb-dlfcn.h b/gdb/gdbsupport/gdb-dlfcn.h
index e933b7a473..6a39d38941 100644
--- a/gdb/gdbsupport/gdb-dlfcn.h
+++ b/gdb/gdbsupport/gdb-dlfcn.h
@@ -32,8 +32,8 @@ struct dlclose_deleter
typedef std::unique_ptr<void, dlclose_deleter> gdb_dlhandle_up;
/* Load the dynamic library file named FILENAME, and return a handle
- for that dynamic library. Throw an error if the loading fails for
- any reason. */
+ for that dynamic library. Return NULL if the loading fails for any
+ reason. */
gdb_dlhandle_up gdb_dlopen (const char *filename);
diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c
index b792af00d1..4a8e732373 100644
--- a/gdb/inf-ptrace.c
+++ b/gdb/inf-ptrace.c
@@ -94,20 +94,6 @@ inf_ptrace_target::remove_fork_catchpoint (int pid)
#endif /* PT_GET_PROCESS_STATE */
\f
-/* Default method for "inf_ptrace_me_fail_reason", which returns an
- empty string. */
-
-static std::string
-default_inf_ptrace_me_fail_reason (int err)
-{
- return {};
-}
-
-/* See inf-ptrace.h. */
-
-std::string (*inf_ptrace_me_fail_reason) (int err)
- = default_inf_ptrace_me_fail_reason;
-
/* Prepare to be traced. */
static void
@@ -115,8 +101,7 @@ inf_ptrace_me (void)
{
/* "Trace me, Dr. Memory!" */
if (ptrace (PT_TRACE_ME, 0, (PTRACE_TYPE_ARG3) 0, 0) < 0)
- trace_start_error_with_name ("ptrace",
- inf_ptrace_me_fail_reason (errno).c_str ());
+ trace_start_error_with_name ("ptrace");
}
/* Start a new inferior Unix child process. EXEC_FILE is the file to
diff --git a/gdb/inf-ptrace.h b/gdb/inf-ptrace.h
index 7cdab9af89..98b5d2e09e 100644
--- a/gdb/inf-ptrace.h
+++ b/gdb/inf-ptrace.h
@@ -83,14 +83,4 @@ protected:
extern pid_t get_ptrace_pid (ptid_t);
-/* Pointer to "inf_ptrace_me_fail_reason", which implements a function
- that can be called by "inf_ptrace_me" in order to obtain the reason
- for a ptrace failure. ERR is the ERRNO value set by the failing
- ptrace call.
-
- This pointer can be overriden by targets that want to personalize
- the error message printed when ptrace fails (see linux-nat.c, for
- example). */
-extern std::string (*inf_ptrace_me_fail_reason) (int err);
-
#endif
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 2c7ded7043..cd5cf1830d 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -1132,7 +1132,7 @@ attach_proc_task_lwp_callback (ptid_t ptid)
else
{
std::string reason
- = linux_ptrace_attach_fail_reason_lwp (ptid, err);
+ = linux_ptrace_attach_fail_reason_string (ptid, err);
warning (_("Cannot attach to lwp %d: %s"),
lwpid, reason.c_str ());
@@ -1187,9 +1187,8 @@ linux_nat_target::attach (const char *args, int from_tty)
}
catch (const gdb_exception_error &ex)
{
- int saved_errno = errno;
pid_t pid = parse_pid_to_attach (args);
- std::string reason = linux_ptrace_attach_fail_reason (pid, saved_errno);
+ std::string reason = linux_ptrace_attach_fail_reason (pid);
if (!reason.empty ())
throw_error (ex.error, "warning: %s\n%s", reason.c_str (),
@@ -4568,10 +4567,6 @@ Enables printf debugging output."),
sigemptyset (&blocked_mask);
lwp_lwpid_htab_create ();
-
- /* Set the proper function to generate a message when ptrace
- fails. */
- inf_ptrace_me_fail_reason = linux_ptrace_me_fail_reason;
}
\f
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
index 2ead4a4858..355e9bef43 100644
--- a/gdb/nat/fork-inferior.c
+++ b/gdb/nat/fork-inferior.c
@@ -591,7 +591,7 @@ trace_start_error (const char *fmt, ...)
/* See nat/fork-inferior.h. */
void
-trace_start_error_with_name (const char *string, const char *append)
+trace_start_error_with_name (const char *string)
{
- trace_start_error ("%s: %s%s", string, safe_strerror (errno), append);
+ trace_start_error ("%s: %s", string, safe_strerror (errno));
}
diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h
index 405f2cf548..065496c382 100644
--- a/gdb/nat/fork-inferior.h
+++ b/gdb/nat/fork-inferior.h
@@ -98,10 +98,9 @@ extern void trace_start_error (const char *fmt, ...)
ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
/* Like "trace_start_error", but the error message is constructed by
- combining STRING with the system error message for errno, and
- (optionally) with APPEND. This function does not return. */
-extern void trace_start_error_with_name (const char *string,
- const char *append = "")
+ combining STRING with the system error message for errno. This
+ function does not return. */
+extern void trace_start_error_with_name (const char *string)
ATTRIBUTE_NORETURN;
#endif /* NAT_FORK_INFERIOR_H */
diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
index 8a048d2ec9..c1ebc0a032 100644
--- a/gdb/nat/linux-ptrace.c
+++ b/gdb/nat/linux-ptrace.c
@@ -21,9 +21,6 @@
#include "linux-procfs.h"
#include "linux-waitpid.h"
#include "gdbsupport/buffer.h"
-#include "gdbsupport/gdb-dlfcn.h"
-#include "nat/fork-inferior.h"
-#include "gdbsupport/filestuff.h"
#ifdef HAVE_SYS_PROCFS_H
#include <sys/procfs.h>
#endif
@@ -33,94 +30,11 @@
of 0 means there are no supported features. */
static int supported_ptrace_options = -1;
-typedef int (*selinux_ftype) (const char *);
+/* Find all possible reasons we could fail to attach PID and return these
+ as a string. An empty string is returned if we didn't find any reason. */
-/* Helper function which checks if ptrace is probably restricted
- (i.e., if ERR is either EACCES or EPERM), and returns a string with
- possible workarounds. */
-
-static std::string
-linux_ptrace_restricted_fail_reason (int err)
-{
- if (err != EACCES && err != EPERM)
- {
- /* It just makes sense to perform the checks below if errno was
- either EACCES or EPERM. */
- return {};
- }
-
- std::string ret;
- gdb_dlhandle_up handle;
-
- try
- {
- handle = gdb_dlopen ("libselinux.so.1");
- }
- catch (const gdb_exception_error &e)
- {
- handle.reset (nullptr);
- }
-
- if (handle != nullptr)
- {
- selinux_ftype selinux_get_bool
- = (selinux_ftype) gdb_dlsym (handle, "security_get_boolean_active");
-
- if (selinux_get_bool != NULL
- && (*selinux_get_bool) ("deny_ptrace") == 1)
- string_appendf (ret,
- _("\n\
-The SELinux 'deny_ptrace' option is enabled and preventing GDB\n\
-from using 'ptrace'. You can disable it by executing (as root):\n\
-\n\
- setsebool deny_ptrace off\n"));
- }
-
- gdb_file_up yama_ptrace_scope
- = gdb_fopen_cloexec ("/proc/sys/kernel/yama/ptrace_scope", "r");
-
- if (yama_ptrace_scope != nullptr)
- {
- char yama_scope = fgetc (yama_ptrace_scope.get ());
-
- if (yama_scope != '0')
- string_appendf (ret,
- _("\n\
-The Linux kernel's Yama ptrace scope is in effect, which can prevent\n\
-GDB from using 'ptrace'. You can disable it by executing (as root):\n\
-\n\
- echo 0 > /proc/sys/kernel/yama/ptrace_scope\n"));
- }
-
- if (ret.empty ())
- {
- /* It wasn't possible to determine the exact reason for the
- ptrace error. Let's just emit a generic error message
- pointing the user to our documentation, where she can find
- instructions on how to try to diagnose the problem. */
- ret = _("\n\
-There might be restrictions preventing ptrace from working. Please see\n\
-the appendix \"Linux kernel ptrace restrictions\" in the GDB documentation\n\
-for more details.");
- }
-
- /* The user may be debugging remotely, so we have to warn that
- the instructions above should be performed in the target. */
- string_appendf (ret,
- _("\n\
-If you are debugging the inferior remotely, the ptrace restriction(s) must\n\
-be disabled in the target system (e.g., where GDBserver is running)."));
-
- return ret;
-}
-
-/* Find all possible reasons we could fail to attach PID and return
- these as a string. An empty string is returned if we didn't find
- any reason. Helper for linux_ptrace_attach_fail_reason and
- linux_ptrace_attach_fail_reason_lwp. */
-
-static std::string
-linux_ptrace_attach_fail_reason_1 (pid_t pid)
+std::string
+linux_ptrace_attach_fail_reason (pid_t pid)
{
pid_t tracerpid = linux_proc_get_tracerpid_nowarn (pid);
std::string result;
@@ -142,24 +56,10 @@ linux_ptrace_attach_fail_reason_1 (pid_t pid)
/* See linux-ptrace.h. */
std::string
-linux_ptrace_attach_fail_reason (pid_t pid, int err)
-{
- std::string result = linux_ptrace_attach_fail_reason_1 (pid);
- std::string ptrace_restrict = linux_ptrace_restricted_fail_reason (err);
-
- if (!ptrace_restrict.empty ())
- result += "\n" + ptrace_restrict;
-
- return result;
-}
-
-/* See linux-ptrace.h. */
-
-std::string
-linux_ptrace_attach_fail_reason_lwp (ptid_t ptid, int err)
+linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err)
{
long lwpid = ptid.lwp ();
- std::string reason = linux_ptrace_attach_fail_reason_1 (lwpid);
+ std::string reason = linux_ptrace_attach_fail_reason (lwpid);
if (!reason.empty ())
return string_printf ("%s (%d), %s", safe_strerror (err), err,
@@ -168,14 +68,6 @@ linux_ptrace_attach_fail_reason_lwp (ptid_t ptid, int err)
return string_printf ("%s (%d)", safe_strerror (err), err);
}
-/* See linux-ptrace.h. */
-
-std::string
-linux_ptrace_me_fail_reason (int err)
-{
- return linux_ptrace_restricted_fail_reason (err);
-}
-
#if defined __i386__ || defined __x86_64__
/* Address of the 'ret' instruction in asm code block below. */
@@ -365,12 +257,6 @@ linux_ptrace_test_ret_to_nx (void)
#endif /* defined __i386__ || defined __x86_64__ */
}
-/* If the PTRACE_TRACEME call on linux_child_function errors, we need
- to be able to send ERRNO back to the parent so that it can check
- whether there are restrictions in place preventing ptrace from
- working. We do that with a pipe. */
-static int errno_pipe[2];
-
/* Helper function to fork a process and make the child process call
the function FUNCTION, passing CHILD_STACK as parameter.
@@ -387,11 +273,6 @@ linux_fork_to_function (gdb_byte *child_stack, int (*function) (void *))
/* Sanity check the function pointer. */
gdb_assert (function != NULL);
- /* Create the pipe that will be used by the child to pass ERRNO
- after the PTRACE_TRACEME call. */
- if (pipe (errno_pipe) != 0)
- trace_start_error_with_name ("pipe");
-
#if defined(__UCLIBC__) && defined(HAS_NOMMU)
#define STACK_SIZE 4096
@@ -440,21 +321,7 @@ linux_grandchild_function (void *child_stack)
static int
linux_child_function (void *child_stack)
{
- /* Close read end. */
- close (errno_pipe[0]);
-
- int ret = ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0,
- (PTRACE_TYPE_ARG4) 0);
- int ptrace_errno = errno;
-
- /* Write ERRNO to the pipe, even if it's zero, and close the writing
- end of the pipe. */
- write (errno_pipe[1], &ptrace_errno, sizeof (ptrace_errno));
- close (errno_pipe[1]);
-
- if (ret != 0)
- _exit (0);
-
+ ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
kill (getpid (), SIGSTOP);
/* Fork a grandchild. */
@@ -469,48 +336,6 @@ static void linux_test_for_tracesysgood (int child_pid);
static void linux_test_for_tracefork (int child_pid);
static void linux_test_for_exitkill (int child_pid);
-/* Helper function to wait for the child to send us the ptrace ERRNO,
- and check if it's OK. */
-
-static void
-linux_check_child_ptrace_errno ()
-{
- int child_errno;
- fd_set rset;
- struct timeval timeout;
-
- /* Close the writing end of the pipe. */
- close (errno_pipe[1]);
-
- FD_ZERO (&rset);
- FD_SET (errno_pipe[0], &rset);
-
- /* One second should be plenty of time to wait for the child's
- reply. */
- timeout.tv_sec = 1;
- timeout.tv_usec = 0;
-
- int ret = select (errno_pipe[0] + 1, &rset, NULL, NULL, &timeout);
-
- if (ret < 0)
- trace_start_error_with_name ("select");
- else if (ret == 0)
- error (_("Timeout while waiting for child's ptrace errno"));
- else
- read (errno_pipe[0], &child_errno, sizeof (child_errno));
-
- if (child_errno != 0)
- {
- /* The child can't use PTRACE_TRACEME. We just bail out. */
- std::string reason = linux_ptrace_restricted_fail_reason (child_errno);
-
- errno = child_errno;
- trace_start_error_with_name ("ptrace", reason.c_str ());
- }
-
- close (errno_pipe[0]);
-}
-
/* Determine ptrace features available on this target. */
void
@@ -527,9 +352,6 @@ linux_check_ptrace_features (void)
reporting. */
child_pid = linux_fork_to_function (NULL, linux_child_function);
- /* Check if the child can successfully use ptrace. */
- linux_check_child_ptrace_errno ();
-
ret = my_waitpid (child_pid, &status, 0);
if (ret == -1)
perror_with_name (("waitpid"));
diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
index 90afb60f34..fd2f12a342 100644
--- a/gdb/nat/linux-ptrace.h
+++ b/gdb/nat/linux-ptrace.h
@@ -176,27 +176,12 @@ struct buffer;
# define TRAP_HWBKPT 4
#endif
-/* Find all possible reasons we could fail to attach PID and return
- these as a string. An empty string is returned if we didn't find
- any reason. If ERR is EACCES or EPERM, we also add a warning about
- possible restrictions to use ptrace. */
-extern std::string linux_ptrace_attach_fail_reason (pid_t pid, int err);
-
-/* Find all possible reasons we could have failed to attach to PID's
- LWPID and return them as a string. ERR is the error PTRACE_ATTACH
- failed with (an errno). Unlike linux_ptrace_attach_fail_reason,
- this function should be used when attaching to an LWP other than
- the leader; it does not warn about ptrace restrictions. */
-extern std::string linux_ptrace_attach_fail_reason_lwp (ptid_t pid, int err);
-
-/* When the call to 'ptrace (PTRACE_TRACEME...' fails, and we have
- already forked, this function can be called in order to try to
- obtain the reason why ptrace failed. ERR should be the ERRNO value
- returned by ptrace.
-
- This function will return a 'std::string' containing the fail
- reason, or an empty string otherwise. */
-extern std::string linux_ptrace_me_fail_reason (int err);
+extern std::string linux_ptrace_attach_fail_reason (pid_t pid);
+
+/* Find all possible reasons we could have failed to attach to PTID
+ and return them as a string. ERR is the error PTRACE_ATTACH failed
+ with (an errno). */
+extern std::string linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
extern void linux_ptrace_init_warnings (void);
extern void linux_check_ptrace_features (void);
diff --git a/gdb/remote.c b/gdb/remote.c
index efc5084cfe..21160e13ac 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -5825,20 +5825,8 @@ extended_remote_target::attach (const char *args, int from_tty)
case PACKET_UNKNOWN:
error (_("This target does not support attaching to a process"));
default:
- {
- std::string errmsg = rs->buf.data ();
-
- if (!errmsg.empty ())
- {
- /* Get rid of the "E." prefix. */
- errmsg.erase (0, 2);
- }
-
- error (_("Attaching to %s failed%s%s"),
- target_pid_to_str (ptid_t (pid)).c_str (),
- !errmsg.empty () ? "\n" : "",
- errmsg.c_str ());
- }
+ error (_("Attaching to %s failed"),
+ target_pid_to_str (ptid_t (pid)).c_str ());
}
set_current_inferior (remote_add_inferior (false, pid, 1, 0));
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-27 8:20 [binutils-gdb] Revert "Improve ptrace-error detection on Linux targets" gdb-buildbot
@ 2019-09-27 8:19 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-27 8:19 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/173
Author:
Sergio Durigan Junior <sergiodj@redhat.com>
Commit tested:
50fa3001ce25e221ca2e54564b5589d29c4bed19
Subject of commit:
Revert "Improve ptrace-error detection on Linux targets"
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/50/50fa3001ce25e221ca2e54564b5589d29c4bed19/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.base/siginfo-obj.exp: extract si_errno
PASS -> FAIL: gdb.base/siginfo-thread.exp: extract si_errno
PASS -> UNRESOLVED: gdb.mi/list-thread-groups-available.exp: list available thread groups
PASS -> UNRESOLVED: gdb.mi/list-thread-groups-available.exp: list available thread groups with filter
PASS -> FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: continue
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: p libvar
PASS -> FAIL: gdb.server/solib-list.exp: non-stop 0: target remote
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=12: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=13: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=15: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=16: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=18: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=6: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=7: wait for stops
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=off: cond_bp_target=1: inferior 1 exited
PASS -> KFAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: inferior 1 exited
PASS -> FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
PASS -> FAIL: gdb.threads/watchthreads.exp: threaded watch loop
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/50/50fa3001ce25e221ca2e54564b5589d29c4bed19//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/50/50fa3001ce25e221ca2e54564b5589d29c4bed19//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add KFAIL for missing support of reverse-debugging of vmovd
@ 2019-09-27 9:30 gdb-buildbot
2019-09-27 13:34 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-27 9:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68f7d34dd506d1ccdaab9e772a533f8e76a5fe19 ***
commit 68f7d34dd506d1ccdaab9e772a533f8e76a5fe19
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Fri Sep 27 10:36:18 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Fri Sep 27 10:36:18 2019 +0200
[gdb/testsuite] Add KFAIL for missing support of reverse-debugging of vmovd
On my openSUSE Leap 15.1 system I run into:
...
(gdb) PASS: gdb.reverse/step-precsave.exp: turn on process record
break 76^M
Breakpoint 2 at 0x400654: file step-reverse.c, line 76.^M
(gdb) PASS: gdb.reverse/step-precsave.exp: breakpoint at end of main
continue^M
Continuing.^M
Process record does not support instruction 0xc5 at address 0x7ffff783fc70.^M
Process record: failed to record execution log.^M
^M
Program stopped.^M
0x00007ffff783fc70 in __memset_avx2_unaligned_erms () from /lib64/libc.so.6^M
(gdb) FAIL: gdb.reverse/step-precsave.exp: run to end of main
...
The problem is that the vmovd instruction is not supported in
reverse-debugging (PR record/23188).
Add a KFAIL for this PR.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-27 Tom de Vries <tdevries@suse.de>
PR record/23188
* gdb.reverse/step-precsave.exp: Add kfail for PR record/23188.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 56ee785b1f..625a70cf43 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-27 Tom de Vries <tdevries@suse.de>
+
+ PR record/23188
+ * gdb.reverse/step-precsave.exp: Add kfail for PR record/23188.
+
2019-09-26 Tom Tromey <tromey@adacore.com>
* gdb.ada/py_taft.exp: New file.
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index 7443995c00..f5e15510e1 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -46,7 +46,15 @@ gdb_test "break $end_of_main" \
# This can take awhile.
with_timeout_factor 20 {
- gdb_test "continue" "Breakpoint .* end of main .*" "run to end of main"
+ set test "run to end of main"
+ gdb_test_multiple "continue" $test {
+ -re "Breakpoint .* end of main .*" {
+ pass $test
+ }
+ -re "Process record does not support instruction 0xc5 at.*$gdb_prompt $" {
+ kfail "record/23188" $test
+ }
+ }
}
# So can this, against gdbserver, for example.
^ permalink raw reply [flat|nested] 3666+ messages in thread
* Failures on RHEL-s390x-m64, branch master
2019-09-27 9:30 [binutils-gdb] [gdb/testsuite] Add KFAIL for missing support of reverse-debugging of vmovd gdb-buildbot
@ 2019-09-27 13:34 ` gdb-buildbot
0 siblings, 0 replies; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-27 13:34 UTC (permalink / raw)
To: gdb-testers
Buildername:
RHEL-s390x-m64
Worker:
rhel-7_1-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/13/builds/175
Author:
Tom de Vries <tdevries@suse.de>
Commit tested:
68f7d34dd506d1ccdaab9e772a533f8e76a5fe19
Subject of commit:
[gdb/testsuite] Add KFAIL for missing support of reverse-debugging of vmovd
Testsuite logs (gdb.sum, gdb.log and others):
https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/68/68f7d34dd506d1ccdaab9e772a533f8e76a5fe19/
*** Diff to previous build ***
==============================================
PASS -> FAIL: gdb.reverse/step-precsave.exp: finish out of fn call
PASS -> FAIL: gdb.reverse/step-precsave.exp: next over call
PASS -> FAIL: gdb.reverse/step-precsave.exp: next test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: next test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reload core file
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next over call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse next test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step into fn call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step out of called fn
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse step test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse stepi from a function call
PASS -> FAIL: gdb.reverse/step-precsave.exp: reverse stepi thru function return
PASS -> FAIL: gdb.reverse/step-precsave.exp: save process recfile
PASS -> FAIL: gdb.reverse/step-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/step-precsave.exp: simple reverse stepi
PASS -> FAIL: gdb.reverse/step-precsave.exp: simple stepi
PASS -> FAIL: gdb.reverse/step-precsave.exp: step into call
PASS -> FAIL: gdb.reverse/step-precsave.exp: step test 1
PASS -> FAIL: gdb.reverse/step-precsave.exp: step test 2
PASS -> FAIL: gdb.reverse/step-precsave.exp: step up to call
PASS -> FAIL: gdb.reverse/step-precsave.exp: stepi back from function call
PASS -> FAIL: gdb.reverse/step-precsave.exp: stepi into function call
new FAIL: gdb.server/wrapper.exp: setting breakpoint at marker
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
==============================================
*** Complete list of XFAILs for this builder ***
To obtain the list of XFAIL tests for this builder, go to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/68/68f7d34dd506d1ccdaab9e772a533f8e76a5fe19//xfail.gz>
You can also see a pretty-printed version of the list, with more information
about each XFAIL, by going to:
<https://gdb-buildbot.osci.io/results/RHEL-s390x-m64/68/68f7d34dd506d1ccdaab9e772a533f8e76a5fe19//xfail.table.gz>
^ permalink raw reply [flat|nested] 3666+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix incomplete regexps in step-precsave.exp
@ 2019-09-27 16:57 gdb-buildbot
2019-09-27 16:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
0 siblings, 1 reply; 3666+ messages in thread
From: gdb-buildbot @ 2019-09-27 16:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 060b3ab4edadfc0d55e606598769c1e5315fd74c ***
commit 060b3ab4edadfc0d55e606598769c1e5315fd74c
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Fri Sep 27 17:04:59 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Fri Sep 27 17:04:59 2019 +0200
[gdb/testsuite] Fix incomplete regexps in step-precsave.exp
The commit 68f7d34dd50 "[gdb/testsuite] Add KFAIL for missing support of
reverse-debugging of vmovd" rewrites a gdb_test into a gdb_test_multiple but
forgets to add the $gdb_prompt part in the regexp.
Add the missing parts of the regexps.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-09-27 Tom de Vries <tdevries@suse.de>
* gdb.reverse/step-precsave.exp: Add missing $gdb_prompt in regexps.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 625a70cf43..87f34d6298 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-27 Tom de Vries <tdevries@suse.de>
+
+ * gdb.reverse/step-precsave.exp: Add missing $gdb_prompt in regexps.
+
2019-09-27 Tom de Vries <tdevries@suse.de>
PR record/23188
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index f5e15510e1..2073b8a154 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -47,11 +47,13 @@ gdb_test "break $end_of_main" \
# This can take awhile.
with_timeout_factor 20 {
set test "run to end of main"
+ set pass_pattern "Breakpoint .* end of main .*"
+ set kfail_pattern "Process record does not support instruction 0xc5 at.*"
gdb_test_multiple "continue" $test {
- -re "Breakpoint .* end of main .*" {
+ -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
pass $test
}
- -re "Process record does not support instruction 0xc5 at.*$gdb_prompt $" {
+ -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
kfail "record/23188" $test
}
}
^ permalink raw reply [flat|nested] 3666+ messages in thread
end of thread, other threads:[~2019-09-27 15:17 UTC | newest]
Thread overview: 3666+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-17 19:20 [binutils-gdb] Unify new_symbol and new_symbol_full sergiodj+buildbot
2018-01-17 19:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-01-17 19:33 ` Failures on Debian-s390x-m64, " sergiodj+buildbot
2018-01-17 19:39 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
2018-01-17 19:46 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
2018-01-17 19:49 ` Failures on Debian-s390x-native-extended-gdbserver-m64, " sergiodj+buildbot
2018-01-17 20:14 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
2018-01-17 20:18 ` Failures on Fedora-i686, " sergiodj+buildbot
2018-01-17 20:19 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
2018-01-17 20:37 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
2018-01-18 12:33 ` Failures on Ubuntu-AArch32-native-extended-gdbserver-m32, " sergiodj+buildbot
2018-01-18 13:50 ` Failures on Ubuntu-AArch32-m32, " sergiodj+buildbot
2018-12-16 21:34 [binutils-gdb] Factorize killing the children in linux-ptrace.c, and fix a 'process leak' sergiodj+buildbot
2018-12-16 21:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-17 3:31 [binutils-gdb] PR23994, libbfd integer overflow sergiodj+buildbot
2018-12-17 3:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-17 7:20 [binutils-gdb] OBVIOUS: Fix ARI warning by removing warning trailing new line sergiodj+buildbot
2018-12-17 7:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-17 11:40 [binutils-gdb] AArch64: Fix the gdb build with musl libc sergiodj+buildbot
2018-12-17 11:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-17 23:32 [binutils-gdb] PR23980, powerpc64 ld segfault sergiodj+buildbot
2018-12-17 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-18 0:51 [binutils-gdb] gdb/dwarf: Convert some predicates from int to bool sergiodj+buildbot
2018-12-18 1:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-18 1:21 [binutils-gdb] sim: Don't overwrite stored errno in sim_syscall_multi sergiodj+buildbot
2018-12-18 1:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-18 14:28 [binutils-gdb] Include bfd_stdint.h in bfd.h sergiodj+buildbot
2018-12-18 14:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-19 16:51 [binutils-gdb] Fix build with latest GCC 9.0 tree sergiodj+buildbot
2018-12-19 16:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-19 22:20 [binutils-gdb] gdb: Add default frame methods to gdbarch sergiodj+buildbot
2018-12-19 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-20 21:43 [binutils-gdb] Ensure deterministic result order in gdb.ada/info_auto_lang.exp sergiodj+buildbot
2018-12-20 21:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-20 22:08 [binutils-gdb] x86: Call rtype_to_howto to get reloc_howto_type pointer sergiodj+buildbot
2018-12-20 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 17:28 [binutils-gdb] Fix compile error with clang 3.8 sergiodj+buildbot
2018-12-21 17:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 17:51 [binutils-gdb] gdb/riscv: Format CORE_ADDR as a string for printing sergiodj+buildbot
2018-12-21 18:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 18:24 [binutils-gdb] when printing the GDB config, explicitly say if configured without python sergiodj+buildbot
2018-12-21 18:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 18:37 [binutils-gdb] gdb: Fix "info os <unknown>" command sergiodj+buildbot
2018-12-21 18:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 18:54 [binutils-gdb] Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events sergiodj+buildbot
2018-12-21 18:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-21 21:16 [binutils-gdb] Fix various tests to use -no-pie linker flag when needed sergiodj+buildbot
2018-12-21 21:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-22 3:08 [binutils-gdb] Add debug output for recorded minsyms sergiodj+buildbot
2018-12-22 3:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-22 10:50 [binutils-gdb] gdb/riscv: Add gdb to dwarf register number mapping sergiodj+buildbot
2018-12-22 10:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-22 11:11 [binutils-gdb] gdb/riscv: Add float status registers to save and restore reggroups sergiodj+buildbot
2018-12-22 11:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-22 11:59 [binutils-gdb] gdb/riscv: Prevent buffer overflow in riscv_return_value sergiodj+buildbot
2018-12-22 12:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-23 18:40 [binutils-gdb] i386: Remove the unused bfd pointer argument sergiodj+buildbot
2018-12-23 18:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-24 13:18 [binutils-gdb] Fix gdb.ada bp_fun_addr failure due to conflict between fun 'a' and s-dimmks.ads 'A' sergiodj+buildbot
2018-12-24 13:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-24 17:54 [binutils-gdb] Simplify dwarf2_find_containing_comp_unit sergiodj+buildbot
2018-12-24 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-24 18:21 [binutils-gdb] gdb: Add new parser rule for structure field names sergiodj+buildbot
2018-12-24 18:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-24 19:09 [binutils-gdb] gdb: Allow struct fields named double sergiodj+buildbot
2018-12-24 18:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 2:10 [binutils-gdb] target.c: Remove struct keyword in range-based for sergiodj+buildbot
2018-12-27 2:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 10:51 [binutils-gdb] Fix gdb.ada/packed_array_assign.exp by using more unique names sergiodj+buildbot
2018-12-27 10:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 11:07 [binutils-gdb] Fix gdb.ada/assign_arr.exp by using more unique names sergiodj+buildbot
2018-12-27 11:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 11:24 [binutils-gdb] Fix gdb.ada/fun_renaming.exp by using more unique names sergiodj+buildbot
2018-12-27 11:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 19:04 [binutils-gdb] Remove more calls to xfree from Python sergiodj+buildbot
2018-12-27 19:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 20:08 [binutils-gdb] Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader sergiodj+buildbot
2018-12-27 20:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 20:47 [binutils-gdb] Remove empty nm-fbsd.h header for FreeBSD/i386 native target sergiodj+buildbot
2018-12-27 20:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 20:58 [binutils-gdb] Remove gdbtypes special case from init.c rule sergiodj+buildbot
2018-12-27 21:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 21:10 [binutils-gdb] Make init.c depend on source files sergiodj+buildbot
2018-12-27 21:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 21:27 [binutils-gdb] Build gdb "nat" files in subdirectory sergiodj+buildbot
2018-12-27 21:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 21:37 [binutils-gdb] Use gdbpy_convert_exception in a few more spots sergiodj+buildbot
2018-12-27 21:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 21:53 [binutils-gdb] Consolidate some Python exception-printing functions sergiodj+buildbot
2018-12-27 22:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-27 22:36 [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit" sergiodj+buildbot
2018-12-27 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 5:38 [binutils-gdb] PR23966, mingw failure due to 32-bit long sergiodj+buildbot
2018-12-28 5:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 7:52 [binutils-gdb] Avoid internal errors when stepping outside 'main' on MinGW sergiodj+buildbot
2018-12-28 7:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 18:09 [binutils-gdb] Fix leak of set/show verbose doc, avoid xfree of static string sergiodj+buildbot
2018-12-28 17:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 21:27 [binutils-gdb] Change wrap buffering to use a std::string sergiodj+buildbot
2018-12-28 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 21:45 [binutils-gdb] Add a "context" argument to add_setshow_enum_cmd sergiodj+buildbot
2018-12-28 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 22:14 [binutils-gdb] Change gdb test suite's TERM setting sergiodj+buildbot
2018-12-28 22:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 22:24 [binutils-gdb] Add output styles to gdb sergiodj+buildbot
2018-12-28 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 22:26 [binutils-gdb] Reset terminal styles sergiodj+buildbot
2018-12-28 22:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 22:37 [binutils-gdb] Style variable names sergiodj+buildbot
2018-12-28 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 22:50 [binutils-gdb] Style locations when setting a breakpoint sergiodj+buildbot
2018-12-28 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 23:02 [binutils-gdb] Style print_address_symbolic sergiodj+buildbot
2018-12-28 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 23:20 [binutils-gdb] Style the gdb welcome message sergiodj+buildbot
2018-12-28 23:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 23:25 [binutils-gdb] Style the "Reading symbols" message sergiodj+buildbot
2018-12-28 23:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 23:40 [binutils-gdb] Style addresses sergiodj+buildbot
2018-12-28 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-28 23:58 [binutils-gdb] Use wclrtoeol in tui_show_source_line sergiodj+buildbot
2018-12-28 23:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-29 4:53 [binutils-gdb] Fix the build when GNU Source Highlight is not available sergiodj+buildbot
2018-12-29 5:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-30 9:50 [binutils-gdb] Fix 'help set/show style' strange layouts/results sergiodj+buildbot
2018-12-30 9:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-30 16:40 [binutils-gdb] Change input_handler to take a unique_xmalloc_ptr sergiodj+buildbot
2018-12-30 16:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-31 6:53 [binutils-gdb] PR24041, Invalid Memory Address Dereference in elf_link_add_object_symbols sergiodj+buildbot
2018-12-31 7:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2018-12-31 17:26 [binutils-gdb] Use gdb::unique_xmalloc_ptr<char> in command_line_input to fix a leak sergiodj+buildbot
2018-12-31 17:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-01 6:42 [binutils-gdb] Update copyright year range in all GDB files sergiodj+buildbot
2019-01-01 6:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-01 6:54 [binutils-gdb] update copyright year printed by gdb, gdbserver and gdbreplay sergiodj+buildbot
2019-01-01 6:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-01 20:25 [binutils-gdb] Fix 'Invalid read of size 4' in search_command_helper sergiodj+buildbot
2019-01-01 20:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-01 23:17 [binutils-gdb] gdb/riscv: Split ISA and ABI features sergiodj+buildbot
2019-01-01 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 16:47 [binutils-gdb] Style improvements in gdb/python sergiodj+buildbot
2019-01-02 16:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 20:08 [binutils-gdb] Fix search of debug files for remote debuggee sergiodj+buildbot
2019-01-02 20:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 21:27 [binutils-gdb] Fix leak of struct call_thread_fsm in call_function_by_hand_dummy sergiodj+buildbot
2019-01-02 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 22:46 [binutils-gdb] Place displaced step data directly in inferior structure sergiodj+buildbot
2019-01-02 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 23:46 [binutils-gdb] Change inferior_to_inferior_object to return a gdbpy_ref sergiodj+buildbot
2019-01-02 23:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-02 23:59 [binutils-gdb] Remove cleanups from linespec.c sergiodj+buildbot
2019-01-02 23:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 0:11 [binutils-gdb] Remove a cleanup from target-descriptions.c sergiodj+buildbot
2019-01-03 0:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 14:58 [binutils-gdb] Add 'extern C' if simulator is written in C++ sergiodj+buildbot
2019-01-03 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 19:31 [binutils-gdb] RISC-V: Fix wrong use of s0 register name sergiodj+buildbot
2019-01-03 19:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 21:41 [binutils-gdb] gdb/remote: Remove a cleanup in remote_check_symbols sergiodj+buildbot
2019-01-03 21:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 21:54 [binutils-gdb] gdb: Remove a cleanup from find_overload_match sergiodj+buildbot
2019-01-03 21:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 22:06 [binutils-gdb] gdb: Remove final cleanup from find_overload_match sergiodj+buildbot
2019-01-03 22:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 22:19 [binutils-gdb] gdb: Remove cleanup from linux-fork.c:inferior_call_waitpid sergiodj+buildbot
2019-01-03 22:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 22:53 [binutils-gdb] Use a wrapper for PyErr_Fetch sergiodj+buildbot
2019-01-03 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 23:06 [binutils-gdb] Remove more uses of explicit reference counting in Python sergiodj+buildbot
2019-01-03 23:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 23:17 [binutils-gdb] Simplify gdbpy_stop_recording sergiodj+buildbot
2019-01-03 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-03 23:30 [binutils-gdb] Improve reference counting in py-type.c sergiodj+buildbot
2019-01-03 23:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-04 2:21 [binutils-gdb] PR24061, powerpc-ibm-aix-ar sets bogus file permissions when extracting sergiodj+buildbot
2019-01-04 2:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-04 14:11 [binutils-gdb] Change the default for the CSKY target to be little endian sergiodj+buildbot
2019-01-04 14:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-04 21:57 [binutils-gdb] Use upper case for more metasyntactic variables in gdb sergiodj+buildbot
2019-01-04 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-05 8:10 [binutils-gdb] GDB crash re-running program on Windows (native) sergiodj+buildbot
2019-01-05 8:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-05 14:07 [binutils-gdb] RX: include - Add RXv3 support sergiodj+buildbot
2019-01-05 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-06 16:48 [binutils-gdb] Fix crash in "finish" sergiodj+buildbot
2019-01-06 16:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-06 17:00 [binutils-gdb] Use std::vector in type stacks sergiodj+buildbot
2019-01-06 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-07 4:49 [binutils-gdb] s12z regen sergiodj+buildbot
2019-01-07 4:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-07 23:35 [binutils-gdb] Revert "Sync libiberty sources with master version in gcc repository. Updated stabs demangling and cxxfilt tests to match." sergiodj+buildbot
2019-01-07 23:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-08 12:34 [binutils-gdb] gdb: Fix skip of `\r` before `\n` in source output sergiodj+buildbot
2019-01-08 12:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-08 12:49 [binutils-gdb] gdb: Handle requests to print source lines backward sergiodj+buildbot
2019-01-08 12:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-08 13:01 [binutils-gdb] gdb: Move declarations from symtab.h to source.h sergiodj+buildbot
2019-01-08 13:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-09 3:39 [binutils-gdb] Adjust bfd/warning.m4 egrep patterns sergiodj+buildbot
2019-01-09 3:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-09 10:50 [binutils-gdb] gdb/testsuite: Remove interactive prompt case from mi_gdb_test sergiodj+buildbot
2019-01-09 10:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-09 19:35 [binutils-gdb] S12Z: Fix disassembly of indexed OPR operands with zero index sergiodj+buildbot
2019-01-09 19:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-09 20:05 [binutils-gdb] S12Z: Don't crash when disassembling invalid instructions sergiodj+buildbot
2019-01-09 20:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-09 22:15 [binutils-gdb] Merge from gcc: use "cannot" instead of "can not" in libiberty and include sergiodj+buildbot
2019-01-09 22:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 1:52 [binutils-gdb] Introduce all_objfiles and next_iterator sergiodj+buildbot
2019-01-10 1:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 2:24 [binutils-gdb] Remove ALL_PSPACE_OBJFILES sergiodj+buildbot
2019-01-10 2:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 2:36 [binutils-gdb] Remove most uses of ALL_OBJFILES sergiodj+buildbot
2019-01-10 2:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 2:59 [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS sergiodj+buildbot
2019-01-10 2:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 3:12 [binutils-gdb] Remove ALL_OBJFILE_COMPUNITS sergiodj+buildbot
2019-01-10 3:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 3:25 [binutils-gdb] Remove ALL_COMPUNITS sergiodj+buildbot
2019-01-10 3:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 3:56 [binutils-gdb] Remove ALL_COMPUNIT_FILETABS sergiodj+buildbot
2019-01-10 3:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 4:18 [binutils-gdb] Remove ALL_OBJFILES and ALL_FILETABS sergiodj+buildbot
2019-01-10 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 4:31 [binutils-gdb] Remove ALL_OBJSECTIONS sergiodj+buildbot
2019-01-10 4:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 4:42 [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS sergiodj+buildbot
2019-01-10 4:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 10:21 [binutils-gdb] Sync libiberty sources with gcc master versions sergiodj+buildbot
2019-01-10 10:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 14:26 [binutils-gdb] Move some declarations to mdebugread.h sergiodj+buildbot
2019-01-10 14:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 14:38 [binutils-gdb] Remove some unneeded psymtab initializations sergiodj+buildbot
2019-01-10 14:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 14:53 [binutils-gdb] Remove parameters from start_psymtab_common sergiodj+buildbot
2019-01-10 14:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 15:05 [binutils-gdb] Change add_psymbol_to_list to use an enum sergiodj+buildbot
2019-01-10 15:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 15:18 [binutils-gdb] Simplify calls to init_psymbol_list sergiodj+buildbot
2019-01-10 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 15:30 [binutils-gdb] Change create_demangled_names_hash to take an objfile_per_bfd_storage sergiodj+buildbot
2019-01-10 15:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 15:41 [binutils-gdb] Change symbol_set_names to take an objfile_per_bfd_storage sergiodj+buildbot
2019-01-10 15:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 16:06 [binutils-gdb] Introduce objfile::reset_psymtabs sergiodj+buildbot
2019-01-10 16:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 16:18 [binutils-gdb] Allocate the address map on the psymtab obstack sergiodj+buildbot
2019-01-10 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 16:31 [binutils-gdb] Move more allocations to psymtab obstack sergiodj+buildbot
2019-01-10 16:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 16:43 [binutils-gdb] Add psymtab_storage::allocate_dependencies sergiodj+buildbot
2019-01-10 16:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 17:09 [binutils-gdb] Move psymtabs to their own obstack sergiodj+buildbot
2019-01-10 17:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 18:20 [binutils-gdb] Fix leak in mdebugread.c sergiodj+buildbot
2019-01-10 18:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 18:32 [binutils-gdb] Fix leak in solib-target.c:library_list_start_library sergiodj+buildbot
2019-01-10 18:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 18:44 [binutils-gdb] Fix tracepoint.c:parse_tracepoint_definition leak (and one more) sergiodj+buildbot
2019-01-10 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 22:27 [binutils-gdb] gdb/23712: Introduce multidictionary's sergiodj+buildbot
2019-01-10 22:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 22:39 [binutils-gdb] gdb/23712: Use new multidictionary API sergiodj+buildbot
2019-01-10 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 23:02 [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list sergiodj+buildbot
2019-01-10 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-10 23:27 [binutils-gdb] Replace inf_threads_iterator with next_iterator sergiodj+buildbot
2019-01-10 23:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-12 7:17 [binutils-gdb] Fix 'obj' may be used uninitialized warning in symtab.c:matching_obj_sections sergiodj+buildbot
2019-01-12 7:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-12 11:31 [binutils-gdb] gdb/testsuite: Don't allow paths to appear in test name sergiodj+buildbot
2019-01-12 11:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-12 16:44 [binutils-gdb] Add RXv3 instructions sergiodj+buildbot
2019-01-12 16:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-12 21:26 [binutils-gdb] Implement help/show values for 'set|show style' sergiodj+buildbot
2019-01-12 21:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-13 21:50 [binutils-gdb] gdb: xtensa: fix register counters for xtensa-linux sergiodj+buildbot
2019-01-13 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-14 15:04 [binutils-gdb] Sync config.guess, config.sub from GCC sergiodj+buildbot
2019-01-14 15:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-14 16:15 [binutils-gdb] Add support to GNU ld to separate got related plt entries from normal ones in order to be able to switch the non-plt got entries to read-only after startup, conforming to revised Linux for zSeries ABI sergiodj+buildbot
2019-01-14 16:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-14 19:46 [binutils-gdb] [PowerPC] Fix "info vector" test in gdb.arch/altivec-regs.exp sergiodj+buildbot
2019-01-14 19:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-14 21:59 [binutils-gdb] Include <string.h> to dis-asm.h to get strchr declaration sergiodj+buildbot
2019-01-14 22:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-14 23:32 [binutils-gdb] Fix placement of output in TUI mode sergiodj+buildbot
2019-01-14 23:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-15 0:51 [binutils-gdb] Constify target_pass_signals and target_program_signals sergiodj+buildbot
2019-01-15 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-15 1:04 [binutils-gdb] Constify remote_console_output sergiodj+buildbot
2019-01-15 1:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-15 1:15 [binutils-gdb] Constify some remote-notif functions sergiodj+buildbot
2019-01-15 1:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-15 23:04 [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE sergiodj+buildbot
2019-01-15 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-16 13:55 [binutils-gdb] S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate sergiodj+buildbot
2019-01-16 13:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-16 19:54 [binutils-gdb] Introduce dwarf2_cu::get_builder sergiodj+buildbot
2019-01-16 19:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-16 21:51 [binutils-gdb] RISC-V: Merge ELF attribute for ld sergiodj+buildbot
2019-01-16 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-16 22:04 [binutils-gdb] Don't emit vendor attribute section if there is no attribute to emit sergiodj+buildbot
2019-01-16 22:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-16 22:21 [binutils-gdb] Actually remove definitions of DEFINE_NON_INLINE_P and DEFINE_INLINE_P sergiodj+buildbot
2019-01-16 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-17 17:38 [binutils-gdb] Replace "the the" with "the" sergiodj+buildbot
2019-01-17 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-17 17:50 [binutils-gdb] Remove cleanups from solib-target.c sergiodj+buildbot
2019-01-17 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-17 23:38 [binutils-gdb] Change all_objfiles adapter to be a method on program_space sergiodj+buildbot
2019-01-17 23:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-18 0:03 [binutils-gdb] Add compunits range adapter to objfile sergiodj+buildbot
2019-01-18 0:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-18 0:16 [binutils-gdb] Make psymtab range adapter a method on objfile sergiodj+buildbot
2019-01-18 0:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-18 0:41 [binutils-gdb] Make minimal symbol range adapter a method on objfile sergiodj+buildbot
2019-01-18 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-19 16:11 [binutils-gdb] Add markers for 2.32 branch to NEWS and ChangeLog files sergiodj+buildbot
2019-01-19 16:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-19 17:08 [binutils-gdb] Change version to 2.32.51 and regenerate configure and pot files sergiodj+buildbot
2019-01-19 17:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-20 2:52 [binutils-gdb] [MIPS] fix typo in mips_arch_choices sergiodj+buildbot
2019-01-20 2:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 11:00 [binutils-gdb] Testsuite: Ensure stack protection is off for GCC sergiodj+buildbot
2019-01-21 11:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 12:52 [binutils-gdb] Fix spelling mistakes in BFD library sergiodj+buildbot
2019-01-21 12:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 13:15 [binutils-gdb] Updated translations for various binutils subdirectories sergiodj+buildbot
2019-01-21 13:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 16:18 [binutils-gdb] AArch64 AAPCS: Empty structs have non zero size in C++ sergiodj+buildbot
2019-01-21 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 16:36 [binutils-gdb] Fix leak in splay-tree sergiodj+buildbot
2019-01-21 16:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 18:41 [binutils-gdb] Remove duplicate or commented-out #includes sergiodj+buildbot
2019-01-21 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-21 20:44 [binutils-gdb] Fix leak in event-top.c history expansion sergiodj+buildbot
2019-01-21 20:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-22 23:15 [binutils-gdb] Remove the EXTERN define from stabsread.h sergiodj+buildbot
2019-01-22 23:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 4:29 [binutils-gdb] Use "struct bcache" in objfiles.h sergiodj+buildbot
2019-01-23 4:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 4:41 [binutils-gdb] Do not include py-ref.h in most files sergiodj+buildbot
2019-01-23 4:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 4:51 [binutils-gdb] Declare remote_target in remote-fileio.h sergiodj+buildbot
2019-01-23 4:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 5:02 [binutils-gdb] Rename "lines" parameter in source-cache.h sergiodj+buildbot
2019-01-23 5:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 5:14 [binutils-gdb] Include gdb_curses.h in tui-wingeneral.h sergiodj+buildbot
2019-01-23 5:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 5:26 [binutils-gdb] Include coff/sym.h from coff/ecoff.h sergiodj+buildbot
2019-01-23 5:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 5:38 [binutils-gdb] corelow.c does not need sys/file.h sergiodj+buildbot
2019-01-23 5:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 12:06 [binutils-gdb] AArch64: Ensure lwp info is created zeroed sergiodj+buildbot
2019-01-23 12:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 17:48 [binutils-gdb] Remove a warning from symtab.c sergiodj+buildbot
2019-01-23 17:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 19:30 [binutils-gdb] Rename ESC -> ESC_PARENS sergiodj+buildbot
2019-01-23 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 19:40 [binutils-gdb] Introduce scope_exit sergiodj+buildbot
2019-01-23 19:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 19:52 [binutils-gdb] Introduce forward_scope_exit sergiodj+buildbot
2019-01-23 19:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 20:03 [binutils-gdb] Use forward_scope_exit for scoped_finish_thread_state sergiodj+buildbot
2019-01-23 20:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 20:46 [binutils-gdb] Replace delete_longjmp_breakpoint_cleanup with a forward_scope_exit type sergiodj+buildbot
2019-01-23 20:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 20:56 [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c sergiodj+buildbot
2019-01-23 20:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 21:21 [binutils-gdb] Remove make_bpstat_clear_actions_cleanup sergiodj+buildbot
2019-01-23 21:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 21:33 [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint sergiodj+buildbot
2019-01-23 21:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 21:44 [binutils-gdb] Remove cleanup from linux-nat.c sergiodj+buildbot
2019-01-23 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 21:56 [binutils-gdb] Remove clear_symtab_users_cleanup sergiodj+buildbot
2019-01-23 21:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 22:28 [binutils-gdb] Remove cleanup from stop_all_threads sergiodj+buildbot
2019-01-23 22:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 22:39 [binutils-gdb] Remove remaining cleanup from fetch_inferior_event sergiodj+buildbot
2019-01-23 22:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 22:51 [binutils-gdb] Update an obsolete cleanup comment sergiodj+buildbot
2019-01-23 22:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-23 23:02 [binutils-gdb] Update cleanup comment in ui-out.h sergiodj+buildbot
2019-01-23 23:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-24 8:41 [binutils-gdb] AArch64 AAPCS: Ignore static members sergiodj+buildbot
2019-01-24 8:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-24 18:21 [binutils-gdb] Fix clang/libc++ build sergiodj+buildbot
2019-01-24 18:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-25 15:32 [binutils-gdb] AArch64: Remove ldgv and stgv instructions from Armv8.5-A Memory Tagging Extension sergiodj+buildbot
2019-01-25 15:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-25 15:56 [binutils-gdb] AArch64: Update encodings for stg, st2g, stzg and st2zg sergiodj+buildbot
2019-01-25 15:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-25 23:18 [binutils-gdb] Don't use -I for common subdirectory sergiodj+buildbot
2019-01-25 23:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-27 22:08 [binutils-gdb] Remove duplicate skip_python_tests invocation sergiodj+buildbot
2019-01-27 22:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-28 10:30 [binutils-gdb] Replace contribution list in CONTRIBUTE file with link sergiodj+buildbot
2019-01-28 10:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-28 18:32 [binutils-gdb] Use trad_frame_set_reg_addr for FreeBSD arm signal trampoline unwinders sergiodj+buildbot
2019-01-28 18:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-30 14:51 [binutils-gdb] Release the GIL while running a gdb command or expression sergiodj+buildbot
2019-01-30 14:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-01-30 18:16 [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build sergiodj+buildbot
2019-01-30 18:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-05 13:58 [binutils-gdb] Hoist assertion in target_stack::unpush sergiodj+buildbot
2019-02-05 13:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-06 18:05 [binutils-gdb] Fix 'info proc cmdline' for native FreeBSD processes sergiodj+buildbot
2019-02-06 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-06 20:21 [binutils-gdb] Fix leak of identifier in macro definition sergiodj+buildbot
2019-02-06 20:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-06 20:32 [binutils-gdb] Factorize macro definition code in macrotab.c sergiodj+buildbot
2019-02-06 20:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 13:41 [binutils-gdb] C++-ify struct thread_fsm sergiodj+buildbot
2019-02-07 13:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 14:39 [binutils-gdb] Make gdb.base/corefile.exp work on terminals with few rows sergiodj+buildbot
2019-02-07 14:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 14:54 [binutils-gdb] Move potentially obsolete BFD targets into the definitely obsolete section. Add a note to the README-how-to-make-a-release document about doing this sergiodj+buildbot
2019-02-07 14:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 15:06 [binutils-gdb] gdbserver: When attaching, add process before lwps sergiodj+buildbot
2019-02-07 15:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 16:18 [binutils-gdb] Visium: fix bogus overflow check on 32-bit hosts sergiodj+buildbot
2019-02-07 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-07 17:54 [binutils-gdb] AArch64: Add verifier for By elem Single and Double sized instructions sergiodj+buildbot
2019-02-07 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-08 21:33 [binutils-gdb] RISC-V: Compress 3-operand beq/bne against x0 sergiodj+buildbot
2019-02-08 21:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-08 21:44 [binutils-gdb] RISC-V: Add FP register core file support sergiodj+buildbot
2019-02-08 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-09 10:19 [binutils-gdb] [ARC] don't force _init/_fini as DT_INIT/DT_FINI sergiodj+buildbot
2019-02-09 10:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-10 9:13 [binutils-gdb] (Ada) -var-update crash for variable whose type is a reference to changeable sergiodj+buildbot
2019-02-10 9:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-10 12:29 [binutils-gdb] Fix type_stack leaks in c expression parsing sergiodj+buildbot
2019-02-10 12:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-11 17:01 [binutils-gdb] AArch64: Detect exit from execve syscall sergiodj+buildbot
2019-02-11 17:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-12 13:20 [binutils-gdb] Fix splay tree KEY leak detected in GDB test gdb.base/macscp.exp sergiodj+buildbot
2019-02-12 13:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-12 19:30 [binutils-gdb] Use function_name_style to print Ada and C function names sergiodj+buildbot
2019-02-12 19:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-12 22:12 [binutils-gdb] Look for separate debug files in debug directories under a sysroot sergiodj+buildbot
2019-02-12 22:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-12 22:22 [binutils-gdb] Add a new function child_path sergiodj+buildbot
2019-02-12 22:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-12 22:44 [binutils-gdb] Try to use the canonical version of a sysroot for debug file links sergiodj+buildbot
2019-02-12 22:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-13 22:36 [binutils-gdb] Add Andrew Burgess as global maintainer of gdb/ and sim/ sergiodj+buildbot
2019-02-13 22:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 3:27 [binutils-gdb] (Windows) remove thread notification for main thread of inferior sergiodj+buildbot
2019-02-14 3:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 15:01 [binutils-gdb] [gdb, hurd] Remove long obsolete 'gnu_target_pid_to_str' function declaration sergiodj+buildbot
2019-02-14 15:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 15:26 [binutils-gdb] [gdb, hurd] Work around conflict between Mach's 'thread_info' function, and GDB's 'thread_info' class sergiodj+buildbot
2019-02-14 15:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 15:42 [binutils-gdb] [gdb, hurd] Repair build after "Convert struct target_ops to C++" changes sergiodj+buildbot
2019-02-14 15:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 16:25 [binutils-gdb] [gdb, hurd] Repair build after "Use thread_info and inferior pointers more throughout" sergiodj+buildbot
2019-02-14 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 16:36 [binutils-gdb] [gdb, hurd] Address "ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]" diagnostics sergiodj+buildbot
2019-02-14 16:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 16:49 [binutils-gdb] [gdb, hurd] Adjust to Hurd "proc" interface changes sergiodj+buildbot
2019-02-14 16:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 17:20 [binutils-gdb] [gdb, hurd] Avoid using 'PATH_MAX' in 'gdb/remote.c' sergiodj+buildbot
2019-02-14 17:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-14 22:41 [binutils-gdb] Updating test case sergiodj+buildbot
2019-02-14 22:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 20:41 [binutils-gdb] C++-ify bp_location sergiodj+buildbot
2019-02-15 20:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 20:53 [binutils-gdb] Fix memory leak in create_ada_exception_catchpoint sergiodj+buildbot
2019-02-15 20:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 21:22 [binutils-gdb] Exception safety in ravenscar-thread.c sergiodj+buildbot
2019-02-15 21:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 21:34 [binutils-gdb] C++-ify ravenscar_arch_ops sergiodj+buildbot
2019-02-15 21:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 22:07 [binutils-gdb] Fix formatting in ravenscar-thread.c sergiodj+buildbot
2019-02-15 22:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 22:17 [binutils-gdb] Minor C++-ification in ravenscar-thread.c sergiodj+buildbot
2019-02-15 22:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 22:29 [binutils-gdb] Add push_target overload sergiodj+buildbot
2019-02-15 22:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 22:41 [binutils-gdb] Make the ravenscar thread target multi-target-ready sergiodj+buildbot
2019-02-15 22:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-15 22:54 [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c sergiodj+buildbot
2019-02-15 22:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-17 13:48 [binutils-gdb] (Ada) fix GDB crash printing packed array sergiodj+buildbot
2019-02-17 13:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-17 15:18 [binutils-gdb] type_align: handle range types the same as ints and enums sergiodj+buildbot
2019-02-17 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-17 17:51 [binutils-gdb] Fix pager bugs with style output sergiodj+buildbot
2019-02-17 17:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-17 18:03 [binutils-gdb] Fix some valgrind errors in the TUI sergiodj+buildbot
2019-02-17 18:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-17 23:50 [binutils-gdb] Add styling to macro commands sergiodj+buildbot
2019-02-17 23:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-18 0:02 [binutils-gdb] Change macro_source_fullname to return a std::string sergiodj+buildbot
2019-02-18 0:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-18 21:50 [binutils-gdb] Fix leaks of 'per program space' and 'per inferior' ada task data sergiodj+buildbot
2019-02-18 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-18 23:39 [binutils-gdb] gdb: Allow gdbarch to override alignment for method and member pointers sergiodj+buildbot
2019-02-18 23:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-19 12:37 [binutils-gdb] PR24235, Read memory violation in pei-x86_64.c sergiodj+buildbot
2019-02-19 12:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-19 19:45 [binutils-gdb] Minor Ada task cleanups sergiodj+buildbot
2019-02-19 19:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 2:30 [binutils-gdb] Fix error message and use-after-free on errors in nested sourced files sergiodj+buildbot
2019-02-20 2:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 4:32 [binutils-gdb] Use or1k-darwin host SHARED_LIBADD for *-darwin sergiodj+buildbot
2019-02-20 4:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 8:48 [binutils-gdb] Check asprintf return value sergiodj+buildbot
2019-02-20 8:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 10:57 [binutils-gdb] AArch64: Add pauth core file section sergiodj+buildbot
2019-02-20 10:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 11:09 [binutils-gdb] bfd: xtensa: fix callx relaxation sergiodj+buildbot
2019-02-20 11:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 15:46 [binutils-gdb] Use upper case for metasyntactic variables in "help find" sergiodj+buildbot
2019-02-20 15:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-20 19:48 [binutils-gdb] Fix typos in symtab_symbol_info sergiodj+buildbot
2019-02-20 19:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-21 18:38 [binutils-gdb] Document style behavior in batch mode sergiodj+buildbot
2019-02-21 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-22 20:33 [binutils-gdb] gdb: Update copyright year range generated by gdbarch.sh sergiodj+buildbot
2019-02-22 20:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-22 21:06 [binutils-gdb] Look for build-id-based separate debug files under the sysroot sergiodj+buildbot
2019-02-22 21:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-23 12:47 [binutils-gdb] Update copyright year range in gdb.ada/mi_ref_changeable testcase sergiodj+buildbot
2019-02-23 13:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-23 15:20 [binutils-gdb] Use '--readnever' when invoking GDB from gcore.in sergiodj+buildbot
2019-02-23 15:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-25 21:09 [binutils-gdb] Fix crash when loading dwp files sergiodj+buildbot
2019-02-25 21:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-25 22:54 [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file sergiodj+buildbot
2019-02-25 22:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-26 17:46 [binutils-gdb] Define unique_ptr specialization for Py_buffer sergiodj+buildbot
2019-02-26 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-26 18:09 [binutils-gdb] Add tests for gdb.Value(bufobj, type) constructor sergiodj+buildbot
2019-02-26 18:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-26 18:21 [binutils-gdb] Document two argument form of gdb.Value constructor sergiodj+buildbot
2019-02-26 18:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-26 19:57 [binutils-gdb] Fix new py-value.exp test case sergiodj+buildbot
2019-02-26 19:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 5:00 [binutils-gdb] Fix build errors in aix-thread.c sergiodj+buildbot
2019-02-27 5:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 5:37 [binutils-gdb] Bump version to 8.3.50.DATE-git sergiodj+buildbot
2019-02-27 5:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 5:47 [binutils-gdb] Update NEWS post GDB 8.3 branch creation sergiodj+buildbot
2019-02-27 5:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 11:28 [binutils-gdb] gdb: Restructure type_align and gdbarch_type_align sergiodj+buildbot
2019-02-27 11:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 11:40 [binutils-gdb] gdb: Handle alignment for C++ structures with static members sergiodj+buildbot
2019-02-27 11:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 15:09 [binutils-gdb] gdb/aarch64: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 15:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 15:21 [binutils-gdb] gdb/alpha: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 15:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 15:43 [binutils-gdb] gdb/arm: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 15:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 15:55 [binutils-gdb] gdb/bfin: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 15:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 16:18 [binutils-gdb] gdb/csky: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 16:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 16:53 [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 16:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 17:04 [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-27 17:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 18:29 [binutils-gdb] Use Python 2.[67] / 3.X / PEP 3118 buffer protocol sergiodj+buildbot
2019-02-27 18:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 19:00 [binutils-gdb] Remove Python 2.4 and 2.5 support sergiodj+buildbot
2019-02-27 19:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 19:11 [binutils-gdb] Prevent overflow in rl_set_screen_size sergiodj+buildbot
2019-02-27 19:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 19:25 [binutils-gdb] Make 'show width/height' display "unlimited" when capped for readline sergiodj+buildbot
2019-02-27 19:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 19:37 [binutils-gdb] Test "set width/height -1" sergiodj+buildbot
2019-02-27 19:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 20:01 [binutils-gdb] Handle \r\n in gdbreplay sergiodj+buildbot
2019-02-27 20:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 20:22 [binutils-gdb] x86-64: Skip protected check on symbol defined by linker sergiodj+buildbot
2019-02-27 20:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-27 21:57 [binutils-gdb] Fix regcache leak, and avoid possible regcache access after detach sergiodj+buildbot
2019-02-27 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-28 7:38 [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section sergiodj+buildbot
2019-02-28 7:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-28 14:43 [binutils-gdb] Prevent a buffer overrun error when attempting to parse a corrupt ELF file sergiodj+buildbot
2019-02-28 14:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-02-28 17:36 [binutils-gdb] Testsuite: Catch gdbserver socket listen errors sergiodj+buildbot
2019-02-28 17:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-01 3:16 [binutils-gdb] PR24272, out-of-bounds read in pex64_xdata_print_uwd_codes sergiodj+buildbot
2019-03-01 3:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-01 14:55 [binutils-gdb] Revert "Add support to GNU ld to separate got related plt entries" sergiodj+buildbot
2019-03-01 14:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-02 13:35 [binutils-gdb] Fix GDB compilation on MinGW (PR gdb/24292) sergiodj+buildbot
2019-03-02 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-04 15:25 [binutils-gdb] gdbserver short-circuit-argument-list failures sergiodj+buildbot
2019-03-04 15:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 16:26 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd sergiodj+buildbot
2019-03-05 16:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 16:37 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap sergiodj+buildbot
2019-03-05 16:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 16:49 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer sergiodj+buildbot
2019-03-05 16:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 17:03 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release sergiodj+buildbot
2019-03-05 17:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 17:17 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release sergiodj+buildbot
2019-03-05 17:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 17:29 [binutils-gdb] Remove excess calls to gdb_flush sergiodj+buildbot
2019-03-05 17:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 17:41 [binutils-gdb] Remove gdb_bfd_fdopenr sergiodj+buildbot
2019-03-05 17:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-05 21:27 [binutils-gdb] Change the_dummy_target to be a global sergiodj+buildbot
2019-03-05 21:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 8:50 [binutils-gdb] Fortran function calls with arguments sergiodj+buildbot
2019-03-06 8:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 9:57 [binutils-gdb] Fix a segmentation fault triggered by disassembling an EFi file with source included sergiodj+buildbot
2019-03-06 9:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 10:16 [binutils-gdb] Testsuite: Ensure changing directory does not break the log file sergiodj+buildbot
2019-03-06 10:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 18:28 [binutils-gdb] gdb/fortran: Remove some duplicate tests sergiodj+buildbot
2019-03-06 18:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 19:04 [binutils-gdb] gdb/fortran: Add new function to evaluate Fortran expressions sergiodj+buildbot
2019-03-06 19:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 19:17 [binutils-gdb] gdb/fortran: Enable debugging of the Fortran parser sergiodj+buildbot
2019-03-06 19:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 19:30 [binutils-gdb] gdb/fortran: Add Fortran 'kind' intrinsic and keyword sergiodj+buildbot
2019-03-06 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 19:42 [binutils-gdb] gdb/fortran: Expand the set of types that support (kind=N) sergiodj+buildbot
2019-03-06 19:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 19:54 [binutils-gdb] gdb/fortran: Add builtin 8-byte integer type with (kind=8) support sergiodj+buildbot
2019-03-06 19:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 20:20 [binutils-gdb] gdb/fortran: Add support for the ABS intrinsic function sergiodj+buildbot
2019-03-06 20:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 20:33 [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames sergiodj+buildbot
2019-03-06 20:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 20:58 [binutils-gdb] C++ify fork_info, use std::list sergiodj+buildbot
2019-03-06 20:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 21:11 [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads sergiodj+buildbot
2019-03-06 21:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-06 23:22 [binutils-gdb] Remove cleanups from coffread.c sergiodj+buildbot
2019-03-06 23:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 0:13 [binutils-gdb] Remove last cleanup from gdbserver sergiodj+buildbot
2019-03-07 0:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 0:25 [binutils-gdb] Remove cleanup from solib-svr4.c sergiodj+buildbot
2019-03-07 0:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 0:38 [binutils-gdb] Remove last cleanups from solib-svr4.c sergiodj+buildbot
2019-03-07 0:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 0:51 [binutils-gdb] Remove last cleanup solib-aix.c sergiodj+buildbot
2019-03-07 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 1:04 [binutils-gdb] Remove last cleanup from linux-namespaces.c sergiodj+buildbot
2019-03-07 1:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 1:30 [binutils-gdb] Use unique_xmalloc_ptr in remote.c sergiodj+buildbot
2019-03-07 1:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 1:42 [binutils-gdb] Remove basic cleanup code sergiodj+buildbot
2019-03-07 1:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 1:55 [binutils-gdb] Remove free_current_contents sergiodj+buildbot
2019-03-07 1:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 2:08 [binutils-gdb] Use SCOPE_EXIT in write_gcore_file sergiodj+buildbot
2019-03-07 2:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 16:42 [binutils-gdb] gdb: Move value_from_host_double into value.c and make more use of it sergiodj+buildbot
2019-03-07 16:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-07 18:05 [binutils-gdb] C++-ify bcache sergiodj+buildbot
2019-03-07 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-08 13:11 [binutils-gdb] PR24311, FAIL: S-records with constructors sergiodj+buildbot
2019-03-08 13:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 7:02 [binutils-gdb] Support styling on native MS-Windows console sergiodj+buildbot
2019-03-09 7:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 11:43 [binutils-gdb] Ensure 'help set/show print inferior-events' shows the example events sergiodj+buildbot
2019-03-09 11:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 13:46 [binutils-gdb] Split rank_one_type_parm_ptr from rank_one_type sergiodj+buildbot
2019-03-09 13:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 13:57 [binutils-gdb] Split rank_one_type_parm_array from rank_one_type sergiodj+buildbot
2019-03-09 13:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 14:08 [binutils-gdb] Split rank_one_type_parm_func from rank_one_type sergiodj+buildbot
2019-03-09 14:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 14:21 [binutils-gdb] Split rank_one_type_parm_int from rank_one_type sergiodj+buildbot
2019-03-09 14:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 14:34 [binutils-gdb] Split rank_one_type_parm_enum from rank_one_type sergiodj+buildbot
2019-03-09 14:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 14:58 [binutils-gdb] Split rank_one_type_parm_range from rank_one_type sergiodj+buildbot
2019-03-09 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 15:10 [binutils-gdb] Split rank_one_type_parm_bool from rank_one_type sergiodj+buildbot
2019-03-09 15:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 15:36 [binutils-gdb] Split rank_one_type_parm_complex from rank_one_type sergiodj+buildbot
2019-03-09 15:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 15:50 [binutils-gdb] Split rank_one_type_parm_struct from rank_one_type sergiodj+buildbot
2019-03-09 15:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-09 16:04 [binutils-gdb] Split rank_one_type_parm_set from rank_one_type sergiodj+buildbot
2019-03-09 16:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 13:28 [binutils-gdb] S/390: arch13: Add instruction descriptions sergiodj+buildbot
2019-03-12 13:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 13:40 [binutils-gdb] S/390: arch13: Adjust to recent changes sergiodj+buildbot
2019-03-12 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 13:53 [binutils-gdb] Don't use bfd_get_file_size in objdump sergiodj+buildbot
2019-03-12 13:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 17:07 [binutils-gdb] Change iterate_over_lwps to take a gdb::function_view sergiodj+buildbot
2019-03-12 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 17:21 [binutils-gdb] Make null_ptid and minus_one_ptid "const" sergiodj+buildbot
2019-03-12 17:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 17:34 [binutils-gdb] Fix test-cp-name-parser build, unused variable sergiodj+buildbot
2019-03-12 17:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 17:46 [binutils-gdb] Fix test-cp-name-parser build, parser_fprintf undefined sergiodj+buildbot
2019-03-12 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 17:59 [binutils-gdb] Make remote.c ptid constants "const" sergiodj+buildbot
2019-03-12 17:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 18:26 [binutils-gdb] Fix MinGW build with source-highlight sergiodj+buildbot
2019-03-12 18:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 20:07 [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2 sergiodj+buildbot
2019-03-12 20:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 21:01 [binutils-gdb] Support the fs_base and gs_base registers on i386 sergiodj+buildbot
2019-03-12 21:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 21:13 [binutils-gdb] Support fs_base and gs_base on FreeBSD/i386 sergiodj+buildbot
2019-03-12 21:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 21:26 [binutils-gdb] Handle an edge case for minisym TLS variable lookups sergiodj+buildbot
2019-03-12 21:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 21:52 [binutils-gdb] Add a new gdbarch method to resolve the address of TLS variables sergiodj+buildbot
2019-03-12 21:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 22:06 [binutils-gdb] Remove code disabled since at least 1999 from lookup_struct_elt_type sergiodj+buildbot
2019-03-12 22:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 22:34 [binutils-gdb] Add a helper function to resolve TLS variable addresses for FreeBSD sergiodj+buildbot
2019-03-12 22:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 22:47 [binutils-gdb] Support TLS variables on FreeBSD/amd64 sergiodj+buildbot
2019-03-12 22:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 22:59 [binutils-gdb] Support TLS variables on FreeBSD/i386 sergiodj+buildbot
2019-03-12 22:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 23:12 [binutils-gdb] Support TLS variables on FreeBSD/riscv sergiodj+buildbot
2019-03-12 23:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 23:25 [binutils-gdb] Support TLS variables on FreeBSD/powerpc sergiodj+buildbot
2019-03-12 23:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-12 23:39 [binutils-gdb] The NEWS file had two "New targets" sections for 8.3 sergiodj+buildbot
2019-03-12 23:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-13 12:16 [binutils-gdb] [BFD, LD, AArch64, 2/3] Add --force-bti to enable BTI and to select BTI enabled PLTs sergiodj+buildbot
2019-03-13 12:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-13 12:28 [binutils-gdb] [BFD, LD, AArch64, 3/3] Add --pac-plt to enable PLTs protected with PAC sergiodj+buildbot
2019-03-13 12:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-13 17:50 [binutils-gdb] Factor out mi_ui_out instantiation logic sergiodj+buildbot
2019-03-13 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-13 19:30 [binutils-gdb] Fix MI output for multi-location breakpoints sergiodj+buildbot
2019-03-13 19:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-13 20:07 [binutils-gdb] Change pid_to_str to return std::string sergiodj+buildbot
2019-03-13 20:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 12:02 [binutils-gdb] Make TUI react to "set style enabled" sergiodj+buildbot
2019-03-14 12:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 12:15 [binutils-gdb] Add the "set style source" command sergiodj+buildbot
2019-03-14 12:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 12:28 [binutils-gdb] Avoid a crash in source_cache::extract_lines sergiodj+buildbot
2019-03-14 12:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 15:01 [binutils-gdb] Fix illegal memory access parsing a corrupt ELF file sergiodj+buildbot
2019-03-14 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 16:03 [binutils-gdb] Fix colors in TUI mode in MS-Windows build with ncurses sergiodj+buildbot
2019-03-14 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-14 16:19 [binutils-gdb] Fix an illegal memory access when parsing a corrupt ELF file sergiodj+buildbot
2019-03-14 16:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 7:19 [binutils-gdb] Re-indent elf_x86_64_relocate_section sergiodj+buildbot
2019-03-15 7:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 8:02 [binutils-gdb] x86-64: Check for corrupt input with bad relocation sergiodj+buildbot
2019-03-15 8:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 10:22 [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym sergiodj+buildbot
2019-03-15 10:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 10:35 [binutils-gdb] PR24339, segfault on NULL symbol section sergiodj+buildbot
2019-03-15 10:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 22:36 [binutils-gdb] Use bitset for demangled_hash_languages sergiodj+buildbot
2019-03-15 22:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 22:51 [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader sergiodj+buildbot
2019-03-15 22:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-15 23:04 [binutils-gdb] Remove minsym termination sergiodj+buildbot
2019-03-15 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 0:25 [binutils-gdb] Use htab_up for demangled hash sergiodj+buildbot
2019-03-16 0:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 0:38 [binutils-gdb] Allocate minimal symbols with malloc sergiodj+buildbot
2019-03-16 0:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 0:52 [binutils-gdb] Use memcpy in minimal_symbol_reader::install sergiodj+buildbot
2019-03-16 0:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 1:07 [binutils-gdb] Change minimal_symbol inheritance sergiodj+buildbot
2019-03-16 1:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 4:16 [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym, again sergiodj+buildbot
2019-03-16 4:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 12:31 [binutils-gdb] Revert "Use wclrtoeol in tui_show_source_line" sergiodj+buildbot
2019-03-16 12:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 16:14 [binutils-gdb] OBVIOUS: fix several occurrences of 'This options has' to 'This option has' sergiodj+buildbot
2019-03-16 16:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-16 18:13 [binutils-gdb] Fix vertical scrolling of TUI source window sergiodj+buildbot
2019-03-16 18:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-17 18:58 [binutils-gdb] Fix wrong format specification in display_selector() sergiodj+buildbot
2019-03-17 18:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 1:15 [binutils-gdb] x86: Optimize EVEX vector load/store instructions sergiodj+buildbot
2019-03-18 1:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 4:18 [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests sergiodj+buildbot
2019-03-18 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 12:30 [binutils-gdb] PR24355, segmentation fault in function called from ppc_finish_symbols sergiodj+buildbot
2019-03-18 12:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 14:44 [binutils-gdb] Fix scrolling right in the TUI sergiodj+buildbot
2019-03-18 14:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 14:57 [binutils-gdb] Improve/fix the TUI's current source line highlight sergiodj+buildbot
2019-03-18 14:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 18:23 [binutils-gdb] Fix gdb/TUI behavior in response to [Enter] keypress sergiodj+buildbot
2019-03-18 18:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-18 19:14 [binutils-gdb] Fix first time you type UP or DOWN in TUI's command window sergiodj+buildbot
2019-03-18 19:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-19 10:16 [binutils-gdb] Fix Arm build error sergiodj+buildbot
2019-03-19 10:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-19 13:27 [binutils-gdb] ix86: Disable AVX512F when disabling AVX2 sergiodj+buildbot
2019-03-19 13:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-19 18:24 [binutils-gdb] Add comments describing tui_ui_out and its fields, cleanup a bit sergiodj+buildbot
2019-03-19 18:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-19 18:38 [binutils-gdb] Don't show "display"s twice in MI sergiodj+buildbot
2019-03-19 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-20 18:17 [binutils-gdb] [BFD, AArch64] Define elf_backend_fixup_gnu_properties in AArch64 sergiodj+buildbot
2019-03-20 18:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-21 22:32 [binutils-gdb] RISC-V: Fix linker crash in section symbol check sergiodj+buildbot
2019-03-21 22:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 10:00 [binutils-gdb] Testsuite: Ensure pie is disabled on some tests sergiodj+buildbot
2019-03-22 10:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 12:22 [binutils-gdb] AArch64: Add pointer authentication feature sergiodj+buildbot
2019-03-22 12:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 12:49 [binutils-gdb] AArch64: Read pauth registers sergiodj+buildbot
2019-03-22 12:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 13:17 [binutils-gdb] AArch64: Add pauth DWARF registers sergiodj+buildbot
2019-03-22 13:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 13:31 [binutils-gdb] AArch64: DWARF unwinder support for signed return addresses sergiodj+buildbot
2019-03-22 13:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 13:48 [binutils-gdb] AArch64: Prologue scan unwinder support for signed return addresses sergiodj+buildbot
2019-03-22 13:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-22 14:02 [binutils-gdb] AArch64: Read pauth section from core files sergiodj+buildbot
2019-03-22 14:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-23 16:58 [binutils-gdb] Use scoped_restore_current_language in two places sergiodj+buildbot
2019-03-23 16:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-23 17:15 [binutils-gdb] Include bcache.h from objfiles.h sergiodj+buildbot
2019-03-23 17:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-23 17:30 [binutils-gdb] Have parser reset the innermost block tracker sergiodj+buildbot
2019-03-23 17:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 6:17 [binutils-gdb] Remove null_block_symbol sergiodj+buildbot
2019-03-25 6:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 6:17 [binutils-gdb] More block constification sergiodj+buildbot
2019-03-25 5:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 15:38 [binutils-gdb] AArch64: Fix AArch64 disassembler mapping symbol search sergiodj+buildbot
2019-03-25 15:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 15:52 [binutils-gdb] AArch64: Have -D override mapping symbol as documented sergiodj+buildbot
2019-03-25 15:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 17:24 [binutils-gdb] Fix s390 build sergiodj+buildbot
2019-03-25 17:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 20:06 [binutils-gdb] Clean up some comments in minsyms.c sergiodj+buildbot
2019-03-25 20:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-25 20:39 [binutils-gdb] Note support for TLS variables on FreeBSD sergiodj+buildbot
2019-03-25 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-26 1:01 [binutils-gdb] Fix use-after-free in source_cache::get_source_lines sergiodj+buildbot
2019-03-26 0:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-26 13:23 [binutils-gdb] Fix Arm build sergiodj+buildbot
2019-03-26 13:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-26 17:40 [binutils-gdb] Add AArch64 Pointer Authentication to the NEWS file sergiodj+buildbot
2019-03-26 17:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-26 20:13 [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing sergiodj+buildbot
2019-03-26 20:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-26 20:22 [binutils-gdb] gdb: Make python display_hint None handling defined behaviour sergiodj+buildbot
2019-03-26 20:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-27 12:22 [binutils-gdb] Testsuite: Ensure interrupt-daemon-attach doesn't run forever sergiodj+buildbot
2019-03-27 12:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-27 16:06 [binutils-gdb] Fix buffer overflow regression due to minsym malloc-ed instead of obstack-ed sergiodj+buildbot
2019-03-27 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-27 22:18 [binutils-gdb] sim/common: convert sim-arange to use sim-inline sergiodj+buildbot
2019-03-27 22:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 0:24 [binutils-gdb] sim/common: Fix warnings: "warning: implicit declaration of function..." sergiodj+buildbot
2019-03-28 1:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 7:20 [binutils-gdb] PR24390, Don't decode mtfsb field as a cr field sergiodj+buildbot
2019-03-28 7:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 7:37 [binutils-gdb] PR24392, Clang warning Wtautological-constant-out-of-range-compare sergiodj+buildbot
2019-03-28 7:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 12:45 [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined sergiodj+buildbot
2019-03-28 12:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 13:40 [binutils-gdb] AArch64: 128bit views for SVE registers sergiodj+buildbot
2019-03-28 14:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 16:51 [binutils-gdb] Testsuite: set sysroot when using gdbserver sergiodj+buildbot
2019-03-28 16:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 17:41 [binutils-gdb] Fix stepping past unwritable kernel helper on nios2-linux-gnu sergiodj+buildbot
2019-03-28 17:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 20:57 [binutils-gdb] Fix GDB being suspended SIGTTOU when running gdb.multi/multi-arch-exec.exp sergiodj+buildbot
2019-03-28 21:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 21:16 [binutils-gdb] Fix gdb.multi/multi-arch-exec.exp blocking under high load/slow gdb sergiodj+buildbot
2019-03-28 21:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 21:38 [binutils-gdb] Fix gdb.multi/multi-term-settings.exp blocking under high load/slow gdb sergiodj+buildbot
2019-03-28 21:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 21:40 [binutils-gdb] Fix format specification in display_selector() (again) sergiodj+buildbot
2019-03-28 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-28 23:33 [binutils-gdb] sim: fix all sim builds sergiodj+buildbot
2019-03-28 23:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-29 17:39 [binutils-gdb] bfd: xtensa: fix shrink_dynamic_reloc_sections for export-dynamic sergiodj+buildbot
2019-03-29 18:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-29 18:45 [binutils-gdb] Allow really large fortran array bounds: TYPE_LENGTH to ULONGEST sergiodj+buildbot
2019-03-29 18:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-29 18:49 [binutils-gdb] Allow really large fortran array bounds: fortran type/value printers sergiodj+buildbot
2019-03-29 19:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-29 21:07 [binutils-gdb] Add usage for commands in printcmd.c sergiodj+buildbot
2019-03-29 21:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-30 10:38 [binutils-gdb] Introduce new convenience variables $_gdb_major and $_gdb_minor sergiodj+buildbot
2019-03-30 11:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-03-30 17:50 [binutils-gdb] RISC-V: Relax tail/j to c.j for RV64 sergiodj+buildbot
2019-03-30 18:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 8:39 [binutils-gdb] Add gdb.Value.format_string () sergiodj+buildbot
2019-04-01 8:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 10:06 [binutils-gdb] [GAS, Arm] CLI with architecture sensitive extensions sergiodj+buildbot
2019-04-01 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 15:18 [binutils-gdb] Destroy allocated values when exiting GDB sergiodj+buildbot
2019-04-01 15:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 17:31 [binutils-gdb] Handle DW_AT_ranges when reading partial symtabs sergiodj+buildbot
2019-04-01 18:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 19:53 [binutils-gdb] Fix internal error and improve 'set debug infrun 1'/target wait kind trace sergiodj+buildbot
2019-04-01 19:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 21:35 [binutils-gdb] gdb: Add $_cimag and $_creal internal functions sergiodj+buildbot
2019-04-01 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-01 21:51 [binutils-gdb] gdb/fortran: Handle internal function calls sergiodj+buildbot
2019-04-01 21:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-02 20:51 [binutils-gdb] RISC-V: Don't check ABI flags if no code section sergiodj+buildbot
2019-04-02 20:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-04 23:54 [binutils-gdb] [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call sergiodj+buildbot
2019-04-05 0:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 2:09 [binutils-gdb] Add extended mnemonics for bctar. Fix setting of 'at' branch hints sergiodj+buildbot
2019-04-05 0:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 2:09 [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces sergiodj+buildbot
2019-04-05 2:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 2:26 [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints sergiodj+buildbot
2019-04-05 2:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 2:42 [binutils-gdb] Make increase_expout_size static sergiodj+buildbot
2019-04-05 3:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 3:47 [binutils-gdb] Turn parse_gdbarch into a method sergiodj+buildbot
2019-04-05 3:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 3:47 [binutils-gdb] Make base class for parser_state sergiodj+buildbot
2019-04-05 4:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 4:17 [binutils-gdb] Move expression_context_* globals to parser_state sergiodj+buildbot
2019-04-05 4:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 4:17 [binutils-gdb] Remove paren_depth global sergiodj+buildbot
2019-04-05 4:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 4:32 [binutils-gdb] Move comma_terminates global to parser_state sergiodj+buildbot
2019-04-05 4:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 4:48 [binutils-gdb] Move lexptr and prev_lexptr to parser_state sergiodj+buildbot
2019-04-05 5:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 5:20 [binutils-gdb] Move completion parsing to parser_state sergiodj+buildbot
2019-04-05 5:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 5:50 [binutils-gdb] Move innermost_block_tracker global to parse_state sergiodj+buildbot
2019-04-05 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-05 17:49 [binutils-gdb] Use linux_get_auxv to get AT_PHDR in the PPC stub sergiodj+buildbot
2019-04-05 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-06 4:55 [binutils-gdb] Sort includes for files gdb/[a-f]*.[chyl] sergiodj+buildbot
2019-04-06 1:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-06 14:44 [binutils-gdb] x86: Move x86-specific linker options to elf_linker_x86_params sergiodj+buildbot
2019-04-06 15:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-06 20:05 [binutils-gdb] Revert the header-sorting patch sergiodj+buildbot
2019-04-06 21:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-07 13:25 [binutils-gdb] Merge libiberty from gcc sergiodj+buildbot
2019-04-07 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-07 13:40 [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c sergiodj+buildbot
2019-04-07 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 4:59 [binutils-gdb] Fix x86_64-rdos build fail sergiodj+buildbot
2019-04-08 5:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 15:37 [binutils-gdb] Simplify exception handling sergiodj+buildbot
2019-04-08 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 15:53 [binutils-gdb] Make exceptions use std::string and be self-managing sergiodj+buildbot
2019-04-08 16:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Rewrite TRY/CATCH sergiodj+buildbot
2019-04-08 16:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Remove some now-dead exception code sergiodj+buildbot
2019-04-08 16:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 16:55 [binutils-gdb] Make exception throwing a bit more efficient sergiodj+buildbot
2019-04-08 17:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 17:11 [binutils-gdb] Replace throw_exception with throw in some cases sergiodj+buildbot
2019-04-08 18:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 18:38 [binutils-gdb] x86: Consolidate AVX512 BF16 entries in i386-opc.tbl sergiodj+buildbot
2019-04-08 19:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 19:19 [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets sergiodj+buildbot
2019-04-08 19:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-08 19:35 [binutils-gdb] Some gdb_exception{,error,quit} tweaks sergiodj+buildbot
2019-04-08 20:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 3:51 [binutils-gdb] Introduce target_ops method thread_info_to_thread_handle sergiodj+buildbot
2019-04-09 4:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 4:09 [binutils-gdb] Add python method InferiorThread.handle sergiodj+buildbot
2019-04-09 4:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 4:40 [binutils-gdb] Tests for gdb.InferiorThread.handle sergiodj+buildbot
2019-04-09 4:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 10:15 [binutils-gdb] [MIPS] Add RDHWR with the SEL field for MIPS R6 sergiodj+buildbot
2019-04-09 10:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 16:54 [binutils-gdb] Use -qualified flag when setting temporary breakpoint in start command sergiodj+buildbot
2019-04-09 17:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 18:18 [binutils-gdb] Consistently use bool for fake_pid_p sergiodj+buildbot
2019-04-09 18:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 18:36 [binutils-gdb] Use find_thread_in_random in select_event_lwp sergiodj+buildbot
2019-04-09 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-09 19:44 [binutils-gdb] Fix Rust lexer buglet sergiodj+buildbot
2019-04-09 19:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-10 9:22 [binutils-gdb] PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer sergiodj+buildbot
2019-04-10 9:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-10 14:24 [binutils-gdb] Remove some uses of "object_files" sergiodj+buildbot
2019-04-10 14:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-10 14:42 [binutils-gdb] Fix a couple of comments sergiodj+buildbot
2019-04-10 14:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-10 15:14 [binutils-gdb] Pull in patch for libiberty that fixes a stack exhaustion bug when demangling a pathalogically constructed mangled name sergiodj+buildbot
2019-04-10 15:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 0:58 [binutils-gdb] Fix amd64->i386 linux syscall restart problem sergiodj+buildbot
2019-04-11 0:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 9:38 [binutils-gdb] [BINUTILS, AArch64, 1/2] Add new LDGM/STGM instruction sergiodj+buildbot
2019-04-11 9:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 9:56 [binutils-gdb] [BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructions sergiodj+buildbot
2019-04-11 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 10:57 [binutils-gdb] AArch64: When DF_BIND_NOW don't use TLSDESC GOT value sergiodj+buildbot
2019-04-11 11:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 11:45 [binutils-gdb] PR24435, buffer overflow reading dynamic entries sergiodj+buildbot
2019-04-11 11:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 17:34 [binutils-gdb] [gdb/testsuite] Add cc-with-dwz.exp and cc-with-dwz-m.exp sergiodj+buildbot
2019-04-11 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 19:21 [binutils-gdb] Make "msg" const in internal_vproblem sergiodj+buildbot
2019-04-11 19:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-11 23:12 [binutils-gdb] gdb: Fix alignment computation for structs with only static fields sergiodj+buildbot
2019-04-11 23:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-12 8:47 [binutils-gdb] gdb: Remove LANG_MAGIC sergiodj+buildbot
2019-04-12 8:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-12 10:57 [binutils-gdb] Testsuite: Add gdbserver sysroot test sergiodj+buildbot
2019-04-12 11:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-12 12:53 [binutils-gdb] Another fix for GDB styling sergiodj+buildbot
2019-04-12 13:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-13 0:05 [binutils-gdb] gdb: Fix failure in gdb.base/complex-parts.exp for x86-32 sergiodj+buildbot
2019-04-13 0:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-13 21:26 [binutils-gdb] sim: Use host not target byte order for merging and splitting values sergiodj+buildbot
2019-04-13 22:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 12:26 [binutils-gdb] [binutils, ARM, 5/16] BF insns infrastructure with new global reloc R_ARM_THM_BF16 sergiodj+buildbot
2019-04-15 12:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 12:41 [binutils-gdb] [binutils, ARM, 6/16] New BF instruction for Armv8.1-M Mainline sergiodj+buildbot
2019-04-15 12:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 13:09 [binutils-gdb] [binutils, ARM, 7/16] New BFX and BFLX instruction for Armv8.1-M Mainline sergiodj+buildbot
2019-04-15 13:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 13:18 [binutils-gdb] [binutils, ARM, 8/16] BFL infrastructure with new global reloc R_ARM_THM_BF18 sergiodj+buildbot
2019-04-15 13:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 13:33 [binutils-gdb] [binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline sergiodj+buildbot
2019-04-15 13:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 13:50 [binutils-gdb] [binutils, ARM, 10/16] BFCSEL infrastructure with new global reloc R_ARM_THM_BF12 sergiodj+buildbot
2019-04-15 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 14:07 [binutils-gdb] [binutils, ARM, 11/16] New BFCSEL instruction for Armv8.1-M Mainline sergiodj+buildbot
2019-04-15 14:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 14:41 [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM sergiodj+buildbot
2019-04-15 14:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 15:14 [binutils-gdb] [binutils, ARM, 15/16] Add support for VSCCLRM sergiodj+buildbot
2019-04-15 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 15:32 [binutils-gdb] [binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers sergiodj+buildbot
2019-04-15 15:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 15:51 [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init sergiodj+buildbot
2019-04-15 16:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 16:10 [binutils-gdb] AArch64 SVE: Check for vector length change when getting gdbarch sergiodj+buildbot
2019-04-15 16:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-15 16:46 [binutils-gdb] Fix AMD64 return value ABI in expression evaluation sergiodj+buildbot
2019-04-15 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 0:08 [binutils-gdb] gdb/riscv: Allow breakpoints to be created at invalid addresses sergiodj+buildbot
2019-04-17 0:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 9:15 [binutils-gdb] gdbserver: Move remote_debug to a single place sergiodj+buildbot
2019-04-17 9:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 9:56 [binutils-gdb] gdbserver: Add debug-file option sergiodj+buildbot
2019-04-17 10:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 13:19 [binutils-gdb] Avoid crash in dwarf2_init_complex_target_type sergiodj+buildbot
2019-04-17 13:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 16:36 [binutils-gdb] x86: Also check x86 linker_def for non-shared definition sergiodj+buildbot
2019-04-17 16:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-17 17:44 [binutils-gdb] x86: Suggest -fPIE when not building shared object sergiodj+buildbot
2019-04-17 17:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-18 16:30 [binutils-gdb] [gdb] Handle vfork in thread with follow-fork-mode child sergiodj+buildbot
2019-04-18 16:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-18 16:56 [binutils-gdb] Make process_stratum_target::stratum "final" sergiodj+buildbot
2019-04-18 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-18 21:56 [binutils-gdb] [gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver sergiodj+buildbot
2019-04-18 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-19 8:42 [binutils-gdb] s12z and h8300 no-print-map-discarded fails sergiodj+buildbot
2019-04-19 9:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 15:04 [binutils-gdb] OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell" sergiodj+buildbot
2019-04-20 15:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 15:36 [binutils-gdb] Fix GDB crash when registers cannot be modified sergiodj+buildbot
2019-04-20 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 15:56 [binutils-gdb] Fix "list" when control characters are seen sergiodj+buildbot
2019-04-20 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 17:12 [binutils-gdb] Make copy_name return std::string sergiodj+buildbot
2019-04-20 17:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 17:28 [binutils-gdb] Make objfile::static_links an htab_up sergiodj+buildbot
2019-04-20 17:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 17:46 [binutils-gdb] Use std::list for event notifications in gdbserver sergiodj+buildbot
2019-04-20 18:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 18:22 [binutils-gdb] Remove an include of common/queue.h sergiodj+buildbot
2019-04-20 18:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-20 18:38 [binutils-gdb] Remove common/queue.h sergiodj+buildbot
2019-04-20 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-22 18:42 [binutils-gdb] solib-svr4: Pass down svr4_info as much as possible sergiodj+buildbot
2019-04-23 2:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 3:32 [binutils-gdb] RISC-V: Enable 32-bit linux gdb core file support sergiodj+buildbot
2019-04-23 3:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 3:48 [binutils-gdb] [FYI] Add myself to gdb/MAINTAINERS sergiodj+buildbot
2019-04-23 4:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 4:05 [binutils-gdb] Support for DW_OP_addrx and DW_FORM_addrx tags sergiodj+buildbot
2019-04-23 4:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 13:32 [binutils-gdb] Testsuite: Remove pie from trace tests sergiodj+buildbot
2019-04-23 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 13:59 [binutils-gdb] [gdb/contrib] Remove superfluous .alt file after dwz invocation in cc-with-tweaks.sh sergiodj+buildbot
2019-04-23 14:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 14:16 [binutils-gdb] [gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver sergiodj+buildbot
2019-04-23 14:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 17:28 [binutils-gdb] Remove unused overload of line_header::file_name_at sergiodj+buildbot
2019-04-23 17:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 22:28 [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-23 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 22:47 [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-23 23:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-23 23:54 [binutils-gdb] gdb/m32c: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 0:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 0:27 [binutils-gdb] gdb/m68hc11: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 1:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 1:00 [binutils-gdb] gdb/mn10300: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 1:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 1:15 [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 1:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 1:32 [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 1:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 1:49 [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 2:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 2:06 [binutils-gdb] gdb/nios2: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 2:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 2:22 [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 2:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 2:39 [binutils-gdb] gdb/rs6000: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 2:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 3:12 [binutils-gdb] gdb/score: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 3:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 3:29 [binutils-gdb] gdb/sh: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 3:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 3:46 [binutils-gdb] gdb/sparc: Use default_unwind_pc sergiodj+buildbot
2019-04-24 4:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 4:34 [binutils-gdb] gdb/v850: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 4:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 4:50 [binutils-gdb] gdb/vax: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 4:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 5:07 [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 5:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 5:24 [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 6:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 9:43 [binutils-gdb] S12Z: Opcodes: Handle bit map operations with non-canonical operands sergiodj+buildbot
2019-04-24 9:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 9:43 [binutils-gdb] S12Z: s12z-opc.h: Add extern "C" bracketing sergiodj+buildbot
2019-04-24 9:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 18:26 [binutils-gdb] Fix passing of struct with bitfields on x86-64 sergiodj+buildbot
2019-04-24 18:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-24 20:48 [binutils-gdb] Fix Rust testing sergiodj+buildbot
2019-04-24 21:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
[not found] <@gdb-build>
2019-04-25 13:59 ` sergiodj+buildbot
2019-04-25 14:51 [binutils-gdb] Detect invalid length field in debug frame FDE header sergiodj+buildbot
2019-04-25 14:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-25 19:20 [binutils-gdb] Implement dump of mappings with ELF headers by gcore sergiodj+buildbot
2019-04-25 18:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-25 19:27 [binutils-gdb] Remove exception_none sergiodj+buildbot
2019-04-25 19:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-25 19:44 [binutils-gdb] Make SJLJ exceptions more efficient sergiodj+buildbot
2019-04-25 19:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-25 20:51 [binutils-gdb] c++/24367: Infinite recursion of typedef substitution sergiodj+buildbot
2019-04-25 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-27 1:55 [binutils-gdb] [MIPS] Add load-link, store-conditional paired instructions sergiodj+buildbot
2019-04-27 2:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-27 11:41 [binutils-gdb] Implement show | set may-call-functions [on|off] sergiodj+buildbot
2019-04-27 11:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-28 5:25 [binutils-gdb] Follow-up to Support style in 'frame|thread apply' sergiodj+buildbot
2019-04-28 5:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-29 14:33 [binutils-gdb] S12Z: Opcodes: Fix crash when trying to decode a truncated operation sergiodj+buildbot
2019-04-29 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-29 15:13 [binutils-gdb] [gdb/testsuite] Fix regexp in skip_opencl_tests sergiodj+buildbot
2019-04-29 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-29 21:38 [binutils-gdb] gdb: Introduce new language field la_struct_too_deep_ellipsis sergiodj+buildbot
2019-04-29 21:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-29 21:55 [binutils-gdb] gdb: Introduce new language field la_is_string_type_p sergiodj+buildbot
2019-04-29 21:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-29 22:12 [binutils-gdb] gdb: Introduce 'print max-depth' feature sergiodj+buildbot
2019-04-29 22:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 13:16 [binutils-gdb] gdb/fortran: Additional builtin procedures sergiodj+buildbot
2019-04-30 13:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 13:50 [binutils-gdb] gdb/fortran: print function arguments when printing function type sergiodj+buildbot
2019-04-30 13:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 14:07 [binutils-gdb] gdb/fortran: Update rules for printing whitespace in types sergiodj+buildbot
2019-04-30 14:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 14:23 [binutils-gdb] gdb/fortran: Add allocatable type qualifier sergiodj+buildbot
2019-04-30 14:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 15:12 [binutils-gdb] Fix crash in dwarf2read.c with template parameters sergiodj+buildbot
2019-04-30 15:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 15:28 [binutils-gdb] Fix "catch exception" with dynamic linking sergiodj+buildbot
2019-04-30 15:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 21:55 [binutils-gdb] gdb/windows-nat.c: Get rid of main_thread_id global sergiodj+buildbot
2019-04-30 22:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-04-30 23:41 [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms sergiodj+buildbot
2019-04-30 23:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-01 13:53 [binutils-gdb] [gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp sergiodj+buildbot
2019-05-01 14:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-01 14:52 [binutils-gdb] Fix bug in assignment to nested packed structure sergiodj+buildbot
2019-05-01 14:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-01 16:32 [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension sergiodj+buildbot
2019-05-01 17:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-03 1:02 [binutils-gdb] Remove _initialize_valarith sergiodj+buildbot
2019-05-03 2:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-03 8:37 [binutils-gdb] On MS-Windows, define _WIN32_WINNT in a single common place sergiodj+buildbot
2019-05-03 8:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-03 11:15 [binutils-gdb] [gdb/testsuite] Add cc-with-gdb-index.exp sergiodj+buildbot
2019-05-03 11:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-03 23:22 [binutils-gdb] Add noyywrap to ada-lex.l sergiodj+buildbot
2019-05-03 23:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-03 23:39 [binutils-gdb] Fix cast of character to enum type in Ada sergiodj+buildbot
2019-05-04 0:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 8:16 [binutils-gdb] PR24511, nm should not mark symbols in .init_array as "t" sergiodj+buildbot
2019-05-04 8:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 20:02 [binutils-gdb] Don't derive partial_symbol from general_symbol_info sergiodj+buildbot
2019-05-04 20:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 21:04 [binutils-gdb] Change valid_user_defined_cmd_name_p to return bool sergiodj+buildbot
2019-05-04 21:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 21:19 [binutils-gdb] Change valid_command_p to return bool sergiodj+buildbot
2019-05-04 21:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 21:52 [binutils-gdb] Use bool, true, and false in arc-tdep.c sergiodj+buildbot
2019-05-04 22:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 22:08 [binutils-gdb] Use "false" in compile_cplus_convert_enum sergiodj+buildbot
2019-05-04 22:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 22:24 [binutils-gdb] Use gdb_assert_not_reached in arm-linux-nat.c sergiodj+buildbot
2019-05-04 22:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 22:41 [binutils-gdb] Change arc_tdesc_init to return bool sergiodj+buildbot
2019-05-04 22:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-04 23:12 [binutils-gdb] Remove a VEC from aarch64-tdep.c sergiodj+buildbot
2019-05-04 23:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-06 3:06 [binutils-gdb] PicoJava weak undefined symbols sergiodj+buildbot
2019-05-06 2:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-06 14:09 [binutils-gdb] Add load-link, store-conditional paired EVA instructions sergiodj+buildbot
2019-05-06 14:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-07 9:16 [binutils-gdb] [gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler sergiodj+buildbot
2019-05-07 8:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-07 9:16 [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S sergiodj+buildbot
2019-05-07 9:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-07 9:52 [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in watch-loc.c sergiodj+buildbot
2019-05-07 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-07 10:09 [binutils-gdb] [gdb/testsuite] Fix ls_host return in index-cache.exp sergiodj+buildbot
2019-05-07 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 14:11 [binutils-gdb] Do not force the m68k-elf linker to fail if it encoutners a non-ELF format file sergiodj+buildbot
2019-05-08 14:23 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 16:34 [binutils-gdb] Fix VLA printing for Ada sergiodj+buildbot
2019-05-08 16:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 17:16 [binutils-gdb] Change ptype/o to print bit offset sergiodj+buildbot
2019-05-08 17:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 17:32 [binutils-gdb] Correctly handle non-C-style arrays in c_get_string sergiodj+buildbot
2019-05-08 17:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 18:11 [binutils-gdb] Fix build problem in fputs_maybe_filtered sergiodj+buildbot
2019-05-08 18:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 19:04 [binutils-gdb] Move "watchdog" to remote.c sergiodj+buildbot
2019-05-08 19:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 19:38 [binutils-gdb] When debugging a mixed Ada/C program using this scenario: sergiodj+buildbot
2019-05-08 19:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 20:19 [binutils-gdb] gdb: Merge two 'New commands' sections in NEWS file sergiodj+buildbot
2019-05-08 20:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 22:42 [binutils-gdb] Convert main_info to type-safe registry API sergiodj+buildbot
2019-05-08 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 22:58 [binutils-gdb] Convert symbol_cache to type-safe registry API sergiodj+buildbot
2019-05-08 23:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 23:31 [binutils-gdb] Convert inflow to type-safe registry API sergiodj+buildbot
2019-05-08 23:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-08 23:46 [binutils-gdb] Convert break-catch-syscall.c to type-safe registry API sergiodj+buildbot
2019-05-08 23:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 0:18 [binutils-gdb] Convert auto-load.c to type-safe registry API sergiodj+buildbot
2019-05-09 0:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 0:36 [binutils-gdb] Convert dwarf2_per_objfile to type-safe registry API sergiodj+buildbot
2019-05-09 0:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 1:11 [binutils-gdb] Convert auxv.c to type-safe registry API sergiodj+buildbot
2019-05-09 1:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 1:46 [binutils-gdb] Convert breakpoint.c to type-safe registry API sergiodj+buildbot
2019-05-09 1:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 2:03 [binutils-gdb] Convert remote.c to type-safe registry API sergiodj+buildbot
2019-05-09 2:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 2:52 [binutils-gdb] Convert probes to type-safe registry API sergiodj+buildbot
2019-05-09 2:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 3:27 [binutils-gdb] Convert ada-tasks.c to type-safe registry API sergiodj+buildbot
2019-05-09 3:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 4:18 [binutils-gdb] Convert ada-lang.c to type-safe registry API sergiodj+buildbot
2019-05-09 4:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 4:52 [binutils-gdb] Add a noop deleter sergiodj+buildbot
2019-05-09 4:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 5:09 [binutils-gdb] Convert mdebugread.c to type-safe registry API sergiodj+buildbot
2019-05-09 5:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 5:25 [binutils-gdb] Convert elfread.c to type-safe registry API sergiodj+buildbot
2019-05-09 5:28 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 5:43 [binutils-gdb] Convert hppa-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-09 5:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 6:17 [binutils-gdb] Convert stabsread.c to type-safe registry API sergiodj+buildbot
2019-05-09 6:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 6:34 [binutils-gdb] Convert objc-lang.c to type-safe registry API sergiodj+buildbot
2019-05-09 6:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 7:05 [binutils-gdb] Convert gdbtypes.c to type-safe registry API sergiodj+buildbot
2019-05-09 7:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 7:22 [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-entry-value-paramref.S sergiodj+buildbot
2019-05-09 7:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 10:07 [binutils-gdb] [binutils][aarch64] Allow movprfx for SVE2 instructions sergiodj+buildbot
2019-05-09 10:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 10:22 [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand sergiodj+buildbot
2019-05-09 10:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 10:37 [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2 sergiodj+buildbot
2019-05-09 10:52 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 10:53 [binutils-gdb] [binutils][aarch64] New SVE_Zm3_11_INDEX operand sergiodj+buildbot
2019-05-09 11:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 11:25 [binutils-gdb] [binutils][aarch64] New sve_size_sd2 iclass sergiodj+buildbot
2019-05-09 11:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 11:57 [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass sergiodj+buildbot
2019-05-09 12:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 12:14 [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand sergiodj+buildbot
2019-05-09 12:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 12:31 [binutils-gdb] [binutils][aarch64] New sve_shift_tsz_bhsd iclass sergiodj+buildbot
2019-05-09 12:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 13:14 [binutils-gdb] [binutils][aarch64] New sve_size_tsz_bhs iclass sergiodj+buildbot
2019-05-09 13:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 13:21 [binutils-gdb] [binutils][aarch64] New SVE_SHLIMM_UNPRED_22 operand sergiodj+buildbot
2019-05-09 13:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-09 13:53 [binutils-gdb] [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S sergiodj+buildbot
2019-05-09 14:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-10 13:40 [binutils-gdb] Two minor constifications sergiodj+buildbot
2019-05-10 13:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-10 16:16 [binutils-gdb] Add completion for Ada catch commands sergiodj+buildbot
2019-05-10 16:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-10 20:58 [binutils-gdb] cc-with-tweaks: show dwz stderr and verify result sergiodj+buildbot
2019-05-10 20:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-11 0:59 [binutils-gdb] PowerPC objdump -Mraw sergiodj+buildbot
2019-05-11 1:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-12 16:12 [binutils-gdb] Fix two langauge -> language typos sergiodj+buildbot
2019-05-12 16:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 8:28 [binutils-gdb] [gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S sergiodj+buildbot
2019-05-14 8:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 9:55 [binutils-gdb] AArch64: Add half float view to V registers sergiodj+buildbot
2019-05-14 9:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 10:15 [binutils-gdb] A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled sergiodj+buildbot
2019-05-14 10:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 10:31 [binutils-gdb] Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files sergiodj+buildbot
2019-05-14 10:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 14:08 [binutils-gdb] Add file name styling to "info sharedlibrary" sergiodj+buildbot
2019-05-14 14:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-14 22:29 [binutils-gdb] Fix assertion failure in coerce_unspec_val_to_type sergiodj+buildbot
2019-05-14 22:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-15 7:31 [binutils-gdb] ARM STM32L4XX erratum test failure sergiodj+buildbot
2019-05-15 7:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-15 14:17 [binutils-gdb] Don't crash if dwarf_decode_macro_bytes's 'body' is NULL sergiodj+buildbot
2019-05-15 14:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-15 21:57 [binutils-gdb] gdb/fortran: Add sizeof tests for indexed and sliced arrays sergiodj+buildbot
2019-05-15 21:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 13:25 [binutils-gdb] Revert "ARM STM32L4XX erratum test failure" sergiodj+buildbot
2019-05-16 13:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 15:57 [binutils-gdb] [PATCH 1/57][Arm][GAS]: Add support for +mve and +mve.fp sergiodj+buildbot
2019-05-16 15:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 16:29 [binutils-gdb] [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic sergiodj+buildbot
2019-05-16 16:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 17:04 [binutils-gdb] [PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh sergiodj+buildbot
2019-05-16 17:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 17:22 [binutils-gdb] [PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup sergiodj+buildbot
2019-05-16 17:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 17:53 [binutils-gdb] [PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions sergiodj+buildbot
2019-05-16 17:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 18:25 [binutils-gdb] [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub sergiodj+buildbot
2019-05-16 18:31 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 18:42 [binutils-gdb] [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp sergiodj+buildbot
2019-05-16 18:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 19:14 [binutils-gdb] [PATCH 55/57][Arm][OBJDUMP] Add support for MVE instructions: vmul, vmulh, vrmulh and vneg sergiodj+buildbot
2019-05-16 19:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 19:46 [binutils-gdb] Fix darwin-nat.c build sergiodj+buildbot
2019-05-16 19:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 20:49 [binutils-gdb] Bool-ify stap-probe.c and stap-related code on i386-tdep.c sergiodj+buildbot
2019-05-16 20:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 21:04 [binutils-gdb] Update some comments on stap-probe.c sergiodj+buildbot
2019-05-16 21:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 21:21 [binutils-gdb] Slightly improve logic of some operations on stap-probe.c sergiodj+buildbot
2019-05-16 21:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 21:37 [binutils-gdb] Fix complaint string formatting on stap-probe.c sergiodj+buildbot
2019-05-16 21:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-16 21:53 [binutils-gdb] Make stap-probe.c:stap_parse_register_operand's "regname" an std::string sergiodj+buildbot
2019-05-16 21:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 7:58 [binutils-gdb] [gdb] Fix heap-use-after-free in typename_concat sergiodj+buildbot
2019-05-17 7:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 10:06 [binutils-gdb] Add myself to gdb/MAINTAINERS sergiodj+buildbot
2019-05-17 10:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 10:42 [binutils-gdb] MI: extract command completion logic from complete_command() sergiodj+buildbot
2019-05-17 11:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 11:02 [binutils-gdb] MI: Add new command -complete sergiodj+buildbot
2019-05-17 11:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 13:27 [binutils-gdb] Change file close behavior for tee_file sergiodj+buildbot
2019-05-17 13:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 13:46 [binutils-gdb] Add debug redirect option sergiodj+buildbot
2019-05-17 13:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 14:55 [binutils-gdb] testsuite: Disable some tests when logging sergiodj+buildbot
2019-05-17 15:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 15:53 [binutils-gdb] testsuite: Record all gdb input to gdb.in sergiodj+buildbot
2019-05-17 15:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 16:15 [binutils-gdb] testsuite: Create .cmd files for gdb and gdbserver sergiodj+buildbot
2019-05-17 16:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 16:26 [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG sergiodj+buildbot
2019-05-17 16:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 16:43 [binutils-gdb] testsuite: Remove TRANSCRIPT support sergiodj+buildbot
2019-05-17 16:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 17:00 [binutils-gdb] Constify annotate_source sergiodj+buildbot
2019-05-17 17:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-17 17:37 [binutils-gdb] Don't cast away const in find_and_open_source sergiodj+buildbot
2019-05-17 17:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-18 9:06 [binutils-gdb] gdb: Add constructor to struct cu_partial_die_info sergiodj+buildbot
2019-05-18 9:19 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 7:37 [binutils-gdb] Updated translations for various binutils subdirectories sergiodj+buildbot
2019-05-21 7:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 9:03 [binutils-gdb] Fix PR 24564 - link fails for some rcalls/rjmps with wraparound sergiodj+buildbot
2019-05-21 9:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 10:14 [binutils-gdb] Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary sergiodj+buildbot
2019-05-21 10:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 14:27 [binutils-gdb] AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373) sergiodj+buildbot
2019-05-21 14:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 15:16 [binutils-gdb] [binutils][Arm] Fix Branch Future relocation handling and testisms sergiodj+buildbot
2019-05-21 15:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 16:56 [binutils-gdb] [gdb/testsuite] Require c++11 where necessary sergiodj+buildbot
2019-05-21 17:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 17:09 [binutils-gdb] [gdb/cli] Fix use of uninitialized variable in complete_command sergiodj+buildbot
2019-05-21 17:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 18:53 [binutils-gdb] [binutils, Arm] Add support for shift instructions in MVE sergiodj+buildbot
2019-05-21 19:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 19:25 [binutils-gdb] [binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline sergiodj+buildbot
2019-05-21 19:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 19:31 [binutils-gdb] [binutils, ARM] <spec_reg> changes for VMRS and VMSR instructions sergiodj+buildbot
2019-05-21 19:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 20:39 [binutils-gdb] MIPS/LD: Fix memory fault linking non-PIC object in to shared library sergiodj+buildbot
2019-05-21 21:00 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-21 21:26 [binutils-gdb] MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library sergiodj+buildbot
2019-05-21 21:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 0:49 [binutils-gdb] gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr sergiodj+buildbot
2019-05-22 0:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 11:18 [binutils-gdb] ARM STM32L4XX erratum test failure with MALLOC_PERTURB_ sergiodj+buildbot
2019-05-22 11:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 14:47 [binutils-gdb] Document gdb.in/gdb.cmd files and debugredirect cli command sergiodj+buildbot
2019-05-22 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 16:32 [binutils-gdb] AArch64: Treat pauth ops as nops on non-pauth systems sergiodj+buildbot
2019-05-22 16:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 18:33 [binutils-gdb] [gdb/testsuite] Require c++11 for gdb.base/align.exp sergiodj+buildbot
2019-05-22 18:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-22 20:42 [binutils-gdb] Add "style" proc to the test suite sergiodj+buildbot
2019-05-22 20:55 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-23 1:16 [binutils-gdb] Constify target_ops::follow_exec sergiodj+buildbot
2019-05-23 1:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-23 18:17 [binutils-gdb] config.guess, config.sub: synchronize with config project master sources sergiodj+buildbot
2019-05-23 18:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-23 19:17 [binutils-gdb] include: add elf/bpf.h sergiodj+buildbot
2019-05-23 19:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-23 20:19 [binutils-gdb] opcodes: add support for eBPF sergiodj+buildbot
2019-05-23 20:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-24 2:50 [binutils-gdb] PowerPC add initial -mfuture instruction support sergiodj+buildbot
2019-05-24 3:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-24 3:11 [binutils-gdb] PowerPC D-form prefixed loads and stores sergiodj+buildbot
2019-05-24 3:22 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-24 3:29 [binutils-gdb] PowerPC relocations for prefix insns sergiodj+buildbot
2019-05-24 3:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-24 3:52 [binutils-gdb] PowerPC GOT_PCREL34 optimisation sergiodj+buildbot
2019-05-24 3:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-24 4:14 [binutils-gdb] PowerPC notoc linkage stubs sergiodj+buildbot
2019-05-24 4:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-25 0:33 [binutils-gdb] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS sergiodj+buildbot
2019-05-25 0:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-25 0:56 [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd sergiodj+buildbot
2019-05-25 1:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-27 8:33 [binutils-gdb] Generic ELF target group signature symbol sergiodj+buildbot
2019-05-27 8:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-27 9:04 [binutils-gdb] Another generic ELF target assertion failure sergiodj+buildbot
2019-05-27 9:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-28 3:44 [binutils-gdb] Fix typo in gdb/NEWS sergiodj+buildbot
2019-05-28 3:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-28 5:01 [binutils-gdb] Obsolete tic30-aout, and linker segmentation faults sergiodj+buildbot
2019-05-28 5:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-28 5:51 [binutils-gdb] HPPA64 linker segmentation faults sergiodj+buildbot
2019-05-28 6:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:02 [binutils-gdb] LM32 linker segmentation faults sergiodj+buildbot
2019-05-29 0:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:04 [binutils-gdb] Alpha-linux linker segmentation fault sergiodj+buildbot
2019-05-29 0:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:06 [binutils-gdb] Microblaze linker segmentation fault sergiodj+buildbot
2019-05-29 0:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:08 [binutils-gdb] Suppress SIGTTOU when handling errors sergiodj+buildbot
2019-05-29 0:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:11 [binutils-gdb] include: new header ctf-api.h sergiodj+buildbot
2019-05-29 0:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:36 [binutils-gdb] libctf: low-level list manipulation and helper utilities sergiodj+buildbot
2019-05-29 0:36 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:50 [binutils-gdb] libctf: build system sergiodj+buildbot
2019-05-29 5:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 0:56 [binutils-gdb] Add libctf to top-level MAINTAINERS; add myself as CTF maintainer sergiodj+buildbot
2019-05-29 5:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 1:04 [binutils-gdb] Remove find_old_style_renaming_symbol sergiodj+buildbot
2019-05-29 5:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 1:13 [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations sergiodj+buildbot
2019-05-29 6:20 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 1:35 [binutils-gdb] libctf: hashing sergiodj+buildbot
2019-05-29 1:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 1:53 [binutils-gdb] libctf: creation functions sergiodj+buildbot
2019-05-29 1:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 2:19 [binutils-gdb] libctf: opening sergiodj+buildbot
2019-05-29 2:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 3:14 [binutils-gdb] libctf: mmappable archives sergiodj+buildbot
2019-05-29 3:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 3:33 [binutils-gdb] libctf: core type lookup sergiodj+buildbot
2019-05-29 3:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 3:57 [binutils-gdb] libctf: type copying sergiodj+buildbot
2019-05-29 3:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 4:16 [binutils-gdb] libctf: library version enforcement sergiodj+buildbot
2019-05-29 4:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 4:47 [binutils-gdb] libctf: labels sergiodj+buildbot
2019-05-29 4:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 4:51 [binutils-gdb] libctf: debug dumping sergiodj+buildbot
2019-05-29 4:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 11:42 [binutils-gdb] Do not build libctf for targets that do not use the ELF file format sergiodj+buildbot
2019-05-29 11:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 12:50 [binutils-gdb] Sync top level files with versions from gcc sergiodj+buildbot
2019-05-29 13:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 16:06 [binutils-gdb] Add new GCC 9 warnings to warnings.m4 sergiodj+buildbot
2019-05-29 16:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 16:38 [binutils-gdb] Make some DWARF complaints clearer sergiodj+buildbot
2019-05-29 18:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 17:24 [binutils-gdb] Fix failure in gdb.ada/complete.exp sergiodj+buildbot
2019-05-29 18:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-29 21:49 [binutils-gdb] Don't crash is dwarf_decode_macro_bytes's 'body' is NULL, even when '!is_define' sergiodj+buildbot
2019-05-29 22:26 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-30 14:19 [binutils-gdb] Initialize variable word in complete sergiodj+buildbot
2019-05-30 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-31 15:41 [binutils-gdb] libctf: fix a number of build problems found on Solaris and NetBSD sergiodj+buildbot
2019-05-31 14:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-31 17:03 [binutils-gdb] Add previous_saved_command_line to allow a command to repeat a previous command sergiodj+buildbot
2019-05-31 17:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-31 18:04 [binutils-gdb] Implement | (pipe) command sergiodj+buildbot
2019-05-31 18:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-05-31 18:35 [binutils-gdb] NEWS and documentation for | (pipe) command sergiodj+buildbot
2019-05-31 18:39 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 2:58 [binutils-gdb] Remove fromhex implementation from gdbreplay sergiodj+buildbot
2019-06-03 2:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 16:02 [binutils-gdb] Don't waste space in prefix_opcd_indices sergiodj+buildbot
2019-06-03 16:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 21:15 [binutils-gdb] Revert patch that disables building libctf for non-ELF based targets sergiodj+buildbot
2019-06-03 21:12 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 21:49 [binutils-gdb] Add highlight style, title style, fputs_highlighted. Improve 'show style' sergiodj+buildbot
2019-06-03 21:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 22:05 [binutils-gdb] Improve usability and/or readibility of help and apropos output sergiodj+buildbot
2019-06-03 22:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 22:28 [binutils-gdb] Update tests following changes to "help" and "apropos" sergiodj+buildbot
2019-06-03 22:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-03 23:06 [binutils-gdb] Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes sergiodj+buildbot
2019-06-03 23:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 16:15 [binutils-gdb] Remove an unnecessary set of parentheses in the arm-dis.c source file sergiodj+buildbot
2019-06-04 16:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 16:45 [binutils-gdb] Add an objfile getter to gdb.Type sergiodj+buildbot
2019-06-04 16:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 17:11 [binutils-gdb] Add support for Intel ENQCMD[S] instructions sergiodj+buildbot
2019-06-04 17:11 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 17:31 [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn sergiodj+buildbot
2019-06-04 17:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 18:26 [binutils-gdb] libctf: fix the type of ctf_enum.cte_value sergiodj+buildbot
2019-06-04 18:30 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 19:32 [binutils-gdb] libctf: look for BSD versus GNU qsort_r signatures sergiodj+buildbot
2019-06-04 19:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 19:41 [binutils-gdb] libctf: work on platforms without O_CLOEXEC sergiodj+buildbot
2019-06-04 19:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 21:05 [binutils-gdb] i386: Check for reserved VEX.vvvv and EVEX.vvvv sergiodj+buildbot
2019-06-04 21:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 21:37 [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf sergiodj+buildbot
2019-06-04 21:44 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-04 23:38 [binutils-gdb] Introduce and use make_unique_xstrdup sergiodj+buildbot
2019-06-04 23:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-05 10:48 [binutils-gdb] gdb/riscv: Don't error when decoding a 6 or 8 byte instruction sergiodj+buildbot
2019-06-05 10:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-05 13:33 [binutils-gdb] gdb/testsuite: Improve comments in recently added test sergiodj+buildbot
2019-06-05 13:33 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-06 13:19 [binutils-gdb] [LD, AArch64] Move ELF options behind -z sergiodj+buildbot
2019-06-06 13:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-06 15:13 [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue sergiodj+buildbot
2019-06-06 15:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-06 18:15 [binutils-gdb] Add timestamps to "maint time" output sergiodj+buildbot
2019-06-06 18:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-07 13:33 [binutils-gdb] Apply substitute-path to relative filenames as well sergiodj+buildbot
2019-06-07 13:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-07 14:40 [binutils-gdb] libctf: mark various args as unused in the !HAVE_MMAP case sergiodj+buildbot
2019-06-07 14:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-07 15:10 [binutils-gdb] libctf: explicitly cast more size_t types used in printf()s sergiodj+buildbot
2019-06-07 15:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-07 15:36 [binutils-gdb] libctf: avoid strndup sergiodj+buildbot
2019-06-07 15:45 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 13:53 [binutils-gdb] [gdb/symtab] Support DW_AT_main_subprogram with -readnow sergiodj+buildbot
2019-06-10 14:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 14:58 [binutils-gdb] Use gdbpy_enter in py-breakpoint.c sergiodj+buildbot
2019-06-10 15:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 15:47 [binutils-gdb] Update help text in ada-lang.c sergiodj+buildbot
2019-06-10 15:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 19:04 [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression sergiodj+buildbot
2019-06-10 19:05 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 19:29 [binutils-gdb] [gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string sergiodj+buildbot
2019-06-10 19:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-10 20:13 [binutils-gdb] [gdb] Fix heap-buffer-overflow in cp_find_first_component_aux sergiodj+buildbot
2019-06-10 20:02 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-11 7:57 [binutils-gdb] gdb: Check for not allocated/associated values during array slicing sergiodj+buildbot
2019-06-11 8:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-11 11:55 [binutils-gdb] [gdb/testsuite] Add readnow.exp sergiodj+buildbot
2019-06-11 11:58 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-11 13:14 [binutils-gdb] Remove shadowing from darwin-nat.c sergiodj+buildbot
2019-06-11 13:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-11 13:39 [binutils-gdb] [gdb/testsuite] Fix remove-inferiors.exp FAIL with readnow board sergiodj+buildbot
2019-06-11 13:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-11 15:37 [binutils-gdb] Remove linux-waitpid.c debugging code sergiodj+buildbot
2019-06-11 15:43 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-12 21:16 [binutils-gdb] Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table sergiodj+buildbot
2019-06-12 21:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-12 22:32 [binutils-gdb] Remove the ldmx mnemonic that never made it into POWER9 sergiodj+buildbot
2019-06-12 22:38 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-12 23:45 [binutils-gdb] opcodes/or1k: Regenerate opcodes sergiodj+buildbot
2019-06-12 23:51 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 0:53 [binutils-gdb] Fix latent bug in custom word point completion handling sergiodj+buildbot
2019-06-13 0:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 1:10 [binutils-gdb] Fix latent bug with custom word point completers sergiodj+buildbot
2019-06-13 1:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 1:34 [binutils-gdb] Make check_for_argument skip whitespace after arg itself sergiodj+buildbot
2019-06-13 1:34 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 1:56 [binutils-gdb] Allow "unlimited" abbreviations sergiodj+buildbot
2019-06-13 1:56 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 2:04 [binutils-gdb] Fix "set enum-command value junk" sergiodj+buildbot
2019-06-13 2:14 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 2:25 [binutils-gdb] Remove "show" command completers, "set" command completers for string commands sergiodj+buildbot
2019-06-13 2:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 2:36 [binutils-gdb] New set/show testing framework (gdb.base/settings.exp) sergiodj+buildbot
2019-06-13 2:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 2:48 [binutils-gdb] Introduce generic command options framework sergiodj+buildbot
2019-06-13 2:48 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 2:53 [binutils-gdb] Make "print" and "compile print" support -OPT options sergiodj+buildbot
2019-06-13 2:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 10:19 [binutils-gdb] Fix gdb build with -std=gnu++11 sergiodj+buildbot
2019-06-13 10:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 14:06 [binutils-gdb] sim/common: Wire in df/di conversion sergiodj+buildbot
2019-06-13 14:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 14:32 [binutils-gdb] sim/common: wire up new unordered comparisons sergiodj+buildbot
2019-06-13 14:47 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-13 15:25 [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares sergiodj+buildbot
2019-06-13 15:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 6:59 [binutils-gdb] Regenerate with approved autotools version sergiodj+buildbot
2019-06-14 7:09 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs sergiodj+buildbot
2019-06-14 14:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Fix gdb.ada/vla.exp sergiodj+buildbot
2019-06-14 14:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 15:12 [binutils-gdb] Remove alloca(0) calls sergiodj+buildbot
2019-06-14 15:01 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 15:48 [binutils-gdb] Recognize _ in attribute names sergiodj+buildbot
2019-06-14 16:08 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 16:19 [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c sergiodj+buildbot
2019-06-14 16:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 16:57 [binutils-gdb] Only compute realpath when basenames_may_differ is set sergiodj+buildbot
2019-06-14 17:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 22:55 [binutils-gdb] Warn if add-symbol-file does not provide any symbols sergiodj+buildbot
2019-06-14 23:04 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-14 23:38 [binutils-gdb] Minor NEWS rearrangement sergiodj+buildbot
2019-06-14 23:50 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-15 0:36 [binutils-gdb] Do not emit style escape sequences to log file sergiodj+buildbot
2019-06-15 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-15 22:01 [binutils-gdb] gdb: Remove file path from test name sergiodj+buildbot
2019-06-15 22:17 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-15 22:42 [binutils-gdb] gdb: New function to open source file and compute line charpos data sergiodj+buildbot
2019-06-15 22:53 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-15 23:07 [binutils-gdb] gdb: Remove an update of current_source_line and current_source_symtab sergiodj+buildbot
2019-06-15 23:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 0:13 [binutils-gdb] gdb/mi: New commands to catch C++ exceptions sergiodj+buildbot
2019-06-16 0:15 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 1:15 [binutils-gdb] gdb/fortran: Show the type for non allocated / associated types sergiodj+buildbot
2019-06-16 1:16 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 16:27 [binutils-gdb] Make gdb.base/index-cache.exp work with readnow board (PR 24669) sergiodj+buildbot
2019-06-16 16:24 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 16:53 [binutils-gdb] Remove some NULL checks from the TUI sergiodj+buildbot
2019-06-16 17:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 17:15 [binutils-gdb] gdb/testsuite: Improve detection of bug gdb/24541 sergiodj+buildbot
2019-06-16 17:25 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 18:17 [binutils-gdb] Remove unnecessary casts of NULL sergiodj+buildbot
2019-06-16 18:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 18:41 [binutils-gdb] Replace uses of concat with xstrdup sergiodj+buildbot
2019-06-16 18:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 20:27 [binutils-gdb] gdb: Remove unused signal mask sergiodj+buildbot
2019-06-16 20:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-16 21:57 [binutils-gdb] Don't cast a tui_win_info directly to tui_gen_win_info sergiodj+buildbot
2019-06-16 21:57 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-17 1:14 [binutils-gdb] [gdb/contrib] Fix gdb/contrib/gdb-add-index.sh for dwz-m-ed execs sergiodj+buildbot
2019-06-17 1:35 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-17 18:56 [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal sergiodj+buildbot
2019-06-17 18:46 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-17 19:36 [binutils-gdb] i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX sergiodj+buildbot
2019-06-17 19:42 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-18 7:53 [binutils-gdb] [gdb] Fix heap-buffer-overflow in child_path sergiodj+buildbot
2019-06-18 7:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-18 17:21 [binutils-gdb] Add comment to list0.h sergiodj+buildbot
2019-06-18 17:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-19 17:21 [binutils-gdb] [gdb] Fix clang buildbreaker sergiodj+buildbot
2019-06-19 17:21 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-20 5:24 [binutils-gdb] i386: Check vector length for EVEX broadcast instructions sergiodj+buildbot
2019-06-20 5:03 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-20 9:51 [binutils-gdb] Don't declare tui_init_content_element sergiodj+buildbot
2019-06-20 10:06 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 7:56 [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build sergiodj+buildbot
2019-06-21 8:10 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 12:52 [binutils-gdb] PR24689, string table corruption sergiodj+buildbot
2019-06-21 12:54 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 13:47 [binutils-gdb] libctf: handle errors on dynhash insertion better sergiodj+buildbot
2019-06-21 13:59 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 14:04 [binutils-gdb] libctf: drop mmap()-based CTF data allocator sergiodj+buildbot
2019-06-21 14:07 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 14:34 [binutils-gdb] libctf: dump header offsets into the debugging output sergiodj+buildbot
2019-06-21 14:37 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 15:10 [binutils-gdb] libctf: unidentified type kinds on open are a sign of file corruption sergiodj+buildbot
2019-06-21 15:13 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 15:22 [binutils-gdb] Fix gnulib/update-gnulib.sh sergiodj+buildbot
2019-06-21 15:32 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 15:45 [binutils-gdb] Add gnulib to gdb release tarball sergiodj+buildbot
2019-06-21 15:49 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 17:15 [binutils-gdb] [gdb/testsuite] Mark ptype_union.exp as unsupported for cc-with-gdb-index sergiodj+buildbot
2019-06-21 17:27 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 20:25 [binutils-gdb] dwarf2read: Use bool for dwarf2_section_info fields sergiodj+buildbot
2019-06-21 20:29 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 20:33 [binutils-gdb] dwarf2read: C++ify dwo_file sergiodj+buildbot
2019-06-21 20:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-21 21:05 [binutils-gdb] dwarf2read: Get rid of VEC (dwarf2_section_info_def) sergiodj+buildbot
2019-06-21 21:18 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-22 0:39 [binutils-gdb] [gdb/testsuite] Compile index-cache.c with -Wl, --build-id sergiodj+buildbot
2019-06-22 0:41 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-06-22 22:33 [binutils-gdb] [gdb] Fix s390x -m31 build sergiodj+buildbot
2019-06-22 22:40 ` Failures on RHEL-s390x-m64, branch master sergiodj+buildbot
2019-09-03 15:14 [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler gdb-buildbot
2019-09-03 15:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-03 17:01 [binutils-gdb] Handle biased types gdb-buildbot
2019-09-03 17:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-03 22:11 [binutils-gdb] gdb: Handle missing domain types in: maintenance print psymbols gdb-buildbot
2019-09-03 22:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-04 21:19 [binutils-gdb] Avoid expect's buffer overflow in info-var.exp test gdb-buildbot
2019-09-04 21:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-05 4:49 [binutils-gdb] PR24955, libbfd terminating program on out of memory gdb-buildbot
2019-09-05 5:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-05 5:56 [binutils-gdb] R_PPC64_PCREL_OPT gdb-buildbot
2019-09-05 5:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-05 7:02 [binutils-gdb] PowerPC64 GOT_PCREL relocs gdb-buildbot
2019-09-05 7:21 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-05 13:10 [binutils-gdb] [gdb/testsuite] Restore breakpoint command in ui-redirect.exp gdb-buildbot
2019-09-05 13:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-06 14:26 [binutils-gdb] bfd_get_filename gdb-buildbot
2019-09-06 14:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-06 20:12 [binutils-gdb] Change int to bool for the relocate_* functions gdb-buildbot
2019-09-06 20:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-07 16:44 [binutils-gdb] Change lookup_symbol's block_index parameter type to block_enum gdb-buildbot
2019-09-07 16:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-08 20:44 [binutils-gdb] Truncate long TUI window titles gdb-buildbot
2019-09-08 20:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-09 10:14 [binutils-gdb] Add markers for 2.33 branch to NEWS and ChangeLog files gdb-buildbot
2019-09-09 10:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-09 22:31 [binutils-gdb] Fix leak detected in python.c initialization code gdb-buildbot
2019-09-09 22:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-09 23:50 [binutils-gdb] Use ui_out for "info win" gdb-buildbot
2019-09-09 23:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 2:15 [binutils-gdb] DWARF 5 support: Handle dwo_id gdb-buildbot
2019-09-10 2:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 15:02 [binutils-gdb] Enhance the disassembler so that it will reliably determine whether a reloc applies to the middle of the next insn gdb-buildbot
2019-09-10 15:03 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 15:28 [binutils-gdb] Change map_matching_symbols to take a symbol_found_callback_ftype gdb-buildbot
2019-09-10 15:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 15:39 [binutils-gdb] Change iterate_over_symbols to return bool gdb-buildbot
2019-09-10 15:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 15:52 [binutils-gdb] Simplify psym_map_matching_symbols gdb-buildbot
2019-09-10 15:52 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 16:09 [binutils-gdb] Change map_matching_symbols to take a lookup_name_info gdb-buildbot
2019-09-10 16:11 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 16:18 [binutils-gdb] Fix latent bug in .debug_names file-name handling gdb-buildbot
2019-09-10 16:24 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 16:33 [binutils-gdb] Add Ada support for .debug_names gdb-buildbot
2019-09-10 16:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 16:50 [binutils-gdb] Add Ada support to cc-with-tweaks.exp gdb-buildbot
2019-09-10 16:52 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-10 17:05 [binutils-gdb] Use the correct alias for the M68K tdiv instruction gdb-buildbot
2019-09-10 16:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 7:07 [binutils-gdb] Tidy ld/ldmisc.c gdb-buildbot
2019-09-11 5:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 18:15 [binutils-gdb] Introduce bfd_set_filename gdb-buildbot
2019-09-11 18:08 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 18:32 [binutils-gdb] Change the type of copy_names from int to bool gdb-buildbot
2019-09-11 18:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 19:49 [binutils-gdb] Fix float to LONGEST conversion gdb-buildbot
2019-09-11 20:01 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 22:11 [binutils-gdb] Refactor get_init_files to use std::string gdb-buildbot
2019-09-11 22:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-11 23:24 [binutils-gdb] Factor out the code to do the datadir-relocation for gdbinit gdb-buildbot
2019-09-11 23:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-12 0:41 [binutils-gdb] Make relocate_{path,gdb_directory} return std::string gdb-buildbot
2019-09-12 0:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-12 9:22 [binutils-gdb] Fix signals reported for faults on Solaris gdb-buildbot
2019-09-12 9:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-12 20:58 [binutils-gdb] Output the Ada task name in more messages gdb-buildbot
2019-09-12 20:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-12 21:01 [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported gdb-buildbot
2019-09-12 21:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-13 1:11 [binutils-gdb] gdb: Don't fault for 'maint print psymbols' when using an index gdb-buildbot
2019-09-13 1:08 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-13 1:12 [binutils-gdb] gdb: Have 'maint info sections' print all sections again gdb-buildbot
2019-09-13 1:32 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-13 1:14 [binutils-gdb] gdb/testsuite: Make use of exec_has_index_section function gdb-buildbot
2019-09-13 1:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-13 2:09 [binutils-gdb] gdb: Force use of float version of log10 gdb-buildbot
2019-09-13 2:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-14 9:12 [binutils-gdb] [gdb/testsuite] Require gnatmake 8 for gdb.ada/rename_subscript_param.exp gdb-buildbot
2019-09-14 9:14 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-15 3:16 [binutils-gdb] Add a NEWS entry that gdb can be compiled with py3 on Windows gdb-buildbot
2019-09-15 3:16 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-16 10:47 [binutils-gdb] Update version to 2.33.50 and regenerate configure scripts gdb-buildbot
2019-09-16 10:51 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-17 3:49 [binutils-gdb] Don't duplicate comment in symfile.c and .h gdb-buildbot
2019-09-17 3:50 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-17 19:09 [binutils-gdb] (Ada) do not print Ada task names in quotes in "info tasks" output gdb-buildbot
2019-09-17 19:53 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-17 20:17 [binutils-gdb] gdb: Catch exceptions when accessing source cache gdb-buildbot
2019-09-17 20:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 0:59 [binutils-gdb] Change boolean options to bool instead of int gdb-buildbot
2019-09-18 1:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 1:40 [binutils-gdb] RISC-V: Gate opcode tables by enum rather than string gdb-buildbot
2019-09-18 1:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 6:12 [binutils-gdb] Make extern declaration of dwarf_always_disassemble correct gdb-buildbot
2019-09-18 10:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 13:19 [binutils-gdb] PowerPC64, support medium model access to common symbols gdb-buildbot
2019-09-18 13:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 13:33 [binutils-gdb] Use bfd_set_filename more gdb-buildbot
2019-09-18 13:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 13:42 [binutils-gdb] Constify target name, reloc name, and carsym name gdb-buildbot
2019-09-18 13:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 13:54 [binutils-gdb] Constify bfd_octets_per_byte and related functions gdb-buildbot
2019-09-18 13:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 14:17 [binutils-gdb] Re-generate many configure and Makefile.in files gdb-buildbot
2019-09-18 14:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 14:17 [binutils-gdb] Don't use bfd_get_* macro to set bfd fields gdb-buildbot
2019-09-18 14:10 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 14:30 [binutils-gdb] bfd_asymbol_* macros gdb-buildbot
2019-09-18 14:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 17:17 [binutils-gdb] gdb/testsuite: Avoid directory names in test names gdb-buildbot
2019-09-18 17:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 18:13 [binutils-gdb] gdb: remove local extern declaration of cli_styling gdb-buildbot
2019-09-18 18:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 19:50 [binutils-gdb] gdb: Fix native build on Linux/Alpha gdb-buildbot
2019-09-18 19:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 21:35 [binutils-gdb] Give a name to the TUI SingleKey keymap gdb-buildbot
2019-09-18 21:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 23:21 [binutils-gdb] [gdb/testsuite] Handle unreachable network in server-connect.exp gdb-buildbot
2019-09-18 23:26 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-18 23:45 [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd gdb-buildbot
2019-09-18 23:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-19 1:02 [binutils-gdb] bfd_section_* macros gdb-buildbot
2019-09-19 1:05 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-19 18:20 [binutils-gdb] [gdb] Catch exception when constructing the highlighter gdb-buildbot
2019-09-19 18:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-19 18:42 [binutils-gdb] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test gdb-buildbot
2019-09-19 18:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 0:39 [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h gdb-buildbot
2019-09-20 0:51 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 0:53 [binutils-gdb] Move arm_apcs_32 extern declaration to header gdb-buildbot
2019-09-20 1:01 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 1:12 [binutils-gdb] Move declaration of overload_resolution to value.h gdb-buildbot
2019-09-20 1:14 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 7:59 [binutils-gdb] PowerPC64, error on unsupported dynamic relocation gdb-buildbot
2019-09-20 8:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 8:48 [binutils-gdb] x86-64: fix handling of PUSH/POP of segment register gdb-buildbot
2019-09-20 8:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 9:09 [binutils-gdb] bfd macro conversion to inline functions gdb-buildbot
2019-09-20 8:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 9:27 [binutils-gdb] bfd macro conversion to inline functions, asymbol gdb-buildbot
2019-09-20 9:18 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 9:43 [binutils-gdb] bfd macro conversion to inline functions, section gdb-buildbot
2019-09-20 9:41 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 19:53 [binutils-gdb] Fix crash in Ada "catch exception" gdb-buildbot
2019-09-20 20:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 20:49 [binutils-gdb] Remove tui_clear_source_windows_detail gdb-buildbot
2019-09-20 20:39 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 21:15 [binutils-gdb] Move "fullname" to tui_source_window gdb-buildbot
2019-09-20 21:16 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 21:27 [binutils-gdb] Change tui_make_status_line to return std::string gdb-buildbot
2019-09-20 21:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 21:42 [binutils-gdb] Change tui_make_status_line to be a method gdb-buildbot
2019-09-20 21:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 21:56 [binutils-gdb] Remove some explicit re-rendering from the TUI gdb-buildbot
2019-09-20 22:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 22:05 [binutils-gdb] Simplify tui_source_window_base::show_source_content gdb-buildbot
2019-09-20 22:10 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 22:25 [binutils-gdb] Simplify TUI disassembly gdb-buildbot
2019-09-20 22:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 22:33 [binutils-gdb] Use "bool" in tui_data_window::show_register_group gdb-buildbot
2019-09-20 22:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 22:45 [binutils-gdb] Change "win_resized" to bool gdb-buildbot
2019-09-20 22:48 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 22:59 [binutils-gdb] Set TUI locator height to 1 gdb-buildbot
2019-09-20 22:56 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 23:08 [binutils-gdb] Don't call refresh in tui_resize_all gdb-buildbot
2019-09-20 23:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 23:22 [binutils-gdb] Remove a call to tui_locator_win_info_ptr gdb-buildbot
2019-09-20 23:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 23:35 [binutils-gdb] Change members of tui_locator_window to std::string gdb-buildbot
2019-09-20 23:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 23:46 [binutils-gdb] Rename private data members of tui_data_window gdb-buildbot
2019-09-20 23:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-20 23:58 [binutils-gdb] Rename a private data member in tui_source_window gdb-buildbot
2019-09-20 23:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 0:13 [binutils-gdb] Remove strcat_to_buf gdb-buildbot
2019-09-21 0:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 0:26 [binutils-gdb] Remove separator comments from TUI gdb-buildbot
2019-09-21 0:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 0:43 [binutils-gdb] Use make_unique_xstrdup in TUI gdb-buildbot
2019-09-21 0:45 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 0:53 [binutils-gdb] Change TUI window commands to be case-sensitive gdb-buildbot
2019-09-21 0:53 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 1:04 [binutils-gdb] Remove Cell Broadband Engine debugging support gdb-buildbot
2019-09-21 1:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 1:31 [binutils-gdb] RISC-V: Optimize lui and auipc relaxations for undefweak symbol gdb-buildbot
2019-09-21 1:31 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 2:11 [binutils-gdb] gdb/NEWS: Move entries about MI v3 and multi-loc breakpoints after GDB 8.3 gdb-buildbot
2019-09-21 2:06 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 2:32 [binutils-gdb] Move declarations of debug_threads and using_threads to header gdb-buildbot
2019-09-21 2:27 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-21 2:52 [binutils-gdb] Replace solib_global_lookup with gdbarch_iterate_over_objfiles_in_search_order gdb-buildbot
2019-09-21 2:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-22 0:17 [binutils-gdb] gdb: change "nonzero" to "true" in comments gdb-buildbot
2019-09-22 0:17 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-22 0:41 [binutils-gdb] gdb: make watchpoint::val_valid a bool gdb-buildbot
2019-09-22 0:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-22 2:47 [binutils-gdb] gdb: fix formatting in solib-svr4.c gdb-buildbot
2019-09-22 3:09 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-22 5:10 [binutils-gdb] [gdb/testsuite] Allow some tests in gdb.base/restore.exp to be unsupported gdb-buildbot
2019-09-22 5:00 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 1:25 [binutils-gdb] csky bfd.h tidy gdb-buildbot
2019-09-23 1:25 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 1:37 [binutils-gdb] mips bfd.h tidy gdb-buildbot
2019-09-23 1:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 1:59 [binutils-gdb] v850 bfd.h tidy gdb-buildbot
2019-09-23 1:58 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 2:01 [binutils-gdb] ia64 bfd.h tidy gdb-buildbot
2019-09-23 2:04 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 2:13 [binutils-gdb] h8300 bfd.h tidy gdb-buildbot
2019-09-23 2:13 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 2:32 [binutils-gdb] tic54x bfd.h tidy gdb-buildbot
2019-09-23 2:33 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 2:37 [binutils-gdb] aarch64 bfd.h tidy gdb-buildbot
2019-09-23 2:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 2:50 [binutils-gdb] tic6x bfd.h tidy gdb-buildbot
2019-09-23 2:50 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 3:03 [binutils-gdb] arm bfd.h tidy gdb-buildbot
2019-09-23 3:02 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 3:14 [binutils-gdb] coff bfd.h tidy gdb-buildbot
2019-09-23 3:15 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 3:27 [binutils-gdb] xcoff bfd.h tidy gdb-buildbot
2019-09-23 3:26 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 3:37 [binutils-gdb] obsoleted bfd.h tidy gdb-buildbot
2019-09-23 3:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 3:51 [binutils-gdb] cr16 bfd.h tidy gdb-buildbot
2019-09-23 3:49 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 4:12 [binutils-gdb] bfin bfd.h tidy gdb-buildbot
2019-09-23 4:07 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 4:13 [binutils-gdb] m68k bfd.h tidy gdb-buildbot
2019-09-23 4:24 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 4:36 [binutils-gdb] elf bfd.h tidy gdb-buildbot
2019-09-23 4:27 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 4:36 [binutils-gdb] ecoff bfd.h tidy gdb-buildbot
2019-09-23 4:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 4:45 [binutils-gdb] linker bfd.h tidy gdb-buildbot
2019-09-23 4:47 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 5:57 [binutils-gdb] bfd Makefile update gdb-buildbot
2019-09-23 5:42 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 15:16 [binutils-gdb] PowerPC64 dynamic symbol tweaks gdb-buildbot
2019-09-23 15:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 19:29 [binutils-gdb] Make ada_decode not use a static buffer gdb-buildbot
2019-09-23 19:23 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 21:43 [binutils-gdb] sim: Add PRU simulator port gdb-buildbot
2019-09-23 21:37 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 21:49 [binutils-gdb] Add testsuite for the PRU simulator port gdb-buildbot
2019-09-23 21:46 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-23 22:26 [binutils-gdb] gdb/readline: fix use of an undefined variable gdb-buildbot
2019-09-23 22:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-24 22:13 [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs gdb-buildbot
2019-09-24 22:36 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-25 16:37 [binutils-gdb] Remove make_hex_string gdb-buildbot
2019-09-25 16:59 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-26 11:09 [binutils-gdb] PR24262, plugin search dir doesn't respect --libdir gdb-buildbot
2019-09-26 11:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-26 14:43 [binutils-gdb] Remove initialize_utils gdb-buildbot
2019-09-26 14:43 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-26 15:01 [binutils-gdb] Do not expose stub types to Python gdb-buildbot
2019-09-26 14:56 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-26 15:42 [binutils-gdb] Remove gdb_usleep.c gdb-buildbot
2019-09-26 15:28 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-26 17:41 [binutils-gdb] Convert symtab.h function signatures to use bool instead of int gdb-buildbot
2019-09-26 17:22 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-27 8:20 [binutils-gdb] Revert "Improve ptrace-error detection on Linux targets" gdb-buildbot
2019-09-27 8:19 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-27 9:30 [binutils-gdb] [gdb/testsuite] Add KFAIL for missing support of reverse-debugging of vmovd gdb-buildbot
2019-09-27 13:34 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
2019-09-27 16:57 [binutils-gdb] [gdb/testsuite] Fix incomplete regexps in step-precsave.exp gdb-buildbot
2019-09-27 16:57 ` Failures on RHEL-s390x-m64, branch master gdb-buildbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).